בדף הזה מוסבר איך לבצע העברות מהירות של PostgreSQL הומוגני אל Cloud SQL ל-PostgreSQL.
סקירה כללית
מיגרציות מהירות הן תהליך מיגרציה רציף וקל משקל לתרחישי PostgreSQL הומוגניים. באמצעות העברות מהירות, Database Migration Service יכול להגדיר באופן אוטומטי את כל מה שצריך כדי להעביר את מסדי הנתונים: רכיבי רשת (מחברי רשת, רשתות משנה, הגדרות קישוריות פרטית), פרופילי חיבור ועבודות העברה.
בעזרת העברות מהירות, אתם יכולים להעביר את הנתונים שלכם למכונה קיימת של Cloud SQL או ליצור מכונה חדשה תוך כדי הגדרת ההעברה. העברות מהירות מתאימות במיוחד ל:
- מיגרציות בסיסיות, שבהן לא צריך שליטה מדויקת בהגדרות של מקביליות של dump נתונים.
- העברת מסד הנתונים מפרויקט Google Cloud אחד לפרויקט אחר. כשמגדירים העברה מהירה, אפשר ליצור את מופע היעד בפרויקט אחר מזה של המקור, ולהגדיר את Database Migration Service (שירות העברת מסדי נתונים) כך שיצור את צירוף הרשת ואת תת-הרשת ברשת הענן הווירטואלי הפרטי (VPC) של פרויקט אחר.
-
מעבר ממקורות עם כתובת IP פרטית ברשת של הענן הווירטואלי הפרטי (VPC) Google Cloudשלכם, כמו מסדי נתונים בניהול עצמי ב-Compute Engine או מופעים של Cloud SQL ל-PostgreSQL שמופעלת בהם רשת פרטית.
יכול להיות שיהיה צורך ברכיבי רשת נוספים (כמו חיבור Cloud VPN) כדי להגיע למקורות שמארחים מחוץ ל- Google Cloud בכתובת IP פרטית ברשת ה-VPC.
- השיטה היחידה שנתמכת לקישוריות למסד נתונים היא ממשקי Private Service Connect עם הגדרות קישוריות פרטיות של Database Migration Service. צריך להקצות לנתוני מסד הנתונים כתובת IP פרטית ברשת VPC. שיטות אחרות לחיבור למקור הומוגני (כמו רשימות היתרים של כתובות IP ציבוריות, מנהרות SSH הפוכות או VPC peering) לא נתמכות בהעברות מהירות.
מידע נוסף על העברות מהירות זמין במאמר סקירה כללית של העברות מהירות במסמכי התיעוד העיקריים של Database Migration Service.
לפני שמתחילים
- בודקים אם העברות מהירות יכולות לתמוך באופן מלא בתרחיש שלכם. מגבלות של העברה מהירה
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- מפעילים את ממשקי ה-API של Database Migration Service, Compute Engine, Network Connectivity Center ו-Cloud SQL Admin.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להפעלת העברות מהירות ל-Cloud SQL באמצעות Database Migration Service, צריך לבקש מהאדמין להקצות את תפקידי ניהול הזהויות והגישה (IAM) הנדרשים לחשבונות שמשתתפים בהעברה בפרויקטים הרלוונטיים. מידע נוסף על מתן תפקידים זמין במאמר ניהול גישה במסמכי התיעוד של IAM.
תפקידים והרשאות בפרויקט המקור
מקצים לחשבונות ספציפיים את התפקידים הבאים ב Google Cloud פרויקט שבו נמצא מסד הנתונים של המקור:
- לחשבון המשתמש שמבצע את ההעברה:
התפקיד 'אדמין של רשת מחשוב' (
roles/compute.networkAdmin) - עבור חשבון השירות של Database Migration Service בפרויקט היעד:
צפייה ברשת Compute (
roles/compute.networkViewer)חשבון השירות של Database Migration Service נוצר כשמפעילים את Database Migration Service API. כתובת האימייל שמשויכת לחשבון הזה נוצרת באופן אוטומטי ואי אפשר לשנות אותה. כתובת האימייל הזו מבוססת על הפורמט הבא:
service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות להגדרת קישוריות במסגרת פרויקט מסד הנתונים של המקור, כחלק מהעברה מהירה באמצעות Database Migration Service. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות (מקור):
ההרשאות הנדרשות (מקור)
כדי לבצע העברות מהירות והומוגניות באמצעות Database Migration Service, נדרשות ההרשאות הבאות:
עבור חשבון המשתמש שמבצע את ההעברה:
compute.networks.*compute.subnetworks.*compute.networkAttachments.*
בחשבון השירות של Database Migration Service בפרויקט היעד:
compute.networkAttachments.get.
תפקידים והרשאות בפרויקט היעד
מקצים את התפקידים הבאים לחשבון המשתמש שמבצע את ההעברה בפרויקט ב- Google Cloud שבו נמצא מסד הנתונים של היעד:
-
אדמין של Database Migration Service (
roles/datamigration.admin) -
Cloud SQL Admin (
roles/cloudsql.admin)
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות כדי להגדיר את רכיבי ההעברה הנדרשים בפרויקט מסד הנתונים של יעד כחלק מהעברה מהירה באמצעות Database Migration Service. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות (יעד):
ההרשאות הנדרשות (יעד)
כדי לבצע העברות מהירות והומוגניות באמצעות 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, ואתם כבר משתמשים בשני שולחים, מספר התהליכים של WAL sender שפועלים בו-זמנית יהיה10 + 2 = 12.כדי להגדיר את הפרמטר הזה, מריצים את הפקודה הבאה:
כאשר NUMBER_OF_SENDERS מייצג את מספר התהליכים של WAL sender שפועלים בו-זמנית.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 sender שפועלים בו-זמנית יהיה10 + 2 = 12. - מגדירים את
max_worker_processesלמספר שהוא לפחות מספר מסדי הנתונים שרוצים להעביר, ועוד מספרmax_worker_processesשכבר נמצא בשימוש במופע.
- מגדירים את הפרמטר
יצירה והרצה של העברה מהירה
המסוף
כדי ליצור ולהריץ העברה מהירה באמצעות Google Cloud המסוף:
- נכנסים לדף Get started במסוף Google Cloud .
- בתפריט מנוע המקור, בוחרים באפשרות PostgreSQL.
- בתפריט מנוע היעד, בוחרים באפשרות CloudSQL for PostgreSQL.
מופיע הקטע הצגת העברה מהירה של PostgreSQL.
- בקטע היכרות עם העברה מהירה של PostgreSQL, לוחצים על התחלת ההעברה.
הדף Migrate to Cloud SQL for PostgreSQL (מעבר ל-Cloud SQL ל-PostgreSQL) ייפתח.
- בקטע Configure migration (הגדרת ההעברה), מבצעים את הפעולות הבאות:
- בתפריט אזור היעד, בוחרים את האזור של מופע היעד ב-Cloud SQL.
- בתיבה Migration prefix (קידומת להעברה), מזינים מחרוזת שנוחה לקריאה על ידי בני אדם, שתתווסף לשמות של כל ישויות ההעברה שנוצרו להעברה מהירה: פרופילי חיבור, הגדרת קישוריות פרטית, רשת מצורפת ורשת המשנה שלה ועבודת ההעברה.
- בתפריט סוג ההגדרה, בוחרים באחת מהאפשרויות הבאות:
- הגדרת קישוריות קיימת: בוחרים באפשרות הזו אם כבר יש לכם קובץ מצורף עם הרשת והגדרת קישוריות פרטית שמשתמשת בשיטת הממשקים של Private Service Connect. האפשרות הזו מתאימה במיוחד אם השתמשתם בעבר בהעברות מהירות ואתם רוצים להשתמש מחדש באותם משאבי רשת.
- הגדרת קישוריות חדשה: בוחרים באפשרות הזו כדי ליצור קובץ מצורף חדש לרשת ואת רשת המשנה של הקובץ המצורף לרשת ברשת ה-VPC של מסד הנתונים של המקור. ההגדרה של הקישוריות הפרטית תיצור באותו פרויקט כמו מופע היעד.
- לוחצים על Continue.
- בקטע Connect source (חיבור המקור), מבצעים את הפעולות הבאות:
- מזינים שם מארח או כתובת IP פרטית של מסד הנתונים של המקור. צריכה להיות אפשרות להגיע לכתובת של מסד הנתונים של המקור מרשת ה-VPC של המקור.
- מזינים את היציאה שמשמשת לגישה למארח. יציאת ברירת המחדל של PostgreSQL היא
5432. - מזינים את שם המשתמש והסיסמה של חשבון ההעברה הייעודי במסד הנתונים של המקור.
- בתפריט סוג ההצפנה, בוחרים אחת מהאפשרויות הבאות:
- ללא: אם מסד הנתונים של המקור לא דורש חיבורים מוצפנים באמצעות SSL/TLS.
- חובה: אם מסד הנתונים של המקור דורש חיבורים מוצפנים באמצעות SSL/TLS. באפשרות הזאת לא נדרש אימות של אישורים.
- בתפריט Databases to migrate (מסדי נתונים להעברה), לוחצים על Customize (התאמה אישית). משתמשים בחלונית הצדדית כדי לבחור רק את מסדי הנתונים שרוצים להעביר ל-Cloud SQL.
- לוחצים על Continue.
- בקטע Configure destination (הגדרת יעד), אפשר ליצור מופע חדש של יעד או לבחור יעד קיים.
מופעים חדשים
כדי ליצור מופע חדש של יעד:
- בתפריט סוג היעד של המופע, בוחרים באפשרות מופע חדש.
Database Migration Service משתמש בהגדרת ברירת המחדל של Cloud SQL עבור מופע חדש. לוחצים על Customize כדי לשנות את התכונות של המופע, כמו סוג המכונה, הזמינות האזורית או הגדרות ההגנה על הנתונים. מידע נוסף על הגדרת מכונות זמין במאמר בנושא יצירת מכונות במסמכי התיעוד של Cloud SQL.
- בשדה סיסמה, מזינים סיסמה למשתמש האדמין שמוגדר כברירת מחדל
postgresql. Database Migration Service מתחבר כמשתמש הזה כדי להעביר את הנתונים.
מכונות קיימות
אפשר להעביר מסדי נתונים למופע שכבר קיים. מוודאים שהמכונה של היעד מופעלת עבור Private Service Connect ושלא נאכפים בה חיבורי mTLS. צריך לבצע את הפעולות הבאות:
- בתפריט סוג יעד של מופע, בוחרים באפשרות מופע קיים.
- בתפריט Existing instance ID (מזהה מופע קיים), בוחרים את מזהה המופע.
- בתפריט סוג היעד של המופע, בוחרים באפשרות מופע חדש.
- לוחצים על התחלת ההעברה.
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
- אם רוצים לעשות שימוש חוזר בחיבור רשת קיים, עוברים לשלב הבא.
- אם רוצים ליצור מחבר רשת חדש, מריצים את הפקודה הבאה (לחיצה להרחבת הפרטים המלאים).
-
מאפשרים לפרויקט הדייר של Database Migration Service לגשת למחבר הרשת.
החיבור לרשת צריך לאפשר חיבורים מפרויקט הדייר של Database Migration Service. כך עושים את זה:- כדי לאחזר את מזהה פרויקט הדייר של 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
שומרים את מזהה פרויקט הדייר שמוחזר כדי להשתמש בו בפקודות הבאות.
- מתן הרשאה לפרויקט דייר (tenant) של Database Migration Service ולפרויקט היעד להתחבר למחבר הרשת (לוחצים כדי להרחיב):
gcloud compute network-attachments updateלפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- NETWORK_ATTACHMENT בשם הקובץ המצורף לרשת.
- REGION עם האזור.
- DEST_PROJECT_ID במזהה הפרויקט של פרויקט היעד.
- DMS_TENANT_ID במזהה פרויקט הדייר של 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
- כדי לאחזר את מזהה פרויקט הדייר של 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, צריך להשלים את ההעברה לפי השלבים הבאים:
- מפסיקים את כל פעולות הכתיבה במסד הנתונים של המקור. אתם יכולים להעביר אותם למצב קריאה בלבד כדי לשמור על הפונקציונליות התפעולית.
- קידום של עבודת ההעברה. בהעברות מהירות, מופע היעד נשאר ניתן לכתיבה במהלך תהליך ההעברה. קידום של משימת ההעברה רק מסיים את השכפול ולא משפיע על מופע היעד.
- אופציונלי: בודקים את נתוני ההעברה כדי לוודא שהם מלאים.