בדף הזה מוסבר איך להעביר מכונת Cloud SQL ל-PostgreSQL על ידי העתקת גיבוי של Cloud SQL לאשכול של AlloyDB ל-PostgreSQL. העתקה של גיבוי Cloud SQL לאשכול AlloyDB מאפשרת לכם לטעון נתונים במהירות ל-AlloyDB ל-PostgreSQL, כדי להעריך את AlloyDB או לבצע אליו מיגרציה.
בדף הזה אנחנו יוצאים מנקודת הנחה שאתם מכירים את Cloud SQL. אם אתם חדשים ב-AlloyDB, כדאי לעיין בסקירה הכללית על AlloyDB.
כדי ללמוד איך להעביר את הנתונים מ-Cloud SQL ל-AlloyDB באמצעות שירות העברת מסדי נתונים ל-PostgreSQL ל-AlloyDB, אפשר לעיין במאמר בנושא שכפול נתונים רציף.
אין תמיכה בתכונות הבאות:
- שחזורים בין פרויקטים ובין אזורים
- מופעים עם מפתחות הצפנה בניהול הלקוח (CMEK)
- מופעים עם אימות קבוצות של ניהול זהויות והרשאות גישה (IAM)
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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.
-
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 של AlloyDB, Compute Engine ו-Service Networking, אם הם עדיין לא מופעלים.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים - חשוב לוודא שיש לכם את הפריטים הבאים:
- הרשאות ניהול הזהויות והרשאות הגישה (IAM) הנדרשות
- גיבוי של Cloud SQL בגודל של פחות מ- 15TB
- גרסה של PostgreSQL שנתמכת על ידי AlloyDB
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להעתקת גיבוי של Cloud SQL ל-PostgreSQL לאשכול AlloyDB, צריך להקצות לעצמכם את תפקידי ה-IAM הבאים בפרויקט:
- צפייה ב-Cloud SQL
(
roles/cloudsql.viewer) או כל תפקיד בהתאמה אישית שכולל את ההרשאהcloudsql.backupRuns.export. - Cloud
AlloyDB Admin (
roles/alloydb.admin)
העתקת גיבוי של Cloud SQL לאשכול AlloyDB
העתקה של גיבוי Cloud SQL לאשכול AlloyDBבמהדורה רגילהמשחזרת את הגיבוי לאותה גרסה של PostgreSQL ב-AlloyDB. לדוגמה, גיבוי של PostgreSQL 14 Cloud SQL משוחזר לאשכול של PostgreSQL 14 במהדורה רגילה. חשוב לזכור שגרסאות של תוספים וגרסאות משניות של PostgreSQL עשויות להיות שונות.
העתקת גיבוי מ-Cloud SQL תומכת רק בהגדרות של הפריטים שנתמכים באשכולהרגיל של AlloyDB.
כדי להעתיק גיבוי של Cloud SQL לאשכול AlloyDB, פועלים לפי השלבים הבאים:
המסוף
- נכנסים לדף Clusters במסוף Google Cloud .
- לוחצים על העברת נתונים ואז בוחרים באפשרות העתקה מגיבוי של Cloud SQL.
- בדף Copy from Cloud SQL backup, מפעילים את ממשקי ה-API הנדרשים. אם כבר הפעלתם את ממשקי ה-API, אתם לא צריכים להפעיל אותם מחדש.
- בדף Select the cluster type (בחירת סוג האשכול), בוחרים באפשרות Provisioned cluster (אשכול שהוקצה).
- לוחצים על בחירת סוג אשכול.
- בוחרים את המכונה של Cloud SQL שרוצים להעתיק ממנה גיבוי ולוחצים על בחירת מכונה. אפשר לסנן מכונות של Cloud SQL.
מוצגות רק גרסאות תואמות של מסד הנתונים. לשכפולים אין גיבויים והם לא מוצגים ברשימת המקרים הזמינים. - בוחרים את הגיבוי שממנו רוצים לייבא ולוחצים על בחירת הגיבוי. בדף הזה מוצגים 1,000 הגיבויים האחרונים.
- בדף Create your provisioned cluster מזינים את פרטי הרשת. מזהה האשכול מאוכלס כברירת מחדל, אבל אפשר גם להתאים אישית את האשכול שהוקצה.
- לוחצים על Create Cluster (יצירת אשכול).
אחרי שהפעולה מסתיימת, נוצר באופן אוטומטי מופע ראשי. יוצג אשכול חדש של AlloyDB עם הנתונים שהועתקו מהגיבוי של Cloud SQL ל-PostgreSQL שבחרתם.
כשמעתיקים גיבוי של Cloud SQL ל-PostgreSQL לאשכול AlloyDB, הדגלים של מסד הנתונים מועברים אם הם נמצאים ב-Cloud SQL ל-PostgreSQL וב-AlloyDB. הרשאות ברמת המשאב לא מועברות אוטומטית. אחרי שההעתקה תושלם, תצטרכו להגדיר ידנית את ההרשאות ואת הדגלים של מסד הנתונים שלא הועברו בגלל חוסר התאמה.
בדף יצירת אשכול שהוקצה לו נפח אחסון אפשר לבדוק אילו דגלים של מסד נתונים ב-Cloud SQL ל-PostgreSQL נתמכים ב-AlloyDB.
gcloud
כדי להשתמש ב-Google Cloud CLI, אפשר להתקין ולהפעיל את ה-CLI של gcloud, או להשתמש ב-Cloud Shell.
- מריצים את הפקודה
gcloud beta alloydb clusters migrate-cloud-sql:
gcloud beta alloydb clusters migrate-cloud-sqlCLUSTER_ID\ --cloud-sql-backup-id=CLOUD_SQL_BACKUP_ID\ --cloud-sql-instance-id=CLOUD_SQL_INSTANCE_ID\ --cloud-sql-project-id=CLOUD_SQL_PROJECT_ID\ --password=PASSWORD\ --region=REGION\ --database-version=DATABASE_VERSION\ --subscription-type=STANDARDמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_ID: מזהה אשכול AlloyDB. -
CLOUD_SQL_BACKUP_ID: מזהה הגיבוי של Cloud SQL שממנו רוצים להעביר נתונים. זה צריך להיות מזהה הגיבוי. -
CLOUD_SQL_INSTANCE_ID: מזהה המופע של Cloud SQL שממנו רוצים להעביר את הנתונים. הערך הזה צריך להיות מזהה המופע. -
CLOUD_SQL_PROJECT_ID: מזהה הפרויקט ב-Cloud SQL שממנו רוצים להעביר את הנתונים. צריך להזין את מזהה הפרויקט. -
PASSWORD: סיסמת המשתמש הראשונית ב-PostgreSQL שמוגדרת במהלך יצירת האשכול. -
REGION: מיקום, לדוגמה,asia-east1אוus-east1. רשימה מלאה של אזורים -
DATABASE_VERSION: גרסת מסד הנתונים של האשכול. הערך חייב להיות אחד מהערכים הבאים:POSTGRES_14,POSTGRES_15,POSTGRES_16אוPOSTGRES_17. גרסת מסד הנתונים חייבת להיות זהה לגרסת הגיבוי של Cloud SQL. -
SUBSCRIPTION_TYPE: סוג המינוי של האשכול. הערך חייב להיותSTANDARDאוTRIAL.
-
- מריצים את הפקודה
gcloud beta alloydb operations describeכדי לאשר את הסטטוס של פעולת הגיבוי:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
-
OPERATION_ID: השם של פעולת AlloyDB. -
REGION_ID: האזור שבו נפרס אשכול AlloyDB. -
PROJECT_ID: מזהה הפרויקט.
-
- משתמשים בפקודה
gcloud alloydb instances createכדי ליצור מכונה ראשית.
API בארכיטקטורת REST
- כדי לקבל רשימה של גיבויים של המופע שממנו רוצים לשחזר את הגיבוי, קוראים לשיטה
backupsRuns.list:
GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
INSTANCE_ID: מזהה המכונה.
תוכן בקשת JSON:
{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }כדי לשלוח את הבקשה, אפשר לבחור באחת מהאפשרויות הבאות:
curl (Linux, macOS או Cloud Shell)
הפקודה הבאה מבוססת על ההנחה שנכנסתם ל-
Google Cloud CLIבאמצעות חשבון המשתמש שלכם, על ידי הרצתgcloud initאוgcloud auth login, או באמצעותCloud Shellשמחבר אתכם אוטומטית ל-gcloud CLI.כדי לבדוק איזה חשבון פעיל, אפשר להריץ את הפקודה
gcloud auth list.שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"PowerShell (Windows)
הפקודה הבאה מבוססת על ההנחה שנכנסתם ל-
gcloud CLIבאמצעות חשבון המשתמש שלכם, על ידי הרצתgcloud initאוgcloud auth login, או באמצעותCloud Shellשמחבר אתכם אוטומטית ל-gcloud CLI.כדי לבדוק איזה חשבון פעיל, אפשר להריץ את הפקודה
gcloud auth list.שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest \ -Method GET \ -Headers $headers \ -ContentType: "application/json; charset=utf-8" \ -Uri "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"|Select-Object -Expand Contentמקבלים תגובת JSON שדומה לזו:
תשובה
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל רשימה של
תגובת ה-API מחזירה רשימה של גיבויים של המופע כמערך, כוללBackupRun."id": string,. -
- מבצעים קריאה ל-method restoreFromCloudSQL:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQLמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו נפרס אשכול AlloyDB.
תוכן בקשת JSON:
{ "clusterId": string, "cluster": { "databaseVersion": "POSTGRES_14/POSTGRES_15/POSTGRES_16/POSTGRES_17", "subscriptionType": "STANDARD" }, // Union field source can be only one of the following: "cloudsqlBackupRunSource": { object (CloudSQLBackupRunSource) } // End of list of possible types for union field source. }כדי לשלוח את הבקשה, אפשר לבחור באחת מהאפשרויות הבאות:
curl (Linux, macOS או Cloud Shell)
הפקודה הבאה מבוססת על ההנחה שנכנסתם ל-
gcloud CLIבאמצעות חשבון המשתמש שלכם, על ידי הרצתgcloud initאוgcloud auth login, או באמצעותCloud Shellשמחבר אתכם אוטומטית ל-gcloud CLI.כדי לבדוק איזה חשבון פעיל, אפשר להריץ את הפקודה
gcloud auth list.שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"PowerShell (Windows)
הפקודה הבאה מבוססת על ההנחה שנכנסתם ל-
gcloud CLIבאמצעות חשבון המשתמש שלכם, על ידי הרצתgcloud initאוgcloudauth login, או באמצעותCloud Shellשמחבר אתכם אוטומטית ל-gcloud CLI.כדי לבדוק איזה חשבון פעיל, אפשר להריץ את הפקודה
gcloud auth list.שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest \ -Method POST \ -Headers $headers \ -ContentType: "application/json; charset=utf-8" \ -InFile request.json \ -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"|Select-Object -Expand Contentמקבלים תגובת JSON שדומה לזו:
תשובה
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של
Operation.נוצר אשכול חדש בפרויקט ובמיקום שצוינו, עם נפח אחסון ששוחזר מהגיבוי שאליו מפנה ההודעה CloudSQLBackupRunSource.
-
- כשהאשכול במצב
READY, יוצרים את המכונה הראשית על ידי קריאה לשיטהprojects.locationsinstances.create:
POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instancesמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו נפרס אשכול AlloyDB. -
CLUSTER_ID: מזהה האשכול.
תוכן בקשת JSON:
{ "instanceId": "string", "instance": { "object": "Instance" } }גוף הבקשה מכיל מופע של
Instance.כדי לשלוח את הבקשה, אפשר לבחור באחת מהאפשרויות הבאות:
curl (Linux, macOS או Cloud Shell)
הפקודה הבאה מבוססת על ההנחה שנכנסתם ל-
gcloud CLIבאמצעות חשבון המשתמש שלכם, על ידי הרצתgcloud initאוgcloud auth login, או באמצעותCloud Shellשמחבר אתכם אוטומטית ל-gcloud CLI.כדי לבדוק איזה חשבון פעיל, אפשר להריץ את הפקודה
gcloud auth list.שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"PowerShell (Windows)
הפקודה הבאה מבוססת על ההנחה שנכנסתם ל-
gcloud CLIבאמצעות חשבון המשתמש שלכם, על ידי הרצתgcloud initאוgcloud auth login, או באמצעותCloud Shellשמחבר אתכם אוטומטית ל-gcloud CLI.כדי לבדוק איזה חשבון פעיל, אפשר להריץ את הפקודה
gcloud auth list.שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest \ -Method POST \ -Headers $headers \ -ContentType: "application/json; charset=utf-8" \ -InFile request.json \ -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"|Select-Object -Expand Contentמקבלים תגובת JSON שדומה לזו:
תשובה
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של
Operation. -
- אחרי שהמכונה תעודכן למצב
READY, מתחברים למכונה וניגשים לנתונים המשוחזרים מתמונת המצב של Cloud SQL.