Sync ב-SQL Azure: רפליקציה בין דטבייסים

02/09/2017

אין תגובות

אופציית Sync מהווה תחליף נוח לרפליקציה בין דטבייסים ב-Azure: יש מספר מגבלות, אבל השימוש פשוט וקל.

המצרכים: שני דטבייסים, ובאחד מהם טבלה עם Primary Key (בלי זה אי אפשר).
המקור נקרא Hub והיעד Member, נעים מאוד!
image

ניצור Sync Group חדש, כולל טבלה לסינכרון:

image

שם – בסגנון חופשי.
מרווח מינימלי לסנכרון – 5 דקות. לכאורה יש אופציה למרווח בשניות, אבל אי אפשר לכתוב פחות מ-300 שניות.. זה החסרון העיקרי של הכלי, בעיקר למי שרוצה רפליקציה מעודכנת קרוב לזמן האמיתי.
במקרה של קונפליקט בין טבלת המקור להעתק – המקור (Hub) מכריע. כנראה שסעיף זה נועד ל-B Directional Sync (בהמשך).
כעת צריך להמתין עד שהמערכת תסיים ליצור את ה-Sync Group ונפנה ל-Sync Member (היעד).

image 

באמצע, ב-Select Sync Member, בחלק של ה-Hub Database יש לציין את השם והסיסמה של המשתמש שבשמו המערכת תיגש לטבלת המקור.
בצד ימין, ב-Configure Azure Database, יש לציין ב-Sync Memeber Name את שם דטבייס היעד: לכאורה מדובר בשם טכני של היעד, אבל משום מה זה עובד רק כשהשם הוא שם הדטבייס (במקרה שלי הדטבייסים בשני הצדדים נקראים GeriReshefDB אז קצת מטעה שאותו שם מופיע פעמיים).
ב-Sync Directions נבחר באופן טבעי ב-From the Hub, אבל אפשר גם B-directional Sync (מקביל ל-Merge Replication).
למטה מימין – שם המשתמש והסיסמה בדטבייס היעד.
מאשרים ומאשרים וממתינים בסבלנות.
כעת נבחר טבלאות ועמודות לסנכרון:

image

אם לא מופיעות טבלאות והמערכת לכאורה מנסה לשלוף – כדאי לעיין בלוג ההודעות (ראו בהמשך) כדי לראות מה הבעייה, למשל- בהגדרות ה-FireWall של שני השרתים.
נסמן את הטבלאות המבוקשות (בחרתי באחת אך ניתן יותר),
המערכת תבחר את כל העמודות הנתמכות לסנכרון (מה הבעייה עם Sysname? מדובר ב-(Varchar(128! למיקרוסופט פתרונים),
נשמור ונמתין בסבלנות.
כדי לא להשתעמם – נעבור למסך הניהול:

image

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

  • הוספתם, שיניתם, מחקתם שורה מהמקור? אותו דבר יקרה ביעד.
  • שיניתם שורה ביעד? היא לא תשתנה עד שנשנה את השורה המקבילה במקור, ואז זו שביעד תידרס.
  • ניתן להוסיף עמודות ביעד, למשל – עמודת זמן עם ברירת מחדל של זמן מערכת, כדי לבדוק מה ההפרש בין השינוי במקור והשינוי ביעד.

יש עוד הרבה מה לבדוק: הוספת וגריעת עמודות מטבלת המקור, B directional Sync, שימוש ב-Foreign Keys, סוגי נתונים נ וספים שאינם נתמכים, וכו’.
בסה”כ ידידותי למשתמש (לאחר כל כך הרבה תלונות, סופסוף יש לי הזדמנות לומר מילה טובה).

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *