בדף הזה מוסבר איך לבצע העברות מהירות של מסדי נתונים הומוגניים של PostgreSQL ל-Cloud SQL ל-PostgreSQL.
סקירה כללית
העברות מהירות הן תהליך העברה קל ורציף לתרחישים הומוגניים של PostgreSQL. כשמשתמשים בהעברות מהירות, השירות Database Migration Service יכול להגדיר באופן אוטומטי את כל מה שצריך כדי להעביר את מסדי הנתונים: רכיבי רשת (מחברי רשת, רשתות משנה, הגדרות של קישוריות פרטית), פרופילי חיבור ומשימות העברה.
בהעברות מהירות, אתם יכולים להעביר את הנתונים למכונה קיימת של Cloud SQL, או ליצור מכונה חדשה בזמן שאתם מגדירים את ההעברה. העברות מהירות מתאימות במיוחד במקרים הבאים:
- העברות בסיסיות, שבהן לא צריך שליטה מדויקת בהגדרות המקביליות של ה-data dump.
- העברת מסד הנתונים מפרויקט Google Cloud אחד לפרויקט אחר. כשמגדירים העברה מהירה, אפשר ליצור את מכונת היעד בפרויקט אחר מזה של המקור, ולהגדיר את Database Migration Service כך שייצור את מחבר הרשת ואת רשת המשנה ברשת של הענן הווירטואלי הפרטי (VPC) של פרויקט אחר.
-
העברה ממקורות שיש להם כתובת IP פרטית ברשת Google Cloudשל הענן הווירטואלי הפרטי (VPC), כמו מסדי נתונים בניהול עצמי ב-Compute Engine או מכונות של Cloud SQL ל-PostgreSQL שמופעלת בהן רשת פרטית.
יכול להיות שמקורות שמתארחים מחוץ ל- Google Cloud יצטרכו רכיבי רשת נוספים (כמו חיבור דרך VPN) כדי שאפשר יהיה להגיע אליהם בכתובת IP פרטית ברשת ה-VPC.
- למסד הנתונים של המקור צריכה להיות כתובת IP פרטית שהוקצתה ברשת ה-VPC. Database Migration Service מתחבר למסד הנתונים של המקור באמצעות ממשקי Private Service Connect (מחברי רשת). אי אפשר להשתמש בקישוריות של כתובות IP ציבוריות בהעברות נתונים מהירות.
מידע נוסף על העברות מהירות זמין במאמר סקירה כללית על העברות מהירות במסמכי התיעוד הראשיים של Database Migration Service.
לפני שמתחילים
- בודקים אם העברות מהירות יכולות לתמוך באופן מלא בתרחיש שלכם. מגבלות על העברה מהירה
- בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- או יוצרים אותו. Google Cloud
- מפעילים את ממשקי ה-API של Database Migration Service, Compute Engine, Network Connectivity Center ו-Cloud SQL Admin.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להפעלת העברות מהירות ל-Cloud SQL באמצעות Database Migration Service, בקשו מהאדמין להקצות את התפקידים הנדרשים של ניהול זהויות והרשאות גישה (IAM) לחשבונות שמעורבים בהעברה בפרויקטים הרלוונטיים. למידע נוסף על הקצאת תפקידים, קראו את המאמר ניהול הגישה במסמכי התיעוד של IAM.
תפקידים והרשאות בפרויקט המקור
מקצים את התפקידים הבאים לחשבונות ספציפיים בפרויקט ב- Google Cloud שבו נמצא מסד הנתונים המקורי:
- לחשבון המשתמש שמבצע את ההעברה:
התפקיד
אדמין של רשת Compute (
roles/compute.networkAdmin) - לחשבון השירות של Database Migration Service בפרויקט היעד:
Compute Network Viewer (
roles/compute.networkViewer)חשבון השירות של Database Migration Service נוצר כשמפעילים את Database Migration Service API. כתובת האימייל שמשויכת לחשבון הזה נוצרת באופן אוטומטי ואי אפשר לשנות אותה. כתובת האימייל הזו מבוססת על הפורמט הבא:
service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות כדי להגדיר קישוריות בפרויקט של מסד הנתונים במקור, כחלק מהעברה מהירה באמצעות Database Migration Service. כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע Required permissions (source):
ההרשאות הנדרשות (מקור)
כדי לבצע העברות הומוגניות בהפעלה מהירה באמצעות Database Migration Service, נדרשות ההרשאות הבאות:
בחשבון המשתמש שמבצע את ההעברה:
compute.networks.*compute.subnetworks.*compute.networkAttachments.*
לחשבון השירות של Database Migration Service בפרויקט היעד:
compute.networkAttachments.get.
תפקידים והרשאות בפרויקט היעד
מקצים את התפקידים הבאים לחשבון המשתמש שמבצע את ההעברה בפרויקט ב- Google Cloud שבו נמצא מסד הנתונים ביעד:
-
אדמין של העברת מסדי נתונים (
roles/datamigration.admin) -
אדמין ב-Cloud SQL (
roles/cloudsql.admin)
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות כדי להגדיר את רכיבי ההעברה הנדרשים בפרויקט של מסד הנתונים ביעד, כחלק מהעברה מהירה באמצעות Database Migration Service. כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע Required permissions (destination):
הרשאות נדרשות (יעד)
כדי לבצע העברות הומוגניות בהתחלה מהירה באמצעות Database Migration Service, נדרשות ההרשאות הבאות:
datamigration.*cloudsql.instances.createcloudsql.instances.deletecloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.connectcloudsql.instances.executeSqlcloudsql.instances.exportcloudsql.instances.importcloudsql.instances.logincloudsql.operations.getcloudsql.users.getcloudsql.users.listcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
הגדרת מסד הנתונים של המקור
כדי להגדיר את מסד הנתונים של PostgreSQL כמקור:
- יוצרים חשבון משתמש ייעודי להעברה במכונה שלכם.
- במקורות של Cloud SQL ל-PostgreSQL, קראו את המאמר יצירת משתמש במסמכי התיעוד של Cloud SQL.
- למקורות אחרים, עיינו במסמכי התיעוד של ספק מסד הנתונים או במאמר יצירה וניהול של משתמשים במסמכי התיעוד של PostgreSQL.
- מקצים את ההרשאות הנדרשות לחשבון המשתמש הייעודי להעברה.
מריצים את הפקודות הבאות לכל מסד נתונים שרוצים להעביר:
-- Grant the REPLICATION attribute ALTER ROLE MIGRATION_USER REPLICATION; -- Grant database-level permissions. -- Repeat for each database you want to migrate. GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER; -- Grant schema-level usage. -- Repeat for each schema in each database you want to migrate. GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;
מחליפים את מה שכתוב בשדות הבאים:
- MIGRATION_USER בשם של חשבון המשתמש להעברה.
- DATABASE_NAME בשם מסד הנתונים שרוצים להעביר.
- SCHEMA_NAME בשם הסכימה במסד הנתונים שרוצים להעביר.
- לחשבון המשתמש שמשמש להעברה צריכה להיות גישת בעלות לטבלאות שאתם מעבירים. כדי לתת את רמת הגישה הזו, מבצעים אחת מהפעולות הבאות:
- רק למקורות שהם לא Cloud SQL ל-PostgreSQL: מקצים את
התפקיד
SUPERUSERב-PostgreSQL לחשבון ההעברה. - בכל המקורות: מוסיפים את חשבון המשתמש להעברה לקבוצת המשתמשים שבבעלותה הטבלאות.
מריצים את הפקודה הבאה:
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
מחליפים את מה שכתוב בשדות הבאים:
- TABLE_OWNER_GROUP_NAME בשם של קבוצת המשתמשים שבבעלותה כל טבלה שרוצים להעביר.
- MIGRATION_USER בשם של חשבון המשתמש להעברה.
- רק למקורות שהם לא Cloud SQL ל-PostgreSQL: מקצים את
התפקיד
- בטבלאות שאין בהן מפתחות ראשיים: Database Migration Service לא משכפל פעולות
UPDATEאוDELETEבטבלאות שאין בהן מפתחות ראשיים במהלך שלב סימון הנתונים שהשתנו (CDC). אם רוצים לכלול פעולות כאלה ברפליקציה, צריך לשנות טבלאות ללא מפתחות ראשיים באמצעותREPLICA IDENTITY:ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL; ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;
מחליפים את מה שכתוב בשדות הבאים:
- TABLE_NAME הוא שם הטבלה שאין בה מפתחות ראשיים.
- INDEX_NAME הוא האינדקס הייחודי שמאפשר לעקוב אחרי שורות מטבלאות בלי מפתחות ראשיים.
- מגדירים את הרפליקציה באמצעות דגלים לניהול מסד נתונים.
מקורות בניהול עצמי
כדי לשמור שינויים בדגלים לניהול מסד נתונים, צריך להפעיל מחדש את מסד הנתונים. בדוגמאות הבאות נעשה שימוש בשאילתות SQL כדי לשנות ערכי דגלים. אם אתם לא יכולים להריץ שאילתות SQL ישירות, עיינו במסמכי התיעוד של הספק כדי לראות את השלבים לשינוי הדגלים האלה.
- מגדירים את הפרמטר
wal_levelלערךlogical. מריצים את הפקודה הבאה:ALTER SYSTEM SET wal_level = 'logical';
- מגדירים את הפרמטר
wal_sender_timeoutלערך0. הערך הזה משבית את מנגנון הזמן הקצוב לתפוגה שמשמש לסיום חיבורי רפליקציה לא פעילים. מריצים את הפקודה הבאה:ALTER SYSTEM SET wal_sender_timeout = 0;
- מגדירים את המספר המקסימלי של משבצות שכפול באמצעות הפרמטר
max_replication_slots. הפרמטר הזה צריך להיות מוגדר לפחות למספר מסדי הנתונים שאתם מעבירים בכל משימת העברה, בתוספת כמה רזרבות לסנכרון טבלאות.לדוגמה, אם אתם מעבירים 5 מסדי נתונים ויש 2 משימות העברה שנוצרו למכונה של המקור, מספר משבצות השכפול צריך להיות לפחות
5 * 2 = 10, בנוסף למספר משבצות השכפול שכבר השתמשתם בהן.כדי להגדיר את הפרמטר הזה, מריצים את הפקודה הבאה:
כאשר NUMBER_OF_SLOTS מייצג את המספר המקסימלי של משבצות שכפול.ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
- מגדירים את הפרמטר
max_wal_sendersלערך ששווה לפחות ל-max_replication_slots, בתוספת מספר השולחים שכבר נמצאים בשימוש במכונה.לדוגמה, אם הפרמטר
max_replication_slotsמוגדר לערך10, וכבר משתמשים ב-2 שולחים, מספר התהליכים של שולחי WAL שפועלים בו-זמנית יהיה10 + 2 = 12.כדי להגדיר את הפרמטר הזה, מריצים את הפקודה הבאה:
כאשר NUMBER_OF_SENDERS מייצג את מספר התהליכים של שולח WAL שפועלים בו-זמנית.ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
- מגדירים את
max_worker_processesלפחות למספר מסדי הנתונים שרוצים להעביר, בתוספת מספר ה-max_worker_processesשכבר נמצאים בשימוש במכונה. כדי להגדיר את הפרמטר הזה, מריצים את הפקודה הבאה: כאשר NUMBER_OF_PROCESSES מייצג את מספר מסדי הנתונים שיועברו.ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
מקורות של Cloud SQL ל-PostgreSQL
במקורות של Cloud SQL, מגדירים דגלים לניהול מסד נתונים במסוף Google Cloud . כדי שההגדרה תיכנס לתוקף, צריך להפעיל מחדש את המכונה אחרי שמשנים את הדגלים לניהול מסד הנתונים. מידע נוסף על הגדרת דגלים של מסדי נתונים ב-Cloud SQL זמין במאמר הגדרת דגלים של מסדי נתונים במסמכי התיעוד של Cloud SQL.
- מגדירים את הדגל
cloudsql.logical_decodingלערךon. כדי שההגדרה תיכנס לתוקף, צריך להפעיל מחדש את המכונה. - מגדירים את הפרמטר
wal_sender_timeoutבתור0. הערך הזה משבית את מנגנון הזמן הקצוב לתפוגה שמשמש לסיום חיבורי רפליקציה לא פעילים. - מגדירים את המספר המקסימלי של משבצות שכפול באמצעות הפרמטר
max_replication_slots. הערך של הפרמטר הזה צריך להיות לפחות מספר מסדי הנתונים שאתם מעבירים בכל משימת העברה, בתוספת כמה רזרבות לסנכרון טבלאות.לדוגמה, אם אתם מעבירים 5 מסדי נתונים ויש 2 משימות העברה שנוצרו למכונה של המקור, מספר משבצות השכפול צריך להיות לפחות
5 * 2 = 10, בנוסף למספר משבצות השכפול שכבר השתמשתם בהן. - מגדירים את הפרמטר
max_wal_sendersלפחות לאותו ערך כמוmax_replication_slots, בתוספת מספר השולחים שכבר נמצאים בשימוש במכונה.לדוגמה, אם הפרמטר
max_replication_slotsמוגדר לערך10, ואתם כבר משתמשים ב-2 שולחים, מספר התהליכים של שולחי WAL שפועלים בו-זמנית יהיה10 + 2 = 12. - מגדירים את הערך של
max_worker_processesלפחות למספר מסדי הנתונים שרוצים להעביר, בתוספת מספר ה-max_worker_processesשכבר נמצאים בשימוש במכונה.
- מגדירים את הפרמטר
יצירה והפעלה של העברה מהירה
המסוף
כדי ליצור ולהפעיל העברה מהירה באמצעות מסוף Google Cloud :
- נכנסים לדף Get started במסוף Google Cloud .
- בתפריט Source engine, בוחרים באפשרות PostgreSQL.
- בתפריט Destination engine, בוחרים באפשרות Cloud SQL ל-PostgreSQL.
מופיע הקטע Introducing quick-start PostgreSQL migration.
- בקטע Introducing quick-start PostgreSQL migration, לוחצים על Start migration.
הדף Migrate to Cloud SQL ל-PostgreSQL נפתח.
- בקטע Configure migration, מבצעים את הפעולות הבאות:
- בתפריט Destination region, בוחרים את האזור של מכונת היעד ב-Cloud SQL.
- בתיבה Migration prefix, מזינים מחרוזת ידידותית למשתמש שתתווסף לשמות של כל ישויות ההעברה שנוצרו בשביל ההעברה המהירה: פרופילי חיבור, הגדרת קישוריות פרטית, מחבר רשת ורשת המשנה שלו ומשימת העברה.
- בתפריט Configuration type, בוחרים אחת מהאפשרויות הבאות:
- Existing connectivity configuration: בוחרים באפשרות הזו אם כבר יש לכם חיבור לרשת והגדרת קישוריות פרטית שמשתמשת בשיטת הממשקים של Private Service Connect. האפשרות הזו מתאימה במיוחד אם השתמשתם בעבר בהעברות מהירות ואתם רוצים להשתמש שוב באותם משאבי רשת.
- הגדרת קישוריות חדשה: בוחרים באפשרות הזו כדי ליצור חיבור רשת חדש ואת רשת המשנה של חיבור הרשת ברשת ה-VPC של מסד הנתונים של המקור. הגדרת הקישוריות הפרטית תיווצר באותו פרויקט שבו נמצא מכון היעד.
- לוחצים על Continue.
- בקטע Connect source מבצעים את הפעולות הבאות:
- מזינים את שם המארח או את כתובת ה-IP הפרטית של מסד הנתונים במקור. צריכה להיות גישה לכתובת של מסד הנתונים במקור מרשת ה-VPC במקור.
- מזינים את היציאה שמשמשת לגישה למארח. יציאת ברירת המחדל של PostgreSQL היא
5432. - מזינים את שם המשתמש והסיסמה של החשבון הייעודי להעברה במסד הנתונים של המקור.
- בתפריט סוג הצפנה, בוחרים אחת מהאפשרויות הבאות:
- None: אם מסד הנתונים של המקור לא דורש חיבורים מוצפנים ב-SSL או ב-TLS.
- חובה: אם מסד הנתונים של המקור דורש חיבורים מוצפנים ב-SSL או ב-TLS. באפשרות הזאת לא נדרש אימות של אישור.
- בתפריט Databases to migrate, לוחצים על Customize. בחלונית הצדדית, בוחרים רק את מסדי הנתונים שרוצים להעביר ל-Cloud SQL.
- לוחצים על Continue.
- בקטע Configure destination, אפשר ליצור מופע חדש של יעד או לבחור מופע קיים.
מופעים חדשים
כדי ליצור מכונה חדשה של יעד:
- בתפריט Destination instance type, בוחרים באפשרות New instance.
Database Migration Service משתמש בהגדרת ברירת המחדל של Cloud SQL למכונה חדשה. לוחצים על Customize כדי לשנות את מאפייני המכונה, כמו סוג המכונה, הזמינות באזורים או הגדרות ההגנה על הנתונים. מידע נוסף על הגדרת מכונות זמין במאמר יצירת מכונות במסמכי התיעוד של Cloud SQL.
- בשדה Password, מזינים סיסמה למשתמש עם הרשאת אדמין שמוגדר כברירת מחדל ב-
postgres. Database Migration Service מתחבר בתור המשתמש הזה כדי להעביר את הנתונים.
מופעים קיימים
אתם יכולים להעביר מסדי נתונים למכונה שכבר קיימת. מוודאים שהמכונה של היעד מופעלת ל-Private Service Connect ולא אוכפת חיבורי mTLS. מבצעים את הפעולות הבאות:
- בתפריט Destination instance type, בוחרים באפשרות Existing instance.
- בתפריט Existing instance ID, בוחרים את מזהה המכונה.
- בתפריט Destination instance type, בוחרים באפשרות New instance.
- לוחצים על התחלת ההעברה.
עכשיו Database Migration Service יוצר את משימת ההעברה ומתחיל את תהליך ההעברה. אפשר לעקוב אחרי התקדמות ההעברה בפרטים של משימת ההעברה ב-Database Migration Service. מידע נוסף זמין במאמר ניהול משימות העברה.
gcloud
כדי ליצור ולהריץ העברה מהירה באמצעות ה-CLI של gcloud:
-
מגדירים את החיבור לרשת.
מחליטים אם ליצור חיבור רשת חדש או להשתמש בחיבור קיים. צריך להיות לכם חיבור לרשת ברשת שבה אפשר להגיע לכתובת ה-IP הפרטית של מסד הנתונים של המקור.- כדי ליצור מחבר רשת חדש, מריצים את הפקודה הבאה (לוחצים כדי להרחיב את הפרטים המלאים).
gcloud compute network-attachments createלפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- NETWORK_ATTACHMENT בשם של חיבור הרשת שרוצים ליצור.
- REGION עם האזור של חיבור הרשת.
- DEST_PROJECT_ID במזהה פרויקט היעד.
- SOURCE_PROJECT_ID במזהה הפרויקט שבו נמצאת רשת המקור.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud compute network-attachments create NETWORK_ATTACHMENT \ --region=REGION \ --connection-preference=ACCEPT_MANUAL \ --producer-accept-list=DEST_PROJECT_ID \ --subnets=default \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments create NETWORK_ATTACHMENT ` --region=REGION ` --connection-preference=ACCEPT_MANUAL ` --producer-accept-list=DEST_PROJECT_ID ` --subnets=default ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments create NETWORK_ATTACHMENT ^ --region=REGION ^ --connection-preference=ACCEPT_MANUAL ^ --producer-accept-list=DEST_PROJECT_ID ^ --subnets=default ^ --project=SOURCE_PROJECT_ID
- אם רוצים להשתמש מחדש במחבר רשת קיים, ממשיכים לשלב הבא.
- כדי ליצור מחבר רשת חדש, מריצים את הפקודה הבאה (לוחצים כדי להרחיב את הפרטים המלאים).
-
נותנים לפרויקט של הדייר (tenant) ב-Database Migration Service גישה למחבר הרשת.
מחבר הרשת צריך לאפשר חיבורים מהפרויקט של הדייר (tenant) ב-Database Migration Service. כך עושים את זה:- כדי לאחזר את מזהה הפרויקט של הדייר (tenant) ב-Database Migration Service, מבצעים הרצה של יצירת חיבור פרטי (לחצו כדי להרחיב):
gcloud database-migration private-connections create --validate-onlyלפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- PRIVATE_CONN בשם של משאב החיבור הפרטי.
- REGION עם האזור של החיבור הפרטי.
- NETWORK_ATTACHMENT_URI ב-URI של חיבור הרשת.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN \ --format="value(metadata.metadata.tenant_project_id)" \ --validate-only
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN ` --format="value(metadata.metadata.tenant_project_id)" ` --validate-only
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN ^ --format="value(metadata.metadata.tenant_project_id)" ^ --validate-only
שומרים את מזהה הפרויקט של הדייר שמוחזר כדי להשתמש בו בפקודות הבאות.
- מאפשרים לפרויקט של הדייר ב-Database Migration Service ולפרויקט היעד להתחבר למחבר הרשת (לחצו כדי להרחיב):
gcloud compute network-attachments updateלפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- NETWORK_ATTACHMENT בשם של חיבור הרשת.
- REGION עם האזור.
- DEST_PROJECT_ID במזהה פרויקט היעד.
- DMS_TENANT_ID במזהה הפרויקט של הדייר (tenant) ב-Database Migration Service שאחזרתם.
- SOURCE_PROJECT_ID במזהה הפרויקט שבו נמצאת רשת המקור.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud compute network-attachments update NETWORK_ATTACHMENT \ --region=REGION \ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments update NETWORK_ATTACHMENT ` --region=REGION ` --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments update NETWORK_ATTACHMENT ^ --region=REGION ^ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ^ --project=SOURCE_PROJECT_ID
- כדי לאחזר את מזהה הפרויקט של הדייר (tenant) ב-Database Migration Service, מבצעים הרצה של יצירת חיבור פרטי (לחצו כדי להרחיב):
-
יוצרים את משאב החיבור המבודד של Database Migration Service.
מריצים את הפקודה הבאה (לוחצים כדי להרחיב):gcloud database-migration private-connections createלפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- PRIVATE_CONN בשם של משאב החיבור הפרטי.
- REGION עם האזור של החיבור הפרטי.
- NETWORK_ATTACHMENT_URI ב-URI של חיבור הרשת.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN
-
יוצרים את פרופיל החיבור של המקור.
מריצים את הפקודה הבאה (לוחצים כדי להרחיב):gcloud database-migration connection-profiles create postgresqlבדוגמה הזו נעשה שימוש בדגל האופציונלי
--no-asyncכדי שכל הפעולות יתבצעו באופן סינכרוני. זה אומר שיכול להיות שייקח קצת זמן עד שחלק מהפקודות יסתיימו. אפשר לדלג על הדגל--no-asyncכדי להריץ פקודות באופן אסינכרוני. אם כן, צריך להשתמש בפקודהgcloud database-migration operations describeכדי לוודא שהפעולה הצליחה.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SOURCE_CONN_ID במזהה של פרופיל החיבור למקור.
- REGION באזור שבו רוצים לשמור את פרופיל החיבור.
- SOURCE_PRIVATE_IP בכתובת ה-IP הפרטית של מסד הנתונים במקור.
- SOURCE_PORT עם היציאה של מסד הנתונים של המקור (ברירת המחדל היא 5432).
- SOURCE_USER עם שם המשתמש של המשתמש להעברה במסד הנתונים של המקור.
- SOURCE_PASSWORD בסיסמה של משתמש ההעברה במסד הנתונים של המקור.
- PRIVATE_CONN בשם של משאב החיבור הפרטי.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration connection-profiles create postgresql \ SOURCE_CONN_ID \ --region=REGION \ --role=SOURCE \ --host=SOURCE_PRIVATE_IP \ --port=SOURCE_PORT \ --username=SOURCE_USER \ --password=SOURCE_PASSWORD \ --private-connection=PRIVATE_CONN \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql ` SOURCE_CONN_ID ` --region=REGION ` --role=SOURCE ` --host=SOURCE_PRIVATE_IP ` --port=SOURCE_PORT ` --username=SOURCE_USER ` --password=SOURCE_PASSWORD ` --private-connection=PRIVATE_CONN ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql ^ SOURCE_CONN_ID ^ --region=REGION ^ --role=SOURCE ^ --host=SOURCE_PRIVATE_IP ^ --port=SOURCE_PORT ^ --username=SOURCE_USER ^ --password=SOURCE_PASSWORD ^ --private-connection=PRIVATE_CONN ^ --no-async
-
יוצרים את פרופיל החיבור של היעד.
בוחרים את הכרטיסייה בהתאם למכונה של Cloud SQL שאליה רוצים להעביר את הנתונים:מכונות חדשות
כדי להשתמש במכונה חדשה כיעד להעברה מהירה, קודם צריך ליצור את המכונה באמצעות Google Cloud CLI של Cloud SQL, ואז ליצור את פרופיל החיבור ליעד. איך לעשות את זה?
-
יצירת מכונה באמצעות Cloud SQL Google Cloud CLI.
חשוב להשתמש בדגל
--enable-private-service-connectכדי להפעיל את מכונת היעד ל-Private Service Connect. העברות מהירות תומכות רק במכונות שמופעל בהן Private Service Connect. - יוצרים את פרופיל החיבור של היעד למכונה החדשה.
כדי לראות את פרטי הפקודה המלאים, מרחיבים את הקטע הבא.
gcloud database-migration connection-profiles create postgresqlבדוגמה הזו נעשה שימוש בדגל האופציונלי
--no-asyncכדי שכל הפעולות יתבצעו באופן סינכרוני. זה אומר שיכול להיות שייקח קצת זמן עד שחלק מהפקודות יסתיימו. אפשר לדלג על הדגל--no-asyncכדי להריץ פקודות באופן אסינכרוני. אם כן, צריך להשתמש בפקודהgcloud database-migration operations describeכדי לוודא שהפעולה הצליחה.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- DEST_CONN_ID במזהה של פרופיל החיבור ליעד.
- REGION באזור שבו רוצים לשמור את פרופיל החיבור. האזור הזה צריך להיות זהה לאזור של מכונת היעד.
- DEST_INSTANCE במזהה של מכונת היעד ב-Cloud SQL שיצרתם מראש.
- DEST_USER בשם המשתמש של המשתמש שמעביר את הנתונים במסד הנתונים של היעד.
- DEST_PASSWORD מחליפים בסיסמה של משתמש ההעברה במסד הנתונים של היעד.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --cloudsql-instance=DEST_INSTANCE ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
אמורים לקבל תגובה שדומה לזו:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
מופעים קיימים
כדי להעביר למכונה קיימת, יוצרים את פרופיל החיבור שמפנה למכונה שנוצרה מראש. מריצים את הפקודה הבאה (לוחצים כדי להרחיב):
gcloud database-migration connection-profiles create postgresqlבדוגמה הזו נעשה שימוש בדגל האופציונלי
--no-asyncכדי שכל הפעולות יתבצעו באופן סינכרוני. זה אומר שיכול להיות שייקח קצת זמן עד שחלק מהפקודות יסתיימו. אפשר לדלג על הדגל--no-asyncכדי להריץ פקודות באופן אסינכרוני. אם כן, צריך להשתמש בפקודהgcloud database-migration operations describeכדי לוודא שהפעולה הצליחה.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- DEST_CONN_ID במזהה של פרופיל החיבור ליעד.
- REGION באזור שבו רוצים לשמור את פרופיל החיבור. האזור הזה צריך להיות זהה לאזור של מכונת היעד.
- DEST_INSTANCE במזהה של מכונת היעד ב-Cloud SQL שיצרתם מראש.
- DEST_USER בשם המשתמש של המשתמש שמעביר את הנתונים במסד הנתונים של היעד.
- DEST_PASSWORD מחליפים בסיסמה של משתמש ההעברה במסד הנתונים של היעד.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --cloudsql-instance=DEST_INSTANCE ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
אמורים לקבל תגובה שדומה לזו:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
-
יצירת מכונה באמצעות Cloud SQL Google Cloud CLI.
חשוב להשתמש בדגל
-
יוצרים את משימת ההעברה.
מריצים את הפקודה הבאה (לוחצים כדי להרחיב):gcloud database-migration migration-jobs createבדוגמה הזו נעשה שימוש בדגל האופציונלי
--no-asyncכדי שכל הפעולות יתבצעו באופן סינכרוני. זה אומר שיכול להיות שייקח קצת זמן עד שחלק מהפקודות יסתיימו. אפשר לדלג על הדגל--no-asyncכדי להריץ פקודות באופן אסינכרוני. אם כן, צריך להשתמש בפקודהgcloud database-migration operations describeכדי לוודא שהפעולה הצליחה.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- MIGRATION_JOB_ID במזהה של משימת ההעברה.
- REGION באזור שבו רוצים לשמור את משימת ההעברה.
- SOURCE_CONN_ID במזהה של פרופיל החיבור של המקור.
- DEST_CONN_ID במזהה של פרופיל החיבור ליעד.
- DATABASES_LIST ברשימה מופרדת בפסיקים של מסדי הנתונים שרוצים להעביר.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration migration-jobs create \ MIGRATION_JOB_ID \ --region=REGION \ --type=CONTINUOUS \ --source=SOURCE_CONN_ID \ --destination=DEST_CONN_ID \ --use-postgres-native \ --postgres-max-additional-subscriptions=10 \ --databases-filter=DATABASES_LIST \ --no-async
Windows (PowerShell)
gcloud database-migration migration-jobs create ` MIGRATION_JOB_ID ` --region=REGION ` --type=CONTINUOUS ` --source=SOURCE_CONN_ID ` --destination=DEST_CONN_ID ` --use-postgres-native ` --postgres-max-additional-subscriptions=10 ` --databases-filter=DATABASES_LIST ` --no-async
Windows (cmd.exe)
gcloud database-migration migration-jobs create ^ MIGRATION_JOB_ID ^ --region=REGION ^ --type=CONTINUOUS ^ --source=SOURCE_CONN_ID ^ --destination=DEST_CONN_ID ^ --use-postgres-native ^ --postgres-max-additional-subscriptions=10 ^ --databases-filter=DATABASES_LIST ^ --no-async
אמורים לקבל תגובה שדומה לזו:
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]
-
מפעילים את משימת ההעברה.
התחלת משימת ההעברה (לחצו כדי להרחיב):gcloud database-migration migration-jobs startבדוגמה הזו נעשה שימוש בדגל האופציונלי
--no-asyncכדי שכל הפעולות יתבצעו באופן סינכרוני. זה אומר שיכול להיות שייקח קצת זמן עד שחלק מהפקודות יסתיימו. אפשר לדלג על הדגל--no-asyncכדי להריץ פקודות באופן אסינכרוני. אם כן, צריך להשתמש בפקודהgcloud database-migration operations describeכדי לוודא שהפעולה הצליחה.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- MIGRATION_JOB_ID במזהה של משימת ההעברה.
אם אתם לא יודעים מה המזהה, אתם יכולים להשתמש בפקודה
gcloud database-migration migration-jobs listכדי להציג את כל משימות ההעברה באזור מסוים ואת המזהים שלהן. - REGION במזהה האזור שבו נשמר פרופיל החיבור.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
תוצאה
הפעולה מתבצעת באופן אסינכרוני. לכן הפקודה הזו מחזירה ישות של פעולה שמייצגת פעולה ממושכת:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
כדי לבדוק אם הפעולה הצליחה, אפשר לשלוח שאילתה לאובייקט הפעולה שהוחזר, או לבדוק את הסטטוס של משימת ההעברה:
- משתמשים בפקודה
gcloud database-migration migration-jobs describeעם MIGRATION_JOB_ID כדי לראות את הסטטוס של משימת ההעברה. - משתמשים בפקודה
gcloud database-migration operations describeעם הדגל OPERATION_ID כדי לראות את סטטוס הפעולה עצמה.
- MIGRATION_JOB_ID במזהה של משימת ההעברה.
סיום ההעברה
כשתחליטו להעביר את האפליקציה למכונה החדשה של Cloud SQL, בצעו את השלבים הבאים כדי להשלים את ההעברה:
- מפסיקים את כל פעולות הכתיבה במסד הנתונים של המקור. אפשר להעביר אותם למצב קריאה בלבד כדי לשמור על הפונקציונליות התפעולית.
- קידום משימת ההעברה. בהעברות מהירות, אפשר להמשיך לכתוב במופע היעד במהלך תהליך ההעברה. קידום משימת ההעברה רק מסיים את הרפליקציה, ולא משפיע על מכונת היעד.
- אופציונלי: בודקים את נתוני ההעברה כדי לוודא שהם מלאים.