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 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

  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 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

    1. Di konsol Google Cloud , buka halaman Clusters.

      Buka Cluster

    2. Klik Migrasikan data, lalu pilih Salin dari Cadangan Cloud SQL.
    3. Di halaman Copy from Cloud SQL backup, aktifkan API yang diperlukan. Jika sudah mengaktifkan API, Anda tidak perlu mengaktifkan kembali API.
    4. Di halaman Pilih jenis cluster, pilih Cluster yang disediakan.
    5. Klik Pilih Jenis Cluster.
    6. 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.
    7. Pilih cadangan yang ingin Anda impor, lalu klik Pilih cadangan. Halaman ini menampilkan 1.000 cadangan terbaru.
    8. Di halaman Create your provisioned cluster, masukkan informasi jaringan Anda. ID cluster diisi secara default, tetapi Anda juga dapat menyesuaikan cluster yang disediakan.
    9. 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.

    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=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 atau us-east1. Lihat daftar lengkap region 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 berupa salah satu dari berikut: 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 login ke Google Cloud 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": "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 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