Bermigrasi dari Cloud SQL untuk PostgreSQL ke AlloyDB untuk PostgreSQL

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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Enable the AlloyDB, Compute Engine, and Service Networking APIs.

    Enable the APIs

  7. Pastikan Anda memiliki hal berikut:

    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:

    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

    1. Di konsol Google Cloud , buka halaman Clusters.

      Buka Cluster

    2. Jika Anda belum menyediakan cluster, klik Mulai uji coba gratis. Jika Anda memiliki cluster yang sudah ada, klik Migrasikan data.
    3. Klik Salin dari cadangan Cloud SQL.
    4. Di halaman Copy from Cloud SQL backup, aktifkan API yang diperlukan. Jika sudah mengaktifkan API, Anda tidak perlu mengaktifkan kembali API.
    5. 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.
    6. Klik Pilih Jenis Cluster.
    7. 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.
    8. Pilih cadangan yang ingin Anda impor, lalu klik Pilih cadangan. Halaman ini menampilkan 1.000 cadangan terbaru.
    9. Di halaman Buat cluster gratis Anda, masukkan ID cluster dan informasi jaringan Anda.
    10. 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.

    1. 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 atau us-east1. Lihat daftar lengkap wilayah di lokasi regional.
      • DATABASE_VERSION: versi database cluster. Nilai ini harus salah satu dari: POSTGRES_14, POSTGRES_15, atau POSTGRES_16. Versi database harus sama dengan versi cadangan Cloud SQL.
      • SUBSCRIPTION_TYPE: jenis langganan cluster. Nilai ini harus salah satu dari: STANDARD atau TRIAL.
    2. 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.
    3. Gunakan perintah gcloud alloydb instances create untuk membuat instance utama.

    REST API

    1. 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 menjalankan gcloud init atau gcloud auth login, atau dengan menggunakan Cloud Shell, yang secara otomatis membuat Anda login ke gcloud 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 menjalankan gcloud init atau gcloud auth login, atau dengan menggunakan Cloud Shell, yang secara otomatis membuat Anda login ke gcloud 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 BackupRun.

      Respons API menampilkan daftar cadangan untuk instance sebagai daftar array, termasuk "id": string,.

    2. 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 menjalankan gcloud init atau gcloud auth login, atau dengan menggunakan Cloud Shell, yang secara otomatis membuat Anda login ke gcloud 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 menjalankan gcloud init atau gcloudauth login, atau dengan menggunakan Cloud Shell, yang secara otomatis membuat Anda login ke gcloud 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.

    3. Saat cluster dalam status READY, buat instance utama dengan memanggil metode projects.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 menjalankan gcloud init atau gcloud auth login, atau dengan menggunakan Cloud Shell, yang secara otomatis membuat Anda login ke gcloud 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 menjalankan gcloud init atau gcloud auth login, atau dengan menggunakan Cloud Shell, yang secara otomatis membuat Anda login ke gcloud 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.

    4. Setelah instance diupdate ke status READY, hubungkan ke instance dan akses data yang dipulihkan dari snapshot Cloud SQL.

    Langkah berikutnya