שרתים ומסדי נתונים | mongodb השתגע!
-
@יושב-אהלים אני ינסה
-
@יושב-אהלים כתב בשרתים ומסדי נתונים | 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 כמסד נתונים, אין לי ידע איך לפתור את התקלות שלו...).
-
@יושב-אהלים אוקי, תודה רבה.
לבנתיים, אני מצאתי את הקובץ הזה
הקטע הוא שיש רק קובץ אחד כזה, ולי יש כמה מסדי נתונים, הוא כאילו מכיל את המידע של כולם?מצאתי עוד קבצים בתיקייה /var/lib/mongodb/diagnostic.data#
זה נראה כמו גיבוי לפי תאריכים או משהו, לא?