שרתים ומסדי נתונים | mongodb השתגע!
-
@יושב-אהלים כתב בשרתים ומסדי נתונים | 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#
זה נראה כמו גיבוי לפי תאריכים או משהו, לא?