שרתים ומסדי נתונים | mongodb השתגע!
-
@צדיק-תמים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
mongod
2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] MongoDB starting : pid=17204 port=27017 dbpath=/data/db 64-bit host=vmi693782.contaboserver.net 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] db version v3.6.8 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] git version: 8e540c0b6db93ce994cc548f000900bdc740f80a 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] allocator: tcmalloc 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] modules: none 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] build environment: 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] distarch: x86_64 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] target_arch: x86_64 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] options: {} 2023-06-03T23:53:18.682+0200 I - [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2023-06-03T23:53:18.682+0200 I STORAGE [initandlisten] 2023-06-03T23:53:18.682+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2023-06-03T23:53:18.682+0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2023-06-03T23:53:18.682+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3466M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),cache_cursors=false,compatibility=(release="3.0",require_max="3.0"),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress), 2023-06-03T23:53:19.492+0200 I STORAGE [initandlisten] WiredTiger message [1685829199:492664][17204:0x7f1356e5dac0], txn-recover: Main recovery loop: starting at 1/22272 2023-06-03T23:53:19.547+0200 I STORAGE [initandlisten] WiredTiger message [1685829199:547686][17204:0x7f1356e5dac0], txn-recover: Recovering log 1 through 2 2023-06-03T23:53:19.585+0200 I STORAGE [initandlisten] WiredTiger message [1685829199:585532][17204:0x7f1356e5dac0], txn-recover: Recovering log 2 through 2 2023-06-03T23:53:19.611+0200 I STORAGE [initandlisten] WiredTiger message [1685829199:611394][17204:0x7f1356e5dac0], txn-recover: Set global recovery timestamp: 0 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** WARNING: This server is bound to localhost. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** Remote systems will be unable to connect to this server. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** Start the server with --bind_ip <address> to specify which IP 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] 2023-06-03T23:53:19.777+0200 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data' 2023-06-03T23:53:19.777+0200 I NETWORK [initandlisten] waiting for connections on port 27017
אין מה לומר, אתה באמת צדיק תמים!
-
@LEVI-H בלוג של mongod שצירפת נראה שמסופק רק הזהרות כלליות (כדוגמת המלצה לשימוש בXFS לטובת שיפור הביצועים וכד׳)
לכאורה הבעיה נעוצה איפשהוא בחיבור, אם תשתף אותנו בכלי עזר לMySQL שניסית להתקין לכאורה זה יעזור, יתכן שהכלי מתקין תוכנה של צד ג׳/מתנגש ברשת וכו׳.נסה לעשות Kill לPid 9849, לחילופין תבדוק שאין חומת אש או משהו כזה שהתקנת/הותקן שחוסם את הגישה לMongoDB (תוכל לוודא בקלות שאכן פורט 27017 נגיש עם Telnet או Nmap וכד׳)
תנסה לבדוק גם האם באמצעות localhost:27017 אפשר להתחבר, ולא באמצעות 127.0.0.1:27017 (אולי באמצעות סקריפט פשוט עם mongoose וכד׳), תתפלא, אבל זה פתר לי בעבר בעיה דומה.לחילופין הייתי ממליץ שתצרף את קובץ התצורה הראשי של מונגו (מאוחסן בדיפולט ב/etc/mongod.conf), או את קובץ הלוג (מאוחסן בדיפולט ב/var/log/mongodb/) זה גם יוכל לעזור מאוד..
-
@צדיק-תמים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
@LEVI-H לא מופיעות שגיאות בפלט שהבאת
זה הפלט המלא?כן
-
@יושב-אהלים אני ינסה
-
@יושב-אהלים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
@LEVI-H בלוג של mongod שצירפת נראה שמסופק רק הזהרות כלליות (כדוגמת המלצה לשימוש בXFS לטובת שיפור הביצועים וכד׳)
לכאורה הבעיה נעוצה איפשהוא בחיבור, אם תשתף אותנו בכלי עזר לMySQL שניסית להתקין לכאורה זה יעזור, יתכן שהכלי מתקין תוכנה של צד ג׳/מתנגש ברשת וכו׳.נסה לעשות Kill לPid 9849, לחילופין תבדוק שאין חומת אש או משהו כזה שהתקנת/הותקן שחוסם את הגישה לMongoDB (תוכל לוודא בקלות שאכן פורט 27017 נגיש עם Telnet או Nmap וכד׳)
תנסה לבדוק גם האם באמצעות localhost:27017 אפשר להתחבר, ולא באמצעות 127.0.0.1:27017 (אולי באמצעות סקריפט פשוט עם mongoose וכד׳), תתפלא, אבל זה פתר לי בעבר בעיה דומה.לחילופין הייתי ממליץ שתצרף את קובץ התצורה הראשי של מונגו (מאוחסן בדיפולט ב/etc/mongod.conf), זה גם יוכל לעזור מאוד..
mongo.conf
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: /var/lib/mongodb journal: enabled: true # engine: # wiredTiger: # where to write logging data. systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # network interfaces net: port: 27017 bindIp: 127.0.0.1 # how the process runs processManagement: timeZoneInfo: /usr/share/zoneinfo #security: security: authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp:
-
@יושב-אהלים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
נסה לעשות Kill לPid 9849, לחילופין תבדוק שאין חומת אש או משהו כזה שהתקנת/הותקן שחוסם את הגישה לMongoDB (תוכל לוודא בקלות שאכן פורט 27017 נגיש עם Telnet או Nmap וכד׳)
יש מצב לפירוט?
-
@יושב-אהלים @צדיק-תמים
יש איזה פלט שיעזור לכם להבין מה הבעיה? -
@LEVI-H כמו שכבתי לך, נסה לצרף את קובץ הלוג (לכאורה אמור להספיק 100 השורות האחרונות שלו...). הנה פירוט כיצד לבצע את זה:
sudo tail -n 100 /var/log/mongodb/mongod.log
כמו גם אשמח אם תצרף את כל התהליכים של MongoDB שרצים ברקע.
אפשר לעשות את זה עם הכלי ps aux. משהו כזה:sudo ps aux | grep mongo
-
@יושב-אהלים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
sudo tail -n 100 /var/log/mongodb/mongod.log
הקוד הזה לא מביא פלט...
-
זה נקרא בקונטאבו Snapshot. זה אמנם לא גיבוי, אבל זה נקודת שחזור שאפשר לחזור אליה בכל מקרה של כשל (כמות הנקודות שחזור שניתן להחזיק בו זמנית מוגבלת לפי סוג החבילה שרכשת).
במידה ויצרת ידנית אחד כזה בתקופה שלפני התקלה - תוכל לחזור אליה בכל עת.בכ״א, קובץ הלוג שעדיין לא צורף לכאן, יוכל להיות התחלה מצויינת לפתרון הבעיה.
-
@יושב-אהלים איזה קובץ בדיוק? אני ישלח לך...
-
@LEVI-H קובץ הלוג של MongoDB.
תוכל לצרף כאן את 100 השורות האחרונות שלו באמצעות:sudo tail -n 100 /var/log/mongodb/mongod.log
לחילופין אם הפקודה לא עובדת, תדפיס את הקובץ עם Cat, ותצרף את השורות האחרונות
sudo cat /var/log/mongodb/mongod.log
במידה והקובץ לא קיים, כנראה שאין לMongo הרשאות לכתוב לו/אין תיקיה כזאת, מה שאומר שאין לוג, וקשה מאוד יהיה לדבג את הבעיה.
-
@יושב-אהלים יש שני קבצים בשם ששלחת, אחד, שצריך הרשאות רוט, והשני, שלא צריך. דקה אני ישלח צילום מסך מתוכנת ftp שתבין...
תראו:
יש םה כמה קבצים כפולים, (נראה לי עם הרשאות שונות). כולם אותם שמות.
יש גם כמה ארכיונים, אםשר גם לראות בגודל הקובץ. יש את אלה הכבדים, שהם כנראה המקוריים, ויש את אלה הקטנים... -
@LEVI-H
כמו שאפשר לראות יש שגיאות במנוע האחסון של מונגו (שנקרא WiredTiger).
בגדול תצטרך לגבות את כל הנתונים של MongoDB שאתה צריך (אמור להיות בפורמט bson או tar).
את הגיבוי תוכל לבצע עם אחד הכלים הרלוונטים לכך, כדוגמת mongodump או mongorestore.
(אני מכיר בעיקר את mongodump. תוכל ליצור קובץ גיבוי חדש באמצעות:mongodump --db <database_name> --out <output_directory>
את <database_name> תחליף בשם המסד שתרצה לגבות, ו<output_directory> אם שם תיקית היעד, למשל תיקיית הHome, יווצר הרבה קבצי BSON לכל מסד נתונים או קולקשן, מומלץ להוסיף את הדגל --archive כדי ליצור קובץ tar (קובץ דחוס) שיכיל את כל קבצי הגיבוי, במקום לקבל עשרות קבצי גיבוי בתיקיה).
לאחר הגיבוי תצטכך למחוק את /var/lib/mongodb ולהפעיל מחדש את מונגו. זה יצור קובץ WiredTiger.wt חדש. אם הוא לא יצור - תוכל ליצור ידנית.
בסוף, תצטרך לשחזר את הגיבוי למסד החדש.
אם זה בפורמט bson תוכל להשתמש בכלי mongorestore לייבוא המידע. משהו כזה:mongorestore --db <database_name> <path_to_bson_file>
או לTar:
tar -xvf <path_to_tar_file> -C /var/lib/mongodb/
זה תהליך מסוכן ולא וודאי, ולכן אעדיף שלא להיכנס אליו. מאמין שמומחי הפורום יוכלו לעזור בזה יותר (אני לא ממש מבין בזה, אני משתמש בMongo כמסד נתונים, אין לי ידע איך לפתור את התקלות שלו...).