- מה זה Database Migration Service?
- אילו מקורות נתמכים?
- אילו יעדים נתמכים?
- האם יש תמיכה בגרסאות שונות?
- אילו נתונים, סכימות ורכיבי מטא-נתונים מועברים?
- אילו שינויים משוכפלים במהלך העברה רציפה?
- מה לא מועבר?
- באילו שיטות רשת נעשה שימוש?
- מהן המגבלות הידועות?
- מהו Database Migration Service?
- Database Migration Service הוא שירות שמקל על העברת נתונים אל Google Cloud. Database Migration Service עוזר לכם להעביר את עומסי העבודה של PostgreSQL ל-Cloud SQL בשיטת "lift-and-shift" (השבתה, שכפול ומיגרציה לענן).
- אילו מקורות נתמכים?
-
- Amazon RDS 9.6.10+, 10.5+, 11.1+, 12, 13, 14, 15, 16, 17, 18.
- Amazon Aurora 10.11+, 11.6+, 12.4+, 13.3+, 14.6+, 15.2+, 16, 17, 18.
- PostgreSQL בניהול עצמי (במקום או במכונה וירטואלית בענן שאתם שולטים בה באופן מלא) 9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15, 16, 17, 18.
- Cloud SQL ל-PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16, 17, 18.
- Microsoft Azure Database for PostgreSQL Flexible Server: 11 ומעלה
- אילו יעדים נתמכים?
-
- Cloud SQL ל-PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16, 17, 18.
- האם יש תמיכה בכמה גרסאות?
- Database Migration Service תומך בהעברות מ-PostgreSQL ל-Cloud SQL בכל גרסה ראשית, כאשר גרסת היעד זהה לגרסת מסד הנתונים של המקור או גבוהה ממנה.
- אילו רכיבים של נתונים, סכימה ומטא-נתונים מועברים?
- Database Migration Service מעביר סכימה, נתונים ומטא-נתונים מהמקור ליעד. כל הרכיבים הבאים של נתונים, סכימה ומטא-נתונים מועברים כחלק מהעברת מסד הנתונים:
העברת נתונים
- כל הסכימות וכל הטבלאות ממסד הנתונים שנבחר.
- מתן שמות
- מפתח ראשי
- סוג נתונים
- מיקום סידורי
- ערך ברירת המחדל
- מאפיין המציין אם ערך יכול להיות ריק (nullability)
- מאפיינים עם ערך שגדל אוטומטית
- אינדקסים משניים
- נהלים מאוחסנים
- פונקציות
- טריגרים
- תצוגות
- אילוצים של מפתח זר
- אילו שינויים משוכפלים במהלך העברה רציפה?
-
רק שינויים ב-DML מתעדכנים אוטומטית במהלך ההעברה. האחריות לניהול DDL כדי שמסדי הנתונים של המקור והיעד יישארו תואמים היא של המשתמש, ואפשר לעשות זאת בשתי דרכים:
- מפסיקים את הכתיבה למקור ומריצים את פקודות ה-DDL גם במקור וגם ביעד. לפני שמריצים פקודות DDL ביעד, צריך להעניק את התפקיד
cloudsqlexternalsyncלמשתמש Cloud SQL שמחיל את שינויי ה-DDL. כדי לאפשר שאילתות או שינוי של הנתונים, צריך להעניק את התפקידcloudsqlexternalsyncלמשתמשי Cloud SQL הרלוונטיים. משתמשים ב-
pglogical.replicate_ddl_commandכדי להריץ DDL במקור וביעד בנקודה עקבית. למשתמש שמריץ את הפקודה הזו צריך להיות אותו שם משתמש גם במקור וגם ביעד, והוא צריך להיות משתמש-על או הבעלים של הארטיפקט שמועבר (לדוגמה, הטבלה, הרצף, התצוגה או מסד הנתונים).הנה כמה דוגמאות לשימוש ב-
pglogical.replicate_ddl_command.כדי להוסיף עמודה לטבלת מסד נתונים, מריצים את הפקודה הבאה:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');כדי לשנות את השם של טבלת מסד נתונים, מריצים את הפקודה הבאה:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] RENAME TO [table_name]','{default}');כדי ליצור טבלת מסד נתונים, מריצים את הפקודות הבאות:
select pglogical.replicate_ddl_command(command := 'CREATE TABLE [schema].[table] (id INTEGER PRIMARY KEY, name VARCHAR);', replication_sets := ARRAY['default'']);select pglogical.replication_set_add_table('default', '[schema].[table]');
- מפסיקים את הכתיבה למקור ומריצים את פקודות ה-DDL גם במקור וגם ביעד. לפני שמריצים פקודות DDL ביעד, צריך להעניק את התפקיד
- מה לא מועבר?
-
כדי להוסיף משתמשים למכונת היעד של Cloud SQL, עוברים למכונה ומוסיפים משתמשים מהכרטיסייה Users או מוסיפים אותם מלקוח PostgreSQL. מידע נוסף על יצירה וניהול של משתמשי PostgreSQL
אי אפשר לשכפל אובייקטים גדולים כי מתקן הפענוח הלוגי של PostgreSQL לא תומך בפענוח שינויים באובייקטים גדולים. בטבלאות עם column type oid שמתייחסות לאובייקטים גדולים, השורות עדיין מסונכרנות ושורות חדשות משוכפלות. עם זאת, ניסיון לגשת לאובייקט הגדול במסד הנתונים של היעד (קריאה באמצעות lo_get, ייצוא באמצעות lo_export או בדיקה בקטלוג
pg_largeobjectשל ה-oid הנתון) נכשל, ומוצגת הודעה שלפיה האובייקט הגדול לא קיים.בטבלאות שאין להן מפתחות ראשיים, Database Migration Service תומך בהעברה של התמונה הראשונית ושל הצהרות
INSERTבמהלך השלב של סימון נתונים שהשתנו (CDC). מומלץ להעביר את הדוחותUPDATEו-DELETEבאופן ידני.Database Migration Service לא מעביר נתונים מתצוגות חומריות, אלא רק את סכימת התצוגה. כדי לאכלס את התצוגות, מריצים את הפקודה הבאה:
REFRESH MATERIALIZED VIEW view_name.הסטטוסים של
SEQUENCE(לדוגמה,last_value) ביעד החדש של Cloud SQL עשויים להיות שונים מהסטטוסים שלSEQUENCEבמקור. - באילו שיטות ליצירת רשת נעשה שימוש?
- כדי ליצור מיגרציה ב-Database Migration Service, צריך ליצור קישוריות בין המקור לבין מכונת היעד של Cloud SQL. יש מגוון שיטות נתמכות.
בוחרים את האפשרות שהכי מתאימה לעומס העבודה הספציפי.
שיטת ה-Networking תיאור יתרונות חסרונות רשימת היתרים של כתובות IP הכלי פועל על ידי הגדרת שרת מסד הנתונים של המקור לקבלת חיבורים מכתובת ה-IP הציבורית של מכונת Cloud SQL. אם בוחרים בשיטה הזו, Database Migration Service מנחה אתכם בתהליך ההגדרה במהלך יצירת ההעברה. - קל להגדיר.
- מומלץ לתרחישי העברה לזמן קצר (הוכחת היתכנות או העברות של מסדי נתונים קטנים).
- יכול להיות שתצטרכו עזרה מאנשי ה-IT כדי להגדיר את חומת האש.
- החשיפה של מסד הנתונים כמקור לכתובת IP ציבורית.
- החיבור לא מוצפן כברירת מחדל. נדרש להפעיל SSL במסד הנתונים של המקור כדי להצפין את החיבור.
מנהרת SSH הפוכה דרך מכונה וירטואלית שמתארחת בענן יוצר קישוריות מהיעד למקור דרך מנהרת SSH הפוכה ומאובטחת. נדרשת מכונה וירטואלית של יעד מבוצר (bastion host) ב Google Cloud פרויקט ומכונה (לדוגמה, מחשב נייד ברשת) שיש לה קישוריות למקור. Database Migration Service אוסף את המידע הנדרש בזמן יצירת ההעברה, ומפיק באופן אוטומטי את הסקריפט להגדרת ההעברה. - קל להגדיר.
- לא נדרשת הגדרה מותאמת אישית של חומת האש.
- מומלץ לתרחישי העברה לזמן קצר (הוכחת היתכנות או העברות של מסדי נתונים קטנים).
- אתם הבעלים של מכונת ה-VM של Bastion ואתם מנהלים אותה.
- יכול להיות שיהיו עלויות נוספות.
קישור בין רשתות VPC שכנות (peering) השיטה הזו פועלת על ידי הגדרת רשתות ה-VPC כך שיוכלו לתקשר זו עם זו. האפשרות הזו רלוונטית רק אם גם המקור וגם היעד מתארחים ב- Google Cloud. מומלץ להשתמש באפשרות הזו להעברות ארוכות או להעברות של נפח גדול של נתונים. - Google Cloud פתרון.
- קל להגדיר.
- רוחב פס גבוה
האפשרות הזו זמינה רק אם המקור מתארח ב- Google Cloud. VPN הגדרת מנהרת IPSec VPN שמחברת בין הרשת הפנימית לבין Google Cloud VPC באמצעות חיבור מאובטח באינטרנט הציבורי. משתמשים ב- Google Cloud VPN או בכל פתרון VPN שהוגדר לרשת הפנימית. - פתרון קישוריות חזק וניתן להרחבה.
- רוחב פס בינוני-גבוה.
- אבטחה מובנית.
- מוצעים כ Google Cloud פתרונות או מצדדים שלישיים אחרים.
- עלות נוספת.
- הגדרה לא טריוויאלית (אלא אם היא כבר קיימת).
Cloud Interconnect השימוש בחיבור עם זמן אחזור קצר וזמינות גבוהה בין הרשת המקומית לבין Google Cloud. רוחב הפס הגבוה ביותר, אידיאלי להעברות ארוכות של נפח גדול של נתונים. - עלות נוספת.
- החיבור לא מאובטח כברירת מחדל.
- הגדרה לא טריוויאלית (אלא אם היא כבר קיימת).
- מהן המגבלות הידועות?
- מגבלות ידועות