Halaman ini menjelaskan cara memigrasikan instance Cloud SQL untuk PostgreSQL dengan menyalin cadangan Cloud SQL ke dalam AlloyDB untuk PostgreSQL cluster. Dengan menyalin cadangan Cloud SQL ke dalam cluster AlloyDB, Anda dapat memuat data dengan cepat ke AlloyDB untuk PostgreSQL, yang memungkinkan Anda mengevaluasi atau melakukan migrasi ke AlloyDB.
Halaman ini mengasumsikan bahwa Anda sudah memahami Cloud SQL. Jika Anda baru menggunakan AlloyDB, lihat Ringkasan AlloyDB.
Untuk mempelajari cara memigrasikan data dari Cloud SQL ke AlloyDB menggunakan replikasi data berkelanjutan, lihat Database Migration Service untuk PostgreSQL ke AlloyDB.
Hal berikut tidak didukung:
- Pemulihan lintas project dan lintas region
- Instance dengan Customer Managed Encryption Keys (CMEK)
- Instance dengan autentikasi grup Identity and Access Management (IAM)
Sebelum memulai
- Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
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.
-
Aktifkan AlloyDB, Compute Engine, dan Service Networking API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran. - Pastikan Anda memiliki hal berikut:
- Izin Identity and Access Management (IAM) yang diperlukan
- Cadangan Cloud SQL dengan ukuran kurang dari 15TB
- Versi PostgreSQL yang didukung oleh AlloyDB
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk menyalin cadangan Cloud SQL untuk PostgreSQL ke dalam cluster AlloyDB, berikan peran IAM berikut pada project Anda:
- Cloud SQL Viewer
(
roles/cloudsql.viewer) atau peran kustom apa pun yang menyertakan izincloudsql.backupRuns.export. - Cloud
AlloyDB Admin (
roles/alloydb.admin)
Menyalin cadangan Cloud SQL ke dalam cluster AlloyDB
Menyalin cadangan Cloud SQL ke dalam cluster uji coba gratisstandar AlloyDB Perlu diingat bahwa versi ekstensi dan versi minor PostgreSQL mungkin berbeda.
Menyalin cadangan dari Cloud SQL hanya mendukung konfigurasi item yang didukung di cluster uji coba gratisstandar AlloyDB.
Untuk menyalin cadangan Cloud SQL ke dalam cluster uji coba gratisstandar AlloyDB standar, ikuti langkah-langkah berikut:
Konsol
- Di Google Cloud konsol, buka halaman Clusters.
- Klik Migrate data , lalu pilih Copy from Cloud SQL Backup.
- Di halaman Copy from Cloud SQL backup, aktifkan API yang diperlukan. Jika Anda sudah mengaktifkan API, Anda tidak perlu mengaktifkan kembali API.
- Di halaman Select the cluster type, pilih Provisioned cluster.
- Klik Select Cluster Type.
- Pilih instance Cloud SQL yang ingin Anda salin cadangannya
dari, lalu klik Select instance. Anda dapat memfilter
Cloud SQL instance.
Hanya versi database yang kompatibel yang ditampilkan. Replika tidak memiliki cadangan dan tidak ditampilkan dalam daftar instance yang tersedia. - Pilih cadangan yang ingin Anda impor, lalu klik Select backup. Halaman ini menampilkan 1.000 cadangan terbaru.
- Di halaman Create your provisioned cluster, masukkan informasi jaringan Anda. ID cluster diisi secara default, tetapi Anda juga dapat menyesuaikan cluster yang disediakan.
- Klik Create Cluster.
Setelah operasi selesai, instance utama akan otomatis dibuat. Anda akan melihat cluster AlloyDB baru dengan data yang disalin dari cadangan Cloud SQL untuk PostgreSQL yang Anda pilih.
Saat Anda menyalin cadangan Cloud SQL untuk PostgreSQL ke dalam cluster AlloyDB, flag database akan dimigrasikan jika flag database berada di Cloud SQL untuk PostgreSQL dan di AlloyDB. Izin tingkat resource tidak akan otomatis dimigrasikan. Setelah penyalinan selesai, Anda harus menyiapkan izin dan flag database yang tidak dimigrasikan karena ketidakcocokan secara manual.
Anda dapat memeriksa flag database di Cloud SQL untuk PostgreSQL yang didukung di AlloyDB di halaman Create your provisioned cluster.
gcloud
Untuk menggunakan Google Cloud CLI, Anda dapat menginstal dan melakukan inisialisasi gcloud CLI, atau Anda dapat menggunakan Cloud Shell.
- Jalankan perintah
gcloud beta alloydb clusters migrate-cloud-sqlcommand:
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=STANDARDGanti kode berikut:
CLUSTER_ID: ID cluster AlloyDB.CLOUD_SQL_BACKUP_ID: ID cadangan Cloud SQL yang akan dimigrasikan. Ini harus berupa ID cadangan.CLOUD_SQL_INSTANCE_ID: ID instance Cloud SQL yang akan dimigrasikan. Ini harus berupa ID instance.CLOUD_SQL_PROJECT_ID: Project ID Cloud SQL yang akan dimigrasikan. Ini harus berupa project ID.PASSWORD: Sandi pengguna PostgreSQL awal yang akan disiapkan selama pembuatan clusterREGION: Lokasi, misalnya,asia-east1atauus-east1. Lihat daftar lengkap region di Lokasi regional.DATABASE_VERSION: Versi database cluster. Versi ini harus salah satu dari:POSTGRES_14,POSTGRES_15,POSTGRES_16, atauPOSTGRES_17. Versi database harus sama dengan versi cadangan Cloud SQL.SUBSCRIPTION_TYPE: Jenis langganan cluster. Jenis ini harus salah satu dari:STANDARDatauTRIAL.
- Jalankan perintah
gcloud beta alloydb operations describeuntuk mengonfirmasi status operasi cadangan:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDGanti kode berikut:
OPERATION_ID: nama operasi AlloyDB.REGION_ID: region tempat cluster AlloyDB di-deploy.PROJECT_ID: project ID.
- Gunakan perintah
gcloud alloydb instances createuntuk membuat instance utama.
REST API
- Untuk mendapatkan daftar cadangan untuk instance tempat Anda ingin memulihkan
cadangan, panggil metode
backupsRuns.listmethod:
GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"Ganti kode berikut:
PROJECT_ID: project ID.INSTANCE_ID: ID instance.
Meminta isi JSON:
{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }Untuk mengirim permintaan, gunakan salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Perintah berikut mengasumsikan bahwa Anda login ke
Google Cloud CLIdengan akun pengguna Anda dengan menjalankangcloud initataugcloud auth login, atau dengan menggunakanCloud Shell, yang otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list.Simpan isi permintaan dalam file bernama
request.jsondan jalankan perintah berikut: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)
Perintah berikut mengasumsikan bahwa Anda login ke
gcloud CLIdengan akun pengguna Anda dengan menjalankangcloud initataugcloud auth login, atau dengan menggunakanCloud Shell, yang otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list.Simpan isi permintaan dalam file bernama
request.jsondan jalankan perintah berikut:$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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
Jika berhasil, isi respons akan berisi daftar
Respons API menampilkan daftar cadangan untuk instance sebagai daftar array, termasukBackupRun."id": string,. - Panggil metode restoreFromCloudSQL:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQLGanti kode berikut:
PROJECT_ID: project ID.REGION: region tempat cluster AlloyDB di-deploy.
Meminta isi 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. }Untuk mengirim permintaan, gunakan salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Perintah berikut mengasumsikan bahwa Anda login ke
gcloud CLIdengan akun pengguna Anda dengan menjalankangcloud initataugcloud auth login, atau dengan menggunakanCloud Shell, yang otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list.Simpan isi permintaan dalam file bernama
request.jsondan jalankan perintah berikut: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)
Perintah berikut mengasumsikan bahwa Anda login ke
gcloud CLIdengan akun pengguna Anda dengan menjalankangcloud initataugcloudauth login, atau dengan menggunakanCloud Shell, yang otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list.Simpan isi permintaan dalam file bernama
request.jsondan jalankan perintah berikut:$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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
Jika berhasil, isi respons akan berisi instance
Operation.Cluster baru akan dibuat di project dan lokasi yang ditentukan, dengan volume yang dipulihkan dari cadangan yang ditunjukkan dalam pesan CloudSQLBackupRunSource.
- Saat cluster dalam status
READY, buat instance utama dengan memanggil metodeprojects.locationsinstances.create:
POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instancesGanti kode berikut:
PROJECT_ID: project ID.REGION: region tempat cluster AlloyDB di-deploy.CLUSTER_ID: ID cluster.
Meminta isi JSON:
{ "instanceId": "string", "instance": { "object": "Instance" } }Isi permintaan memuat instance
Instance.Untuk mengirim permintaan, gunakan salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Perintah berikut mengasumsikan bahwa Anda login ke
gcloud CLIdengan akun pengguna Anda dengan menjalankangcloud initataugcloud auth login, atau dengan menggunakanCloud Shell, yang otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list.Simpan isi permintaan dalam file bernama
request.jsondan jalankan perintah berikut: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)
Perintah berikut mengasumsikan bahwa Anda login ke
gcloud CLIdengan akun pengguna Anda dengan menjalankangcloud initataugcloud auth login, atau dengan menggunakanCloud Shell, yang otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list.Simpan isi permintaan dalam file bernama
request.jsondan jalankan perintah berikut:$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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
Jika berhasil, isi respons akan memuat instance yang baru dibuat dari
Operation. - Setelah instance diupdate ke status
READY, hubungkan ke instance dan akses data yang dipulihkan dari snapshot Cloud SQL.