Halaman ini menjelaskan cara memigrasikan instance Cloud SQL untuk PostgreSQL dengan menyalin cadangan Cloud SQL ke AlloyDB untuk PostgreSQL cluster uji coba gratis. Menyalin cadangan Cloud SQL ke dalam cluster AlloyDB memungkinkan Anda memuat data dengan cepat ke dalam Cloud SQL 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 1TB
- 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:
- Cloud SQL Viewer
(
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 gratisAlloyDBakan memulihkan cadangan ke versi PostgreSQL yang sama di AlloyDB, misalnya, cadangan Cloud SQL PostgreSQL 14 akan dipulihkan ke cluster uji coba gratisAlloyDB PostgreSQL 14. Perhatikan bahwa versi ekstensi dan versi minor PostgreSQL mungkin berbeda.
Penyalinan cadangan dari Cloud SQL hanya mendukung konfigurasi item yang didukung di cluster uji coba gratisAlloyDB.
Untuk menyalin cadangan Cloud SQL ke cluster uji coba gratisAlloyDB, ikuti langkah-langkah berikut:
Konsol
- Di konsol Google Cloud , buka halaman Clusters.
- Jika Anda belum menyediakan cluster, klik Mulai uji coba gratis. Jika Anda memiliki cluster yang sudah ada, klik Migrasikan data.
- Klik 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 Select cluster type, klik Free trial cluster. Jika Anda tidak memenuhi syarat untuk mendapatkan cluster uji coba gratis, kolom ini akan berwarna abu-abu.
- Klik Pilih Jenis Cluster.
- Pilih instance Cloud SQL yang ingin Anda salin, 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 Buat cluster gratis Anda, masukkan ID cluster dan informasi jaringan Anda.
- Klik Mulai uji coba gratis.
Setelah operasi selesai, instance primer 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 cluster AlloyDB, flag database dan izin tingkat resource tidak otomatis dimigrasikan. Setelah penyalinan selesai, Anda harus menyiapkan flag dan izin ini secara manual.
Anda dapat memeriksa tanda database mana di Cloud SQL untuk PostgreSQL yang didukung di AlloyDB di halaman Buat cluster gratis Anda.
gcloud
Untuk menggunakan gcloud 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=TRIAL
Ganti kode berikut:
CLUSTER
: ID cluster Cloud SQL untuk PostgreSQL.CLOUD_SQL_BACKUP_ID
: ID cadangan CloudSQL 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 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 wilayah 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 salah satu dari: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 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 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": "TRIAL" }, // 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