כשיוצרים את אשכול היעד של AlloyDB ל-PostgreSQL באמצעות Database Migration Service, האשכול הזה מוקצה כאשכול AlloyDB ל-PostgreSQL עם מכונה ראשית. ביצוע פעולות מסוימות במהלך תהליך ההעברה עלול לגרום לשגיאות בהעברה. כשמעבירים לאשכול יעד חדש, חשוב לזכור את השיקולים התפעוליים הבאים:
- הימנעו מפעולות כתיבה בנתונים שמועברים: אל תבצעו פעולות כתיבה (כמו
INSERT,UPDATE,DELETEאו שינויים בסכימת DDL) באשכול היעד בטבלאות או במסדי נתונים שנכללים בהעברה. פעולות כאלה עלולות לגרום להתנגשויות בשכפול עם נתונים שמגיעים מהמקור. - ניהול משתמשים במסד הנתונים: אתם יכולים ליצור ולנהל משתמשים במסד הנתונים בכל שלב באמצעות פקודות
psqlרגילות או באמצעות AlloyDB ל-PostgreSQL במסוף Google Cloud . מידע נוסף זמין במאמר ניהול משתמשים במסד נתונים במסמכי התיעוד של AlloyDB ל-PostgreSQL.
מידע נוסף זמין בקטע מגבלות ידועות.
יצירת משימת העברה כוללת:
- הגדרת משימת ההעברה.
- מציינים מידע על פרופיל החיבור שיצרתם למסד הנתונים של המקור (פרופיל החיבור של המקור).
- הגדרת אשכול היעד של AlloyDB ל-PostgreSQL ויצירת האשכול.
- הגדרת הקישוריות בין סביבות מסד הנתונים של המקור והיעד.
- בדיקת משימת ההעברה כדי לוודא שפרטי החיבור שסיפקתם למשימה תקינים.
כדי ליצור משימת העברה לאשכול יעד חדש:
המסוף
הגדרת משימת ההעברה
- נכנסים לדף Migration jobs במסוף Google Cloud .
- לוחצים על Create migration job.
ייפתח דף אשף ההגדרות של משימת ההעברה. האשף הזה מכיל כמה חלוניות שמנחות אתכם בכל שלב בהגדרה.
אפשר להשהות את היצירה של משימת ההעברה בכל שלב על ידי לחיצה על Save and exit. כל הנתונים שהזנתם עד לאותו שלב נשמרים בטיוטה של משימת העברה. אתם יכולים לסיים את משימת ההעברה ששמרתם כטיוטה במועד מאוחר יותר.
- בדף Get started, מזינים את הפרטים הבאים:
- שם משימת ההעברה
זהו שם קריא לאנשים של משימת ההעברה. הערך הזה מוצג במסוף Google Cloud .
- מזהה משימת ההעברה
זהו מזהה בפורמט קריא למכונה של משימת ההעברה. הערך הזה משמש לעבודה עם משימות העברה באמצעות פקודות Google Cloud CLI או API של Database Migration Service.
- ברשימה המנוע של מסד הנתונים של המקור, בוחרים באפשרות PostgreSQL.
- ברשימה המנוע של מסד הנתונים של היעד, בוחרים באפשרות AlloyDB ל-PostgreSQL.
- בוחרים את האזור שבו שומרים את משימת ההעברה.
Database Migration Service הוא מוצר אזורי לחלוטין, כלומר כל הישויות שקשורות להעברה (פרופילי החיבור של המקור והיעד, משימות ההעברה, מסדי הנתונים של היעד) צריכות להישמר באזור אחד. בוחרים את האזור לפי המיקום של השירותים שצריכים את הנתונים, כמו מכונות של Compute Engine או אפליקציות של App Engine, ושירותים אחרים. אחרי שבוחרים את אזור היעד, אי אפשר לשנות את הבחירה.
- מציינים את סוג העבודה של ההעברה: רציפה (תמונת מצב + שינויים שוטפים). העברות הומוגניות של AlloyDB ל-PostgreSQL תומכות רק בהעברות רציפות.
- בודקים את הדרישות המוקדמות שנוצרו לסביבה שלכם. חשוב לוודא שמסד הנתונים של המקור מוגדר כמו שצריך. מידע נוסף זמין במאמר הגדרת מסד נתונים של מקור.
- שם משימת ההעברה
- לוחצים על שמירה והמשך.
מציינים מידע על פרופיל החיבור של המקור
בדף Define a source, מבצעים את הפעולות הבאות:
- בתפריט הנפתח Source connection profile, בוחרים את פרופיל החיבור של מסד הנתונים של המקור (או לוחצים על Create a connection profile; ראו יצירת פרופיל חיבור למקור).
- בקטע Customize parallelism configurations, לוחצים על Show parallelism configurations.
במהלך ה-dump המלא הראשוני, התוסף
pglogicalמשכפל נתונים ברמת הטבלה ולא מפצל טבלה לא מחולקת, מחיצת עלה או טבלה ללא מפתח ראשי בין כמה מינויים. כלומר, שיפור המקביליות של ה-dump של הנתונים לא יכול להגדיל את מהירות ה-dump הראשוני של טבלה גדולה אחת שלא חולקה למחיצות, כי הטבלה הזו מועתקת בתוך מינוי אחד. מידע נוסף זמין במאמר שיקולים לגבי מקביליות של העברת נתונים.מהירות ההקבלה של ה-data dump קשורה לעומס שנוצר על מסד הנתונים של המקור:
- אופטימלי (מומלץ): ביצועים מאוזנים עם עומס אופטימלי על מסד הנתונים של המקור. Database Migration Service יוצר עד 2 מינויים לכל מסד נתונים (עד 2 בסך הכול בכל מסדי הנתונים, עם מינוי אחד לפחות לכל מסד נתונים שהועבר).
- Maximum: מספק את מהירויות ה-dump הגבוהות ביותר, אבל עלול לגרום לעומס מוגבר על מסד הנתונים של המקור. Database Migration Service יוצר עד 4 מינויים לכל מסד נתונים (עד 4 בסך הכול בכל מסדי הנתונים, עם מינוי אחד לפחות לכל מסד נתונים שהועבר).
- מינימלי: צורך את הכמות הנמוכה ביותר של משאבי מחשוב במסד הנתונים של המקור, אבל קצב העברת הנתונים של ה-dump עשוי להיות איטי יותר. Database Migration Service יוצר מינוי אחד לכל מסד נתונים.
אם בוחרים הגדרות מותאמות של מקביליות ב-data dump, חשוב להגדיל את הפרמטרים
max_replication_slots,max_wal_sendersו-max_worker_processesבמסד הנתונים של המקור. - לוחצים על שמירה והמשך.
הגדרה ויצירה של אשכול היעד של AlloyDB ל-PostgreSQL
עכשיו יוצרים אשכול יעד חדש של AlloyDB ל-PostgreSQL בשביל משימת ההעברה. אשכולות הם המשאבים ברמה העליונה ב-AlloyDB ל-PostgreSQL. הם מכילים מכונה ראשית אחת עם גישת קריאה וכתיבה למסד הנתונים שאתם יוצרים במהלך תהליך ההעברה.
- בדף Define a destination, בתפריט הנפתח Type of destination instance בוחרים באפשרות New cluster.
- בוחרים סוג אשכול. Database Migration Service תומך באשכולות עם זמינות גבוהה של AlloyDB ל-PostgreSQL, שיכולים להציג נתונים מיותר מאזור אחד, בלי מאגרי קריאה במהלך ההקצאה הראשונית.
- לוחצים על Continue.
- מגדירים את האשכול:
- בשדה Cluster ID, מזינים מזהה לאשכול של AlloyDB ל-PostgreSQL או משתמשים במזהה שנוצר אוטומטית.
אסור לכלול במזהה מידע רגיש או פרטים אישיים מזהים. אין צורך לכלול את מזהה הפרויקט בשם האשכול. הפעולה הזו מתבצעת באופן אוטומטי במקרים הרלוונטיים.
- בשדה Password, מזינים סיסמה אלפאנומרית לאשכול היעד של AlloyDB ל-PostgreSQL. זו הסיסמה לחשבון האדמין
postgresבאשכול.אפשר להזין את הסיסמה באופן ידני או ללחוץ על Generate כדי ש-Database Migration Service ייצור אותה באופן אוטומטי.
- בתפריט הנפתח Database version, בוחרים את גרסת מסד הנתונים של אשכול היעד.
מידע נוסף על תמיכה בהעברה בין גרסאות.
- בשדה Network:
- צריך לבחור נתיב רשת כדי להגדיר אילו משאבים יהיו זמינים כשמגדירים את הקישוריות להעברה. האשכולות מוגדרים עם נתיב רשת של כתובת IP פרטית. אם אתם מתכננים להתחבר למסד הנתונים של המקור באמצעות קישור VPC, בחרו את ה-VPC שבו הוא נמצא.
- אם הרשת לא מוגדרת לגישה לשירותים פרטיים, לוחצים על Set up connection ופועלים לפי ההוראות באשף להגדרת החיבור.
- אם אף פעם לא הוגדרה רשת שירות מנוהל ל-VPC שנבחר, אפשר לבחור טווח כתובות IP וללחוץ על Connect או להשתמש בטווח כתובות IP שנבחר באופן אוטומטי וללחוץ על Allocate & Connect.
(אופציונלי) מגדירים את אפשרויות הצפנת הנתונים של אשכול היעד.
כדי לראות את השלבים האופציונליים, צריך להרחיב את הקטע הזה.
לוחצים על Show advanced options כדי לציין אם רוצים לנהל את ההצפנה של הנתונים שמועברים מהמקור ליעד. כברירת מחדל, הנתונים מוצפנים באמצעות מפתח שמנוהל על ידי Google Cloud.
אם אתם רוצים לנהל את ההצפנה, אתם יכולים להשתמש במפתח הצפנה בניהול הלקוח (CMEK). המפתח צריך להיות באותו מיקום שבו נמצא אשכול AlloyDB ל-PostgreSQL. לדוגמה, אשכולות שנמצאים ב-us-west1 יכולים להשתמש רק במפתחות שנמצאים ב-us-west1.
- לוחצים על כפתור הבחירה Use a customer-managed encryption key (CMEK).
- בתפריט Select a customer-managed key, בוחרים את ה-CMEK.
אם המפתח לא מופיע, לוחצים על Enter key resource name כדי לציין את שם המשאב של המפתח שבו רוצים להשתמש. לדוגמה, מזינים
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-keyבשדה שם משאב המפתח ולוחצים על שמירה.- לוחצים על Continue.
- בשדה Cluster ID, מזינים מזהה לאשכול של AlloyDB ל-PostgreSQL או משתמשים במזהה שנוצר אוטומטית.
- מגדירים את המכונה הראשית. מכונה ראשית קובעת את קיבולת המחשוב של אשכול ותומכת בפעולות קריאה וכתיבה:
- בשדה Instance ID, מזינים מזהה למכונה הראשית.
- בוחרים סוג מכונה למכונה הראשית.
- אם אתם מתכננים להשתמש בשיטת הקישוריות רשימת היתרים של כתובות IP, סמנו את התיבה הפעלת כתובת IP ציבורית יוצאת.
(אופציונלי) מגדירים דגלים לניהול מסד הנתונים של המכונה הראשית.
כדי לראות את השלבים האופציונליים, צריך להרחיב את הקטע הזה.
לוחצים על Show advanced options כדי להגדיר דגלים לניהול מסד הנתונים של המכונה הראשית. למידע על דגלים נתמכים, ראו הגדרת דגלים של מסדי נתונים במסמכי התיעוד של AlloyDB ל-PostgreSQL. לכל דגל:
- לוחצים על הוספת דיווח.
- בוחרים דגל לניהול מסד נתונים מהרשימה New database flag.
- צריך לספק ערך לדגל.
- לוחצים על סיום.
- לוחצים על שמירה והמשך, ואז מאשרים את הבחירה בלחיצה על יצירת יעד והמשך. שירות Database Migration Service יוצר את אשכול היעד של AlloyDB ל-PostgreSQL ואת המכונה הראשית שלו. התהליך הזה יכול להימשך כמה דקות.
הגדרת הקישוריות בין המכונה של מסד הנתונים במקור לבין האשכול ביעד
בתפריט הנפתח Connectivity method, בוחרים שיטת קישוריות לרשת. השיטה הזו מגדירה איך אשכול היעד של AlloyDB ל-PostgreSQL מתחבר למסד הנתונים של המקור. השיטות הקיימות לחיבור לרשת לצורך העברה לאשכול חדש כוללות רשימת היתרים של כתובות IP, קישור בין רשתות VPC שכנות (peering), מנהרת SSH הפוכה ושרת proxy מסוג TCP דרך מכונה וירטואלית שמתארחת בענן.
| אם רוצים להשתמש ב... | ואז... |
|---|---|
| שיטת החיבור לרשת של רשימת היתרים של כתובות IP, | מעתיקים את שתי כתובות ה-IP הציבוריות היוצאות של המכונה הראשית באשכול היעד, ומשתמשים בהן כדי להגדיר את חומת האש של הרשת לשרת מסד הנתונים של המקור ובקובץ pg_hba.conf. |
| שיטת הקישוריות לרשת של מנהרת SSH הפוכה, | בוחרים את המכונה הווירטואלית של Compute Engine שתארח את המנהרה.
אחרי שמציינים את המכונה, Google מספקת סקריפט שמבצע את השלבים להגדרת המנהרה בין מסדי הנתונים של המקור והיעד. מריצים את הסקריפט ב-Google Cloud CLI ממכונה שמחוברת גם למסד הנתונים של המקור וגם ל- Google Cloud. |
| שיטת הקישוריות לרשת VPC Peering, | בוחרים את רשת ה-VPC שבה נמצא מסד הנתונים של המקור. אשכול היעד מתחבר לרשת הזו באמצעות גישה לשירותים פרטיים. |
| שיטת הקישוריות של שרת proxy ל-TCP דרך VM שמתארח בענן, | מזינים את הפרטים הנדרשים למכונה הווירטואלית החדשה של Compute Engine שתארח את שרת ה-proxy ל-TCP.
אחרי שמציינים את הפרטים, מסוף Google Cloud מספק סקריפט שמגדיר את שרת ה-proxy בין מסדי הנתונים של המקור והיעד. מריצים את הסקריפט במכונה עם Google Cloud CLI מעודכן. אחרי שמריצים את הסקריפט, מזינים את כתובת ה-IP הפרטית של המכונה הווירטואלית החדשה שנוצרה ולוחצים על הגדרה והמשך. |
אחרי שבוחרים ומגדירים את הקישוריות לרשת, לוחצים על Configure and continue.
הגדרת מסדי נתונים להעברה
אתם יכולים להעביר את כל מסדי הנתונים ממכונת המקור, או לבחור רק מסדי נתונים ספציפיים.
- ברשימה Databases to migrate, בוחרים אחת מהאפשרויות הבאות:
- All databases: בחירה בכל מסדי הנתונים שקיימים במקור.
- מסדי נתונים ספציפיים: מאפשר לבחור מסדי נתונים ספציפיים מכל מסדי הנתונים שקיימים במקור.
אם רוצים להעביר מסדי נתונים ספציפיים, מסננים את הרשימה שמופיעה ובוחרים את מסדי הנתונים שרוצים ש-Database Migration Service יעביר ליעד.
אם הרשימה לא מופיעה ומוצגת שגיאה בגילוי מסד הנתונים, לוחצים על Reload. אם זיהוי מסדי הנתונים נכשל, המשימה מעבירה את כל מסדי הנתונים. אפשר להמשיך ליצור את משימת ההעברה ולתקן את שגיאות הקישוריות מאוחר יותר.
- לוחצים על שמירה והמשך.
בדיקה, יצירה והפעלה של משימת ההעברה
בשלב האחרון, בודקים את הסיכום של הגדרות משימת ההעברה, המקור, היעד ושיטת הקישוריות, ואז בודקים את התקינות של הגדרת משימת ההעברה. אם נתקלים בבעיות, אפשר לשנות את ההגדרות של משימת ההעברה.
-
בדף Test and create migration job, לוחצים על Test job.
אם הבדיקה נכשלת, צריך לטפל בבעיה בחלק המתאים בתהליך ולחזור לבדיקה חוזרת. במאמר אבחון בעיות ב-AlloyDB ל-PostgreSQL מוסבר איך פותרים בעיות בבדיקה של משימת העברה שנכשלה.
-
בסיום הבדיקה של משימת ההעברה, לוחצים על Create and start job כדי ליצור את משימת ההעברה ולהתחיל אותה מיד, או על Create job כדי ליצור את משימת ההעברה בלי להתחיל אותה מיד.
אם המשימה לא מתחילה בזמן שהיא נוצרת, אפשר להפעיל אותה מהדף Migration jobs בלחיצה על Start. לא משנה מתי משימת ההעברה מתחילה, הארגון שלכם מחויב על קיום אשכול היעד.
כשמפעילים את משימת ההעברה, השירות Database Migration Service מתחיל את ה-dump המלא הראשוני ואת הרפליקציה הרציפה. מידע נוסף מופיע בקטע מגבלות ידועות.
- עוברים אל בדיקת משימת ההעברה.
Google Cloud CLI
יוצרים את פרופיל החיבור של היעד.
כשמעבירים לאשכול יעד חדש באמצעות Google Cloud CLI, יוצרים את אשכול היעד ואת פרופיל החיבור בפעולה אחת.
מריצים את הפקודה הבאה (לוחצים על הקישור כדי להרחיב):gcloud database-migration connection-profiles create alloydbבדוגמה הזו נעשה שימוש בדגל האופציונלי
--no-asyncכדי שכל הפעולות יתבצעו באופן סינכרוני. זה אומר שיכול להיות שייקח קצת זמן עד שפקודות מסוימות יסתיימו. אפשר לדלג על הדגל--no-asyncכדי להריץ פקודות באופן אסינכרוני. אם כן, צריך להשתמש בפקודהgcloud database-migration operations describeכדי לוודא שהפעולה הצליחה.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- DEST_CONN_ID במזהה של פרופיל החיבור ליעד.
- REGION באזור שבו רוצים לשמור את פרופיל החיבור וליצור את אשכול היעד.
- DEST_PASSWORD בסיסמה הראשונית של המשתמש
postgresבאשכול היעד של AlloyDB ל-PostgreSQL. - PRIMARY_ID במזהה של המכונה הראשית באשכול היעד של AlloyDB ל-PostgreSQL.
- CPU_COUNT במספר מעבדי ה-vCPU של המכונה הראשית (לדוגמה,
2,4,8). - VPC_NETWORK בשם או במזהה ה-URI המלא של המשאב של רשת ה-VPC שהוגדרה לגישה לשירותים פרטיים.
- אופציונלי: כדי לקבוע הגדרות נוספות לאשכול ולמכונה הראשית החדשים של AlloyDB ל-PostgreSQL, אפשר להעביר את הדגלים הבאים:
-
--enable-outbound-public-ip: הפעלה של כתובת IP ציבורית יוצאת במכונה הראשית (נדרש אם משתמשים בקישוריות של רשימת היתרים של כתובות IP). -
--kms-key,--kms-keyringו---kms-project: הצפנת אשכול היעד באמצעות מפתח הצפנה בניהול הלקוח (CMEK). -
--database-version: הגרסה הראשית של PostgreSQL באשכול היעד (לדוגמה,POSTGRES_15). -
--database-flags: מציינים רשימה מופרדת בפסיקים של דגלים לניהול מסד נתונים (KEY=VALUE) למכונה הראשית ביעד.
-
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration connection-profiles create alloydb DEST_CONN_ID \ --region=REGION \ --password=DEST_PASSWORD \ --primary-id=PRIMARY_ID \ --cpu-count=CPU_COUNT \ --network=VPC_NETWORK \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create alloydb DEST_CONN_ID ` --region=REGION ` --password=DEST_PASSWORD ` --primary-id=PRIMARY_ID ` --cpu-count=CPU_COUNT ` --network=VPC_NETWORK ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create alloydb DEST_CONN_ID ^ --region=REGION ^ --password=DEST_PASSWORD ^ --primary-id=PRIMARY_ID ^ --cpu-count=CPU_COUNT ^ --network=VPC_NETWORK ^ --no-async
אמורים לקבל תגובה שדומה לזו:
Waiting for connection profile [DEST_CONN_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile DEST_CONN_ID [OPERATION_ID]
יוצרים את משימת ההעברה.
אם אתם משתמשים ברשימת היתרים של כתובות IP, בקישור VPC או בקישוריות של מנהרת SSH הפוכה, הקפידו להוסיף את הדגלים הנדרשים, כמו--static-ip,--peer-vpcאו--vm,--vm-ip,--vm-portו---vpc. מידע נוסף זמין במאמר הגדרת קישוריות ובדוגמאות ל-Google Cloud CLI.
מריצים את הפקודה הבאה (לוחצים על הקישור כדי להרחיב):gcloud database-migration migration-jobs createבדוגמה הזו נעשה שימוש בדגל האופציונלי
--no-asyncכדי שכל הפעולות יתבצעו באופן סינכרוני. זה אומר שיכול להיות שייקח קצת זמן עד שפקודות מסוימות יסתיימו. אפשר לדלג על הדגל--no-asyncכדי להריץ פקודות באופן אסינכרוני. אם כן, צריך להשתמש בפקודהgcloud database-migration operations describeכדי לוודא שהפעולה הצליחה.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- MIGRATION_JOB_ID עם מזהה בפורמט קריא למכונה של משימת המיגרציה. הערך הזה משמש לעבודה עם משימות העברה באמצעות פקודות Google Cloud CLI או API של Database Migration Service.
- REGION במזהה האזור שבו רוצים לשמור את משימת ההעברה.
- MIGRATION_JOB_NAME בשם קריא לאנשים של משימת ההעברה. הערך הזה מוצג ב-Database Migration Service במסוף Google Cloud .
- SOURCE_CONNECTION_PROFILE_ID עם מזהה בפורמט קריא למכונה של פרופיל החיבור של המקור. מידע נוסף זמין במאמר יצירת פרופיל חיבור למקור.
- DESTINATION_CONNECTION_PROFILE_ID עם מזהה בפורמט קריא למכונה של פרופיל החיבור של היעד.
אופציונלי: כברירת מחדל, Database Migration Service מעביר את כל מסדי הנתונים במקור. אם רוצים להעביר רק מסדי נתונים ספציפיים, משתמשים בדגל
--databases-filterומציינים את המזהים שלהם ברשימה מופרדת בפסיקים.לדוגמה:
--databases-filter=my-business-database,my-other-databaseאפשר לערוך בהמשך את משימות ההעברה שנוצרו באמצעות הדגל
--databases-filter, באמצעות הפקודהgcloud database-migration migration-jobs update.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --type=CONTINUOUS
Windows (PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --type=CONTINUOUS
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --type=CONTINUOUS
אמורים לקבל תגובה שדומה לזו:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]