Untuk mengevaluasi AlloyDB untuk PostgreSQL atau memigrasikan workload yang ada tanpa menyiapkan replikasi berkelanjutan, Anda dapat menyalin cadangan Cloud SQL untuk PostgreSQL langsung ke cluster clusterAlloyDB.
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.
Konfigurasi berikut tidak didukung:
- Pemulihan lintas project dan lintas region
- Instance dengan kunci enkripsi yang dikelola pelanggan (CMEK)
Sebelum memulai
-
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 API AlloyDB, Compute Engine, dan Service Networking, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). 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 Anda perlukan untuk menyalin cadangan Cloud SQL untuk PostgreSQL ke dalam cluster AlloyDB, berikan peran IAM berikut kepada diri Anda sendiri di project Anda:
- Cloud SQL Viewer
(
roles/cloudsql.viewer) atau peran khusus apa pun yang menyertakan izincloudsql.backupRuns.export. - Admin AlloyDB
(
roles/alloydb.admin)
Menyalin cadangan Cloud SQL ke cluster AlloyDB
Menyalin cadangan Cloud SQL ke clusterstandarAlloyDB akan memulihkan cadangan ke versi PostgreSQL yang sama di AlloyDB, misalnya, cadangan Cloud SQL PostgreSQL 14 dipulihkan ke cluster standarPostgreSQL 14. Perlu diingat bahwa versi ekstensi dan versi minor PostgreSQL mungkin berbeda.
Menyalin cadangan dari Cloud SQL hanya mendukung konfigurasi item yang didukung di clusterstandar AlloyDB.
Untuk menyalin cadangan Cloud SQL ke clusterstandarAlloyDB, ikuti langkah-langkah berikut:
Konsol
- Di konsol Google Cloud , 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 mengaktifkannya kembali.
- Di halaman Select the cluster type, pilih Provisioned cluster.
- Klik Select Cluster Type.
- Pilih instance Cloud SQL yang ingin Anda salin cadangannya, lalu klik Select instance. Anda dapat memfilter instance Cloud SQL.
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 Pilih cadangan. 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, AlloyDB akan memetakan dan mempertahankan konfigurasi pengguna individu dan grup IAM. AlloyDB juga memigrasikan flag database yang didukung di Cloud SQL untuk PostgreSQL dan AlloyDB. Izin tingkat resource tidak dimigrasikan secara otomatis. Setelah penyalinan selesai, Anda harus menyiapkan izin dan flag database yang tidak dimigrasikan karena ketidakcocokan secara manual.
Anda dapat memeriksa flag database mana di Cloud SQL untuk PostgreSQL yang didukung di AlloyDB di halaman Membuat cluster yang disediakan.
gcloud
Untuk menggunakan gcloud CLI, Anda dapat menginstal dan melakukan inisialisasi gcloud CLI, atau Anda dapat menggunakan Cloud Shell.
- Jalankan perintah
gcloud alloydb clusters migrate-cloud-sql:
gcloud 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 Cloud SQL untuk PostgreSQL.CLOUD_SQL_BACKUP_ID: ID cadangan Cloud SQL yang akan dimigrasikan. ID ini harus berupa ID cadangan.CLOUD_SQL_INSTANCE_ID: ID instance Cloud SQL yang akan dimigrasikan. ID 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 cluster.REGION: Lokasi, misalnya,asia-east1atauus-east1. Lihat daftar lengkap region di Lokasi.DATABASE_VERSION: Versi database cluster. Ini harus berupa salah satu dari:POSTGRES_14,POSTGRES_15,POSTGRES_16,POSTGRES_17, atauPOSTGRES_18. Versi database harus sama dengan versi cadangan Cloud SQL.
- Jalankan perintah
gcloud alloydb operations describeuntuk mengonfirmasi status operasi pencadangan:
gcloud alloydb operations describeOPERATION_ID\ --region=REGION_ID\ --project=PROJECT_IDGanti kode berikut:
OPERATION_ID: nama operasi Cloud SQL untuk PostgreSQL.REGION_ID: region tempat cluster Cloud SQL untuk PostgreSQL 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
backupRuns.list:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRunsGanti kode berikut:
PROJECT_ID: project ID.INSTANCE_ID: ID instance.
Untuk mengirim permintaan Anda, 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 secara otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun yang aktif dengan menjalankan
gcloud auth list.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/v1/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 secara otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun yang aktif dengan menjalankan
gcloud auth list.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/v1/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 objek
BackupRun:{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }Respons API menampilkan daftar cadangan untuk instance sebagai daftar array, termasuk
"id": string. - Panggil metode
clusters.restoreFromCloudSQL:POST https://alloydb.googleapis.com/v1/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/POSTGRES_18", "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 Anda, 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 secara otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun yang 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/v1/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"PowerShell (Windows)
Perintah berikut mengasumsikan bahwa Anda login ke
gcloud CLIdengan akun pengguna Anda dengan menjalankangcloud initataugcloud auth login, atau dengan menggunakanCloud Shell, yang secara otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun yang 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/v1/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 memuat instance
Operation.AlloyDB membuat cluster baru di project dan lokasi yang ditentukan, serta memulihkan volumenya dari cadangan yang ditentukan dalam pesan CloudSQLBackupRunSource.
- Saat cluster dalam status
READY, buat instance utama dengan memanggil metodeprojects.locations.clusters.instances.create:
POST https://alloydb.googleapis.com/v1/{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 Anda, 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 secara otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun yang 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/v1/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 secara otomatis membuat Anda login kegcloud CLI.Anda dapat memeriksa akun yang 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/v1/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
Operationyang baru dibuat. - Setelah instance diupdate ke status
READY, hubungkan ke instance dan akses data yang dipulihkan dari snapshot Cloud SQL.