Best practice: DB Setup

  • פותח הנושא nahsh
  • פורסם בתאריך

nahsh

New member
Best practice: DB Setup

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

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

אצלינו יש 2 שרתים. לשינוי כזה מנתבים את כל התעבורה לאחד, משדרגים את השני, ולהיפך. זה כולה שינוי ב-dns.
הרי מי שמחזיק שרתים פיזיים ממילא חייב שרת גיבוי.
 

nahsh

New member
עושים את השדרוג על השרת הפיזי

יש symbolic link לגרסה הרצויה. אז כשהכל מוכן להפעלה, מורידים את הservice, משנים את הלינק ומפעילים.
 
הטענה שלי היא שאם השרת שלך *פיזי*, חייב להיות שם עוד שרת

ואם יש עוד שרת - אין שום הצדקה ל down time.
ככה עובדים אצלינו, וזה נראה לי מובן מאליו.
 

nahsh

New member
קצת בעייתי כשעוברים לסכמה חדשה

אנחנו דווקא כן עובדים בactive-active, אבל אם אתה משדרג את האינסטנס הראשון והשני עדיין חי, השינויים בDB שיקרו דרך השני לא ישתקפו בסכמה החדשה, ויאבדו. לכן אנחנו לא עובדים כמו שהצעת.
 
למעלה