שאלה MongoDB אסון Prep על AWS


אני מחפש ייעוץ בפועל הטוב ביותר מכסה MongoDB התאוששות מאסון בתוך סביבה מתארח AWS.

ההתקנה שלנו היא סטנדרטית למדי בשלב זה, להגדיר העתק של 3 שרתים (1 ראשי, 1 משנית, ו 1 בורר), כרכים המונגו על ראשי ומשני הם EBS מגובים. הכל באזור אחד, על פני זמינות מרובים אזורי. בסופו של דבר נצטרך להקיף אזורים, אבל זה דיון ליום אחר.

עצה גיבוי ראיתי בתיעוד Mongo מדבר על תמונות EBS (אשר קל מספיק כדי להפוך). עם זאת, אם יכה אסון הם לא הולכים להחזיר אותנו לזמן של כישלון.

  • האם אני צריך להקליט oplogs ולהשתמש אלה יחד כדי לשחזר אחרי כישלון?
  • אני צריך לסובב עוד מקרה בתוך העתק משוכפל במיוחד עבור גיבויים ותצלום כי לעומת צילומי מסך של ראשוני ומשני? אם כן, אנחנו בחזרה לבעיה oplog לא אנחנו?
  • אני צריך לצלם כל אחד נפח העתק להסתמך על העתק להגדיר לחלוטין כדי לכסות את הזמן בין כישלון ואת התמונה האחרונה?

אני מחפש את האסטרטגיה החזקה ביותר הקיימת. עד הגנה על הנתונים השני ואת מהירות שחזור המערכת לאחר כישלון הם עדיפות גבוהה יותר מאשר מחיר. אנחנו יכולים לייעל על מחיר מאוחר יותר.

תודה מראש על כל ההצעות ...


6
2018-01-17 01:57






תשובות:


ראשית, אם אתה לוקח תמונה, זה יכלול את oplog - oplog הוא רק אוסף כתרים החיים במסד הנתונים המקומי. תצלומי מסך יחזרו לנקודת זמן מסוימת, ובהנחה שתוכנית היומנים מופעלת (היא מופעלת כברירת מחדל), אינך צריך לעשות שום דבר מיוחד לתצלום כדי לתפקד כגיבוי.

הדרישה המוחלטת היחידה היא כי תמונת EBS צריך להיות מספיק לאחרונה כדי ליפול בתוך שלך oplog חלון - זהו הפעולה האחרונה (האחרונה) שנרשמה ב oplog גיבוי תמונת מצב חייב גם להיות עדיין oplog של הראשוני הנוכחי, כך שהם יכולים למצוא נקודה משותפת. אם זה המקרה זה יעבוד משהו כזה:

  1. אתה משחזר משני משני גיבוי תמונת מצב של EBS
  2. ה mongod מתחיל, מחפש (ומחיל) כל קבצי יומן רלוונטיים
  3. לאחר מכן, משני מתחבר הראשי ומוצא נקודה משותפת בשני oplogs
  4. כל הפעולות הבאות מן העיקרי מוחלים על שחזור משני
  5. לאחר משנית תופס מספיק, הוא עובר למדינה השנייה ואת הגיבוי הושלם

אם התמונה היא לא מספיק האחרונות, אז זה יכול להיות מושלך - ללא נקודה משותפת של oplog, המשני יצטרכו resync מאפס בכל מקרה.

כדי לענות על השאלות הספציפיות שלך:

האם אני צריך להקליט oplogs ולהשתמש אלה יחד כדי לשחזר   אחרי כישלון?

כפי שהוסבר לעיל, אם אתה תצלום, אתה כבר מגבה את oplog

אני צריך לסובב עוד מקרה בתוך העתק להגדיר באופן ספציפי   עבור גיבויים ותצלום כי לעומת צילומי מסך של   משני? אם כן, אנחנו בחזרה לבעיה oplog לא אנחנו?

אין בעיה Oplog מעבר לנקודה / חלון משותף אחד שהזכרתי לעיל. יש אנשים לבחור לעשות משנית (בדרך כלל מוסתר) למטרה זו כדי למנוע הוספת עומס לצומת נורמלי. הערה: גם חבר מוסתר מקבל הצבעה, אז אם הוספת אחד למטרות גיבוי אתה יכול להסיר את פוסק מן התצורה שלך, עדיין יש לך 3 חברי הצבעה.

אני צריך תמונה כל נפח העתק להסתמך על סט העתק   לגמרי כדי לכסות את הזמן בין הכישלון ואת התמונה האחרונה?

כל חבר במערך העתק נועד להיות זהה - הנתונים זהים, כל משני יכול להיות ראשוני וכו '- אלה אינם עבדים, כל חבר קבוצה העתק מכילה את oplog מלא את כל הנתונים.

אז, לוקח מספר תמונות (בהנחה שאתה בוטח בתהליך) הולך להיות מיותר (כמובן, ייתכן שתרצה יתירות). וכן, כל כוונה של העתק להגדיר את הפונקציונליות היא להבטיח כי אתה לא צריך לנקוט צעדים יוצאי דופן להשתמש משני בדרך זו (עם caveats לעיל בראש, כמובן).


5
2018-01-17 09:54



יש לי את זה ואני משתמש db.printReplicationInfo () כדי לקבוע את חלון oplog שלי. תודה על הזמן שלך, אדם. - John
אני אוהב איך הסברת שהם לא עבדים LOL תודה על העצה זה הולך להיות לעזר רב לי!