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 cluster uji coba gratis AlloyDB untuk PostgreSQL . Dengan menyalin cadangan Cloud SQL ke dalam cluster AlloyDB, Anda dapat 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:

  • 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. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    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.

    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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  6. Aktifkan AlloyDB, Compute Engine, dan Service Networking API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Aktifkan API

  7. Pastikan Anda memiliki hal berikut:

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan guna 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 standarAlloyDB akan memulihkan cadangan ke versi PostgreSQL yang sama di AlloyDB, misalnya, cadangan Cloud SQL PostgreSQL 14 akan dipulihkan ke cluster standar PostgreSQL 14. Perlu diingat bahwa versi ekstensi dan versi minor PostgreSQL mungkin berbeda.

Penyalinan cadangan dari Cloud SQL hanya mendukung konfigurasi item yang didukung dalam cluster standarAlloyDB .

Untuk menyalin cadangan Cloud SQL ke cluster standar uji coba gratis AlloyDB, 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 Select the cluster type, pilih Provisioned cluster.
  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 Create your provisioned cluster.

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 \
            --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 Cloud SQL untuk PostgreSQL.
    • CLOUD_SQL_BACKUP_ID: ID cadangan Cloud SQL yang akan dimigrasikan. Ini harus berupa ID cadangan.
    • CLOUD_SQL_INSTANCE_ID: ID instance Cloud SQL yang akan dimigrasikan. 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-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, POSTGRES_16, atau POSTGRES_17. 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 Cloud SQL for PostgreSQL.
    • REGION_ID: region tempat cluster Cloud SQL untuk PostgreSQL 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/POSTGRES_17",
              "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 memuat 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 primer 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. Operation.

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

Langkah berikutnya