Halaman ini menjelaskan cara memigrasikan instance Cloud SQL untuk PostgreSQL dengan menyalin cadangan Cloud SQL ke clusterAlloyDB untuk PostgreSQL. Dengan menyalin cadangan Cloud SQL ke dalam cluster AlloyDB, Anda dapat memuat data dengan cepat ke dalam AlloyDB untuk PostgreSQL, sehingga Anda dapat mengevaluasi atau melakukan migrasi ke AlloyDB.
Halaman ini mengasumsikan Anda sudah memahami Cloud SQL. Jika Anda baru menggunakan AlloyDB, lihat ringkasan AlloyDB.
Untuk mempelajari cara memigrasikan data Anda dari Cloud SQL ke AlloyDB menggunakan replikasi data berkelanjutan, lihat Database Migration Service untuk PostgreSQL ke AlloyDB.
Berikut ini tidak didukung:
- Instance edisi Cloud SQL Enterprise Plus
- Pemulihan lintas project dan lintas region
- Instance dengan Kunci Enkripsi yang Dikelola Pelanggan (CMEK)
- Instance dengan autentikasi grup Identity and Access Management (IAM)
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the AlloyDB, Compute Engine, and Service Networking APIs.
- Pastikan Anda memiliki hal berikut:
- Izin Identity and Access Management (IAM) yang diperlukan
- Cadangan Cloud SQL dengan ukuran kurang dari 5 TB
- 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, beri diri Anda peran IAM berikut di project Anda:
- Pelihat Cloud SQL
(
roles/cloudsql.viewer
) atau peran kustom apa pun yang mencakup izincloudsql.backupRuns.export
. - Cloud
AlloyDB Admin (
roles/alloydb.admin
)
Menyalin cadangan Cloud SQL ke dalam cluster AlloyDB
Menyalin cadangan Cloud SQL ke cluster uji coba gratisstandarakan memulihkan cadangan ke versi PostgreSQL yang sama di AlloyDB, misalnya, cadangan Cloud SQL PostgreSQL 14 akan dipulihkan ke cluster uji coba gratisstandar. Perlu diingat bahwa versi ekstensi dan versi minor PostgreSQL mungkin berbeda.
Penyalinan cadangan dari Cloud SQL hanya mendukung konfigurasi item yang didukung di cluster uji coba gratisstandar .
Untuk menyalin cadangan Cloud SQL ke cluster uji coba gratisstandarAlloyDB, ikuti langkah-langkah berikut:
Konsol
- Di konsol Google Cloud , buka halaman Clusters.
- Klik Migrasikan data, lalu pilih Salin dari Cadangan Cloud SQL.
- Di halaman Copy from Cloud SQL backup, aktifkan API yang diperlukan. Jika sudah mengaktifkan API, Anda tidak perlu mengaktifkan kembali API.
- Di halaman Pilih jenis cluster, pilih Cluster yang disediakan.
- Klik Pilih Jenis Cluster.
- Pilih instance Cloud SQL yang ingin Anda salin cadangannya, lalu klik Pilih 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 for PostgreSQL yang Anda pilih.
Saat Anda menyalin cadangan Cloud SQL untuk PostgreSQL ke dalam cluster AlloyDB, flag database akan dimigrasikan jika flag database ada di Cloud SQL untuk PostgreSQL dan di 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 di Cloud SQL untuk PostgreSQL yang didukung di AlloyDB di halaman Membuat cluster yang disediakan.
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-sql
:
gcloud beta alloydb clusters migrate-cloud-sql CLUSTER_ID
--cluster-id=CLUSTER_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
Ganti 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 CloudSQL yang akan dimigrasikan. Ini harus berupa ID instance.CLOUD_SQL_PROJECT_ID
: Project ID CloudSQL yang akan dimigrasikan. Ini harus berupa project ID.PASSWORD
: Sandi pengguna PostgreSQL awal yang akan disiapkan selama pembuatan cluster.REGION
: Lokasi, misalnya,asia-east1
atauus-east1
. Lihat daftar lengkap region di Lokasi regional.DATABASE_VERSION
: Versi database cluster. Nilai ini harus salah satu dari:POSTGRES_14
,POSTGRES_15
, atauPOSTGRES_16
. Versi database harus sama dengan versi cadangan Cloud SQL.SUBSCRIPTION_TYPE
: Jenis langganan cluster. Nilai ini harus berupa salah satu dari berikut:STANDARD
atauTRIAL
.
- Jalankan perintah
gcloud beta alloydb operations describe
untuk mengonfirmasi status operasi pencadangan:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_ID
Ganti kode berikut:
OPERATION_ID
: nama operasi AlloyDB.REGION_ID
: region tempat cluster AlloyDB di-deploy.PROJECT_ID
: project ID.
- Gunakan perintah
gcloud alloydb instances create
untuk membuat instance utama.
REST API
- Untuk mendapatkan daftar cadangan untuk instance yang ingin Anda pulihkan
cadangannya, panggil metode
backupsRuns.list
:
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 Anda, gunakan salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Perintah berikut mengasumsikan bahwa Anda login ke
Google Cloud CLI
dengan akun pengguna Anda dengan menjalankangcloud init
ataugcloud auth login
, atau dengan menggunakanCloud Shell
, yang secara otomatis membuat Anda login kegcloud CLI
.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list
.Simpan isi permintaan dalam file bernama
request.json
dan 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 telah login ke
gcloud CLI
dengan akun pengguna Anda dengan menjalankangcloud init
ataugcloud auth login
, atau dengan menggunakanCloud Shell
, yang secara otomatis membuat Anda login kegcloud CLI
.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list
.Simpan isi permintaan dalam file bernama
request.json
dan 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 Content
Anda akan menerima respons JSON yang mirip dengan 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:restoreFromCloudSQL
Ganti 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", "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 telah login ke
gcloud CLI
dengan akun pengguna Anda dengan menjalankangcloud init
ataugcloud auth login
, atau dengan menggunakanCloud Shell
, yang secara otomatis membuat Anda login kegcloud CLI
.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list
.Simpan isi permintaan dalam file bernama
request.json
dan 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 telah login ke
gcloud CLI
dengan akun pengguna Anda dengan menjalankangcloud init
ataugcloudauth login
, atau dengan menggunakanCloud Shell
, yang secara otomatis membuat Anda login kegcloud CLI
.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list
.Simpan isi permintaan dalam file bernama
request.json
dan 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 Content
Anda akan menerima respons JSON yang mirip dengan berikut ini:
Respons
Jika berhasil, isi respons akan berisi instance
Operation
.Cluster baru 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}/instances
Ganti 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 telah login ke
gcloud CLI
dengan akun pengguna Anda dengan menjalankangcloud init
ataugcloud auth login
, atau dengan menggunakanCloud Shell
, yang secara otomatis membuat Anda login kegcloud CLI
.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list
.Simpan isi permintaan dalam file bernama
request.json
dan 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 telah login ke
gcloud CLI
dengan akun pengguna Anda dengan menjalankangcloud init
ataugcloud auth login
, atau dengan menggunakanCloud Shell
, yang secara otomatis membuat Anda login kegcloud CLI
.Anda dapat memeriksa akun aktif dengan menjalankan
gcloud auth list
.Simpan isi permintaan dalam file bernama
request.json
dan 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 Content
Anda akan menerima respons JSON yang mirip dengan berikut ini:
Respons
Jika berhasil, isi respons akan memuat instance
Operation
yang baru dibuat. - Setelah instance diupdate ke status
READY
, hubungkan ke instance dan akses data yang dipulihkan dari snapshot Cloud SQL.
Langkah berikutnya