Membuat tugas migrasi ke cluster tujuan baru

Saat Anda membuat cluster AlloyDB untuk PostgreSQL tujuan dengan Database Migration Service, cluster tersebut akan disediakan sebagai cluster AlloyDB untuk PostgreSQL dengan instance utama. Menjalankan operasi tertentu selama proses migrasi dapat menyebabkan error migrasi. Saat Anda bermigrasi ke cluster tujuan baru, perhatikan pertimbangan operasional berikut:

  • Hindari operasi tulis pada data yang dimigrasikan: Jangan lakukan operasi tulis (seperti INSERT, UPDATE, DELETE, atau perubahan skema DDL) di cluster tujuan pada tabel atau database yang disertakan dalam migrasi. Operasi tersebut dapat menyebabkan konflik replikasi dengan data yang berasal dari sumber.
  • Mengelola pengguna database: Anda dapat membuat dan mengelola pengguna database kapan saja menggunakan perintah psql standar atau melalui AlloyDB untuk PostgreSQL di konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Mengelola pengguna database dalam dokumentasi AlloyDB untuk PostgreSQL.

Untuk mengetahui informasi selengkapnya, lihat Batasan umum.

Pembuatan tugas migrasi mencakup:

  1. Menentukan setelan untuk tugas migrasi.
  2. Menentukan informasi tentang profil koneksi yang Anda buat untuk database sumber (profil koneksi sumber).
  3. Menentukan setelan untuk cluster AlloyDB untuk PostgreSQL tujuan dan membuat cluster.
  4. Menyiapkan konektivitas antara lingkungan database sumber dan tujuan.
  5. Menguji tugas migrasi untuk memastikan informasi koneksi yang Anda berikan untuk tugas tersebut valid.

Untuk membuat tugas migrasi ke cluster tujuan baru, lakukan hal berikut:

Konsol

Menentukan setelan untuk tugas migrasi

  1. Di konsol Google Cloud , buka halaman Tugas migrasi.

    Buka Tugas migrasi

  2. Klik Create migration job.

    Halaman wizard konfigurasi tugas migrasi akan terbuka. Wizard ini berisi beberapa panel yang memandu Anda melalui setiap langkah konfigurasi.

    Anda dapat menjeda pembuatan tugas migrasi kapan saja dengan mengklik Save and exit. Semua data yang Anda masukkan hingga saat itu akan disimpan dalam draf tugas migrasi. Anda dapat menyelesaikan tugas migrasi draf nanti.

  3. Di halaman Mulai, masukkan informasi berikut:
    1. Nama tugas migrasi

      Ini adalah nama yang dapat dibaca manusia untuk tugas migrasi Anda. Nilai ini ditampilkan di konsol Google Cloud .

    2. ID pekerjaan migrasi

      Ini adalah ID yang dapat dibaca mesin untuk tugas migrasi Anda. Anda menggunakan nilai ini untuk menangani tugas migrasi menggunakan perintah Google Cloud CLI atau API Database Migration Service.

    3. Dari daftar mesin database sumber, pilih PostgreSQL.
    4. Dari daftar Destination database engine, pilih AlloyDB untuk PostgreSQL.
    5. Pilih region tempat Anda menyimpan tugas migrasi.

      Database Migration Service adalah produk yang sepenuhnya regional, yang berarti semua entity yang terkait dengan migrasi Anda (profil koneksi sumber dan tujuan, tugas migrasi, database tujuan) harus disimpan dalam satu region. Pilih region berdasarkan lokasi layanan yang memerlukan data Anda, seperti instance Compute Engine atau aplikasi App Engine, dan layanan lainnya. Setelah Anda memilih region tujuan, pilihan ini tidak dapat diubah.

    6. Tentukan jenis pekerjaan migrasi: Continuous (snapshot + perubahan yang sedang berlangsung). Migrasi homogen AlloyDB untuk PostgreSQL secara eksklusif mendukung migrasi berkelanjutan.
    7. Tinjau prasyarat yang dibuat untuk lingkungan Anda. Pastikan database sumber Anda dikonfigurasi dengan benar. Untuk informasi selengkapnya, lihat Mengonfigurasi database sumber.
  4. Klik Simpan dan lanjutkan.

Menentukan informasi tentang profil koneksi sumber

Di halaman Define a source, lakukan langkah-langkah berikut:

  1. Dari menu drop-down Source connection profile, pilih profil koneksi untuk database sumber Anda (atau klik Create a connection profile; lihat Membuat profil koneksi sumber).
  2. Di bagian Customize parallelism configurations, klik Show parallelism configurations.

    Selama dump penuh awal, ekstensi pglogical mereplikasi data di tingkat tabel dan tidak membagi setiap tabel yang tidak dipartisi, partisi leaf, atau tabel tanpa kunci utama di beberapa langganan. Artinya, paralelisme dump data yang ditingkatkan tidak dapat meningkatkan kecepatan dump awal untuk satu tabel besar yang tidak dipartisi, karena tabel tersebut disalin dalam satu langganan. Untuk mengetahui informasi selengkapnya, lihat Pertimbangan paralelisme dump data.

    Kecepatan paralelisme dump data terkait dengan jumlah beban yang diinduksi pada database sumber Anda:

    • Optimal (direkomendasikan): Performa seimbang dengan beban optimal pada database sumber. Database Migration Service membuat hingga 2 langganan per database (total hingga 2 langganan di semua database, dengan setidaknya 1 langganan per database yang dimigrasikan).
    • Maksimum: Memberikan kecepatan dump tertinggi, tetapi dapat menyebabkan peningkatan beban pada database sumber. Database Migration Service membuat hingga 4 langganan per database (total hingga 4 langganan di semua database, dengan setidaknya 1 langganan per database yang dimigrasikan).
    • Minimum: Menggunakan jumlah resource komputasi terendah di database sumber, tetapi mungkin memiliki throughput dump yang lebih lambat. Database Migration Service membuat 1 langganan per database.

    Jika Anda memilih setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan parameter max_replication_slots, max_wal_senders, dan max_worker_processes pada database sumber Anda.

  3. Klik Simpan dan lanjutkan.

Mengonfigurasi dan membuat cluster AlloyDB untuk PostgreSQL tujuan

Sekarang, buat cluster AlloyDB untuk PostgreSQL tujuan baru untuk tugas migrasi Anda. Cluster adalah resource level teratas di AlloyDB untuk PostgreSQL. Cluster ini berisi satu instance utama untuk akses baca dan tulis ke database yang Anda buat selama proses migrasi.

  1. Di halaman Define a destination, dari menu drop-down Type of destination instance, pilih New cluster.
  2. Pilih jenis cluster. Database Migration Service mendukung cluster AlloyDB untuk PostgreSQL dengan ketersediaan tinggi, yang dapat menyajikan data dari lebih dari satu zona di suatu region, tanpa kumpulan baca selama penyediaan awal.
  3. Klik Lanjutkan.
  4. Konfigurasi cluster Anda:
    1. Di kolom Cluster ID, masukkan ID untuk cluster AlloyDB untuk PostgreSQL atau gunakan ID yang dibuat otomatis.

      Jangan sertakan informasi sensitif atau informasi identitas pribadi dalam ID. Anda tidak perlu menyertakan project ID dalam nama cluster. Hal ini dilakukan secara otomatis jika sesuai.

    2. Di kolom Password, berikan sandi alfanumerik untuk cluster AlloyDB untuk PostgreSQL tujuan. Ini adalah sandi untuk akun administrator postgres dalam cluster.

      Anda dapat memasukkan sandi secara manual atau mengklik Generate agar Database Migration Service membuatkannya untuk Anda secara otomatis.

    3. Dari menu drop-down Database version, pilih versi database untuk cluster tujuan.

      Pelajari lebih lanjut dukungan migrasi lintas versi.

    4. Di kolom Network:
      1. Pilih jalur jaringan untuk menentukan resource yang tersedia saat menetapkan konektivitas migrasi. Cluster dikonfigurasi dengan jalur jaringan IP pribadi. Jika Anda berencana untuk terhubung ke database sumber dengan peering VPC, pilih VPC tempat database tersebut berada.
      2. Jika jaringan Anda belum dikonfigurasi untuk akses layanan pribadi, klik Set up connection dan ikuti wizard konfigurasi koneksi.
      3. Jika jaringan layanan terkelola belum pernah dikonfigurasi untuk VPC yang dipilih, Anda dapat memilih untuk memilih rentang IP dan mengklik Connect atau menggunakan rentang IP yang dipilih secara otomatis dan mengklik Allocate & Connect.
    5. (Opsional) Konfigurasi opsi enkripsi data untuk cluster tujuan Anda.

      Luaskan bagian ini untuk melihat langkah-langkah opsional.

      Klik Tampilkan opsi lanjutan untuk menentukan apakah Anda ingin mengelola enkripsi data yang dimigrasikan dari sumber ke tujuan. Secara default, data Anda dienkripsi dengan kunci yang dikelola oleh Google Cloud.

      Jika ingin mengelola enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK). Kunci harus berada di lokasi yang sama dengan cluster AlloyDB untuk PostgreSQL Anda. Misalnya, cluster yang terletak di us-west1 hanya dapat menggunakan kunci di us-west1.

      1. Pilih tombol pilihan Use a customer-managed encryption key (CMEK).
      2. Dari menu Select a customer-managed key, pilih CMEK Anda.

      Jika Anda tidak melihat kunci, klik Enter key resource name untuk memberikan nama resource kunci yang ingin Anda gunakan. Misalnya, masukkan projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key di kolom Key resource name, lalu klik Save.

    6. Klik Lanjutkan.
  5. Konfigurasikan instance utama Anda. Instance utama menentukan kapasitas komputasi cluster serta mendukung operasi baca dan tulis:
    1. Di kolom Instance ID, masukkan ID untuk instance utama Anda.
    2. Pilih jenis mesin untuk instance utama.
    3. Jika Anda berencana menggunakan metode konektivitas IP allowlist, centang kotak Enable outbound public IP.
    4. (Opsional) Konfigurasi flag database untuk instance utama Anda.

      Luaskan bagian ini untuk melihat langkah-langkah opsional.

      Klik Show advanced options untuk menetapkan flag database untuk instance utama Anda. Untuk mengetahui informasi tentang flag yang didukung, lihat Mengonfigurasi flag database dalam dokumentasi AlloyDB untuk PostgreSQL. Untuk setiap flag:

      1. Klik Add flag.
      2. Pilih flag database dari daftar New database flag.
      3. Berikan nilai untuk flag.
      4. Klik Done.
  6. Klik Simpan dan lanjutkan, lalu konfirmasi pilihan Anda dengan mengklik Buat tujuan dan lanjutkan. Database Migration Service akan membuat cluster AlloyDB untuk PostgreSQL tujuan dan instance utamanya. Proses ini dapat memerlukan waktu beberapa menit.

Menyiapkan konektivitas antara instance database sumber dan cluster tujuan

Dari menu drop-down Metode konektivitas, pilih metode konektivitas jaringan. Metode ini menentukan cara cluster AlloyDB untuk PostgreSQL tujuan terhubung ke database sumber. Metode konektivitas jaringan saat ini untuk bermigrasi ke cluster baru mencakup daftar IP yang diizinkan, peering VPC, tunnel SSH terbalik, dan proxy TCP melalui VM yang dihosting di cloud.

Jika Anda ingin menggunakan...Maka...
Metode konektivitas jaringan daftar IP yang diizinkan, Salin kedua alamat IP publik keluar dari instance utama cluster tujuan Anda dan gunakan untuk mengonfigurasi firewall jaringan untuk server database sumber Anda dan di file pg_hba.conf.
Metode konektivitas jaringan tunnel SSH terbalik, Pilih instance VM Compute Engine yang akan menghosting tunnel.

Setelah menentukan instance, Google menyediakan skrip yang melakukan langkah-langkah untuk menyiapkan tunnel antara database sumber dan tujuan. Jalankan skrip di Google Cloud CLI dari mesin yang memiliki konektivitas ke database sumber dan ke Google Cloud.

Metode konektivitas jaringan peering VPC, Pilih jaringan VPC tempat database sumber berada. Cluster tujuan terhubung ke jaringan ini menggunakan akses layanan pribadi.
Metode konektivitas proxy TCP melalui VM yang dihosting di cloud, Masukkan detail yang diperlukan untuk instance VM Compute Engine baru yang akan menghosting proxy TCP.

Setelah menentukan detailnya, konsol Google Cloud akan menyediakan skrip yang menyiapkan proxy antara database sumber dan tujuan. Jalankan skrip di komputer dengan Google Cloud CLI yang telah diupdate.

Setelah menjalankan skrip, masukkan alamat IP pribadi VM yang baru dibuat, lalu klik Configure and continue.

Setelah Anda memilih dan mengonfigurasi konektivitas jaringan, klik Configure and continue.

Mengonfigurasi database migrasi

Anda dapat memigrasikan semua database dari instance sumber, atau hanya memilih database tertentu.

  1. Dari daftar Databases to migrate, pilih salah satu opsi berikut:
    • All databases: Memilih semua database yang ada di sumber.
    • Specific databases: Memungkinkan Anda memilih database tertentu dari semua database yang ada di sumber.
  2. Jika Anda ingin memigrasikan database tertentu, filter daftar yang muncul dan pilih database yang ingin Anda migrasikan ke tujuan menggunakan Database Migration Service.

    Jika daftar tidak muncul dan error penemuan database ditampilkan, klik Reload. Jika penemuan database gagal, tugas akan memigrasikan semua database. Anda dapat melanjutkan pembuatan tugas migrasi dan memperbaiki error konektivitas nanti.

  3. Klik Simpan dan lanjutkan.

Menguji, membuat, dan menjalankan tugas migrasi

Pada langkah terakhir ini, tinjau ringkasan setelan tugas migrasi, sumber, tujuan, dan metode konektivitas, lalu uji validitas penyiapan tugas migrasi. Jika terjadi masalah, Anda dapat mengubah setelan tugas migrasi.

  1. Di halaman Test and create migration job, klik Test job.

    Jika pengujian gagal, atasi masalah tersebut di bagian alur yang sesuai, dan kembali untuk menguji ulang. Untuk mengetahui informasi tentang cara memecahkan masalah pengujian tugas migrasi yang gagal, lihat Mendiagnosis masalah untuk AlloyDB untuk PostgreSQL.

  2. Setelah pengujian tugas migrasi selesai, klik Create and start job untuk membuat tugas migrasi dan langsung memulainya, atau klik Create job untuk membuat tugas migrasi tanpa langsung memulainya.

    Jika tugas tidak dimulai pada saat dibuat, tugas tersebut dapat dimulai dari halaman Migration jobs dengan mengklik Start. Terlepas dari kapan tugas migrasi dimulai, organisasi Anda akan dikenai biaya untuk keberadaan cluster tujuan.

    Saat Anda memulai tugas migrasi, Database Migration Service akan memulai dump penuh awal dan replikasi berkelanjutan. Untuk mengetahui informasi selengkapnya, lihat Batasan umum.

  3. Lanjutkan ke Meninjau tugas migrasi.

Google Cloud CLI

  1. Membuat profil koneksi tujuan.
    Saat bermigrasi ke cluster tujuan baru dengan Google Cloud CLI, Anda membuat cluster tujuan dan profil koneksi dalam satu tindakan.
    Jalankan perintah berikut (klik link untuk meluaskan):

    gcloud database-migration connection-profiles create alloydb

    Contoh ini menggunakan flag --no-async opsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag --no-async untuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintah gcloud database-migration operations describe untuk memverifikasi apakah operasi Anda berhasil.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • DEST_CONN_ID dengan ID profil koneksi tujuan.
    • REGION dengan region tempat Anda ingin menyimpan profil koneksi dan membuat cluster tujuan.
    • DEST_PASSWORD dengan sandi awal untuk pengguna postgres di cluster AlloyDB untuk PostgreSQL tujuan Anda.
    • PRIMARY_ID dengan ID untuk instance utama di cluster AlloyDB untuk PostgreSQL tujuan Anda.
    • CPU_COUNT dengan jumlah vCPU untuk instance utama (misalnya, 2, 4, 8).
    • VPC_NETWORK dengan nama atau URI resource lengkap jaringan Virtual Private Cloud yang dikonfigurasi untuk akses layanan pribadi.
    • Opsional: Untuk mengonfigurasi setelan tambahan untuk cluster AlloyDB untuk PostgreSQL dan instance utama tujuan baru, Anda dapat meneruskan flag berikut:
      • --enable-outbound-public-ip: Aktifkan IP publik keluar di instance utama (diperlukan jika Anda menggunakan konektivitas daftar IP yang diizinkan).
      • --kms-key, --kms-keyring, dan --kms-project: Mengenkripsi cluster tujuan dengan kunci enkripsi yang dikelola pelanggan (CMEK).
      • --database-version: Tentukan versi utama PostgreSQL untuk cluster tujuan (misalnya, POSTGRES_15).
      • --database-flags: Tentukan daftar flag database yang dipisahkan koma (KEY=VALUE) untuk instance utama tujuan.

    Jalankan perintah berikut:

    Linux, macOS, atau Cloud Shell

    gcloud database-migration connection-profiles create alloydb DEST_CONN_ID \
      --region=REGION \
      --password=DEST_PASSWORD \
      --primary-id=PRIMARY_ID \
      --cpu-count=CPU_COUNT \
      --network=VPC_NETWORK \
      --no-async

    Windows (PowerShell)

    gcloud database-migration connection-profiles create alloydb DEST_CONN_ID `
      --region=REGION `
      --password=DEST_PASSWORD `
      --primary-id=PRIMARY_ID `
      --cpu-count=CPU_COUNT `
      --network=VPC_NETWORK `
      --no-async

    Windows (cmd.exe)

    gcloud database-migration connection-profiles create alloydb DEST_CONN_ID ^
      --region=REGION ^
      --password=DEST_PASSWORD ^
      --primary-id=PRIMARY_ID ^
      --cpu-count=CPU_COUNT ^
      --network=VPC_NETWORK ^
      --no-async

    Anda akan melihat respons seperti berikut:

    Waiting for connection profile [DEST_CONN_ID]
    to be created with [OPERATION_ID]
    
    Waiting for operation [OPERATION_ID] to complete...done.
    
    Created connection profile DEST_CONN_ID [OPERATION_ID]
    
  2. Buat tugas migrasi.
    Jika Anda menggunakan konektivitas daftar IP yang diizinkan, peering VPC, atau tunnel SSH terbalik, pastikan untuk menambahkan flag yang diperlukan, seperti --static-ip, --peer-vpc, atau --vm, --vm-ip, --vm-port, dan --vpc. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi konektivitas dan Contoh Google Cloud CLI.
    Jalankan perintah berikut (klik link untuk meluaskan):

    gcloud database-migration migration-jobs create

    Contoh ini menggunakan flag --no-async opsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag --no-async untuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintah gcloud database-migration operations describe untuk memverifikasi apakah operasi Anda berhasil.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • MIGRATION_JOB_ID dengan ID yang dapat dibaca mesin untuk tugas migrasi Anda. Anda menggunakan nilai ini untuk menangani tugas migrasi menggunakan perintah Google Cloud CLI atau API Database Migration Service.
    • REGION dengan ID region tempat Anda ingin menyimpan tugas migrasi.
    • MIGRATION_JOB_NAME dengan nama yang dapat dibaca manusia untuk tugas migrasi Anda. Nilai ini ditampilkan di Database Migration Service di konsol Google Cloud .
    • SOURCE_CONNECTION_PROFILE_ID dengan ID profil koneksi sumber yang dapat dibaca mesin. Untuk mengetahui informasi selengkapnya, lihat Membuat profil koneksi sumber.
    • DESTINATION_CONNECTION_PROFILE_ID dengan ID yang dapat dibaca mesin dari profil koneksi tujuan.
    • Opsional: Database Migration Service memigrasikan semua database di sumber Anda secara default. Jika Anda hanya ingin memigrasikan database tertentu, gunakan flag --databases-filter dan tentukan ID-nya sebagai daftar yang dipisahkan koma.

      Contoh: --databases-filter=my-business-database,my-other-database

      Anda dapat mengedit tugas migrasi yang dibuat dengan flag --databases-filter nanti menggunakan perintah gcloud database-migration migration-jobs update.

    Jalankan perintah berikut:

    Linux, macOS, atau Cloud Shell

    gcloud database-migration migration-jobs \
    create MIGRATION_JOB_ID \
      --no-async \
      --region=REGION \
      --display-name=MIGRATION_JOB_NAME \
      --source=SOURCE_CONNECTION_PROFILE_ID \
      --destination=DESTINATION_CONNECTION_PROFILE_ID \
      --type=CONTINUOUS

    Windows (PowerShell)

    gcloud database-migration migration-jobs `
    create MIGRATION_JOB_ID `
      --no-async `
      --region=REGION `
      --display-name=MIGRATION_JOB_NAME `
      --source=SOURCE_CONNECTION_PROFILE_ID `
      --destination=DESTINATION_CONNECTION_PROFILE_ID `
      --type=CONTINUOUS

    Windows (cmd.exe)

    gcloud database-migration migration-jobs ^
    create MIGRATION_JOB_ID ^
      --no-async ^
      --region=REGION ^
      --display-name=MIGRATION_JOB_NAME ^
      --source=SOURCE_CONNECTION_PROFILE_ID ^
      --destination=DESTINATION_CONNECTION_PROFILE_ID ^
      --type=CONTINUOUS

    Anda akan melihat respons seperti berikut:

    Waiting for migration job [MIGRATION_JOB_ID]
    to be created with [OPERATION_ID]
    
    Waiting for operation [OPERATION_ID] to complete...done.
    
    Created migration job MIGRATION_JOB_ID [OPERATION_ID]