Halaman ini menjelaskan cara memigrasikan database ke instance Cloud SQL untuk PostgreSQL yang sudah ada dan dibuat langsung di Cloud SQL.
Jalur ini berguna untuk skenario saat instance tujuan Anda dikelola oleh tim yang berbeda, atau jika Anda perlu membuat instance di luar Database Migration Service (misalnya, jika Anda menggunakan Terraform, memerlukan flag kustom tertentu, atau memerlukan topologi jaringan lanjutan). Jika migrasi Anda memiliki persyaratan yang berbeda, pertimbangkan untuk mengikuti alur migrasi yang berbeda. Untuk mengetahui informasi selengkapnya, lihat Memulai migrasi PostgreSQL.
Secara umum, migrasi mengikuti langkah-langkah berikut:
- Konfigurasikan database sumber untuk mengizinkan Database Migration Service memindahkan data Anda ke database baru.
- Siapkan konektivitas jaringan ke instance PostgreSQL sumber Anda.
- Siapkan dan konfigurasi instance Cloud SQL tujuan yang ada.
- Membuat profil koneksi sumber dan tugas migrasi.
- Memulai dan memantau tugas migrasi.
- Mempromosikan tugas migrasi dan memindahkan aplikasi Anda untuk menggunakan database baru.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponenGoogle Cloudyang dapat ditagih berikut:
- Cloud SQL (Lihat Harga Cloud SQL.)
- Jika digunakan untuk menyimpan Kunci Enkripsi yang Dikelola Pelanggan (CMEK): Cloud Storage (Lihat harga Cloud Storage.)
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.
Sebelum memulai
- Verifikasi apakah jalur migrasi ini dapat sepenuhnya mendukung skenario Anda.
Lihat halaman berikut:
- Sumber dan tujuan yang didukung di halaman Ringkasan skenario mencantumkan semua versi sumber dan tujuan yang didukung.
- Batasan umum untuk instance yang ada menjelaskan batasan, termasuk persyaratan bahwa instance tujuan yang ada tidak boleh berisi data yang ditentukan pengguna yang ada.
- Pertimbangkan region tempat Anda ingin membuat database tujuan. Database Migration Service adalah produk yang sepenuhnya bersifat regional, yang berarti semua entity yang terkait dengan migrasi Anda (profil koneksi sumber dan tujuan, tugas migrasi, database tujuan, ruang kerja konversi) harus disimpan dalam satu region.
- Di konsol Google Cloud , pada halaman pemilih project, pilih atau buat project Google Cloud .
- Mengaktifkan API Database Migration Service dan Cloud SQL Admin.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk melakukan migrasi PostgreSQL homogen dengan Database Migration Service, minta administrator untuk memberi Anda peran IAM yang diperlukan pada project Anda:
-
Database Migration Admin (
roles/datamigration.admin) -
Cloud SQL Editor (
roles/cloudsql.editor) - Jika Anda perlu membuat atau mengonfigurasi instance tujuan di luar Database Migration Service, Anda juga
memerlukan
Cloud SQL Admin (
roles/cloudsql.admin) -
Cloud SQL Studio User (
roles/cloudsql.studioUser)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses dalam dokumentasi Identity and Access Management.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk melakukan migrasi PostgreSQL homogen dengan Database Migration Service. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk melakukan migrasi PostgreSQL homogen dengan Database Migration Service:
datamigration.*cloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.deletecloudsql.operations.getcloudsql.users.listcloudsql.users.getcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Menyiapkan database sumber
Untuk menyiapkan data sumber Anda untuk migrasi, ikuti langkah-langkah berikut:
- Pilih dan konfigurasi metode konektivitas jaringan sumber Anda.
- Konfigurasikan instance database sumber Anda. Secara umum, hal ini mencakup
langkah-langkah berikut:
- Instal ekstensi PostgreSQL
pglogical(versi 2.2.1 atau yang lebih baru) di database sumber dan di semua database yang akan dimigrasikan. - Konfigurasi parameter PostgreSQL: tetapkan
wal_level = logical, dan pastikan nilai yang memadai untukmax_replication_slots,max_wal_senders, danmax_worker_processes. - Berikan hak istimewa replikasi kepada pengguna migrasi Anda, dan konfigurasikan
pg_hba.confuntuk mengizinkan koneksi dari instance Cloud SQL tujuan.
Untuk mengetahui petunjuk mendetail, lihat Mengonfigurasi database sumber.
- Instal ekstensi PostgreSQL
- Buat profil koneksi sumber.
Menyiapkan dan mengonfigurasi instance tujuan
Saat bermigrasi ke instance Cloud SQL yang ada (seperti instance yang telah disediakan sebelumnya oleh tim lain atau dikelola dengan Terraform), pastikan instance tersebut memenuhi semua prasyarat Database Migration Service sebelum membuat tugas migrasi:
- Kesiapan instance dan status data:
- Instance tujuan harus berupa instance mandiri (bukan replika) dalam status
RUNNABLE. - Instance harus berada di region Google Cloud yang sama dengan tugas migrasi dan profil koneksi Anda.
- Instance hanya dapat dikaitkan dengan satu tugas migrasi aktif dalam satu waktu.
- Instance tujuan tidak boleh berisi data pengguna yang ada, tabel yang ditentukan pengguna, atau database non-sistem. Verifikasi tugas migrasi akan gagal jika data pengguna yang ada ada di instance. Untuk mengetahui informasi selengkapnya, lihat Batasan untuk migrasi ke instance tujuan yang ada. Jika perlu, hapus data yang ada dari instance tujuan Anda.
- Instance tujuan harus berupa instance mandiri (bukan replika) dalam status
- Konfigurasi flag database: Aktifkan flag
cloudsql.enable_pglogicaldi instance Cloud SQL untuk PostgreSQL tujuan Anda. Flag ini diperlukan untuk replikasi logis. Untuk mengetahui informasi selengkapnya tentang menetapkan flag, lihat Mengonfigurasi flag database. - Kredensial dan izin pengguna database: Pastikan akun pengguna database administratif yang diperlukan ada di instance tujuan Anda (seperti pengguna
postgresdefault atau pengguna migrasi khusus dengan perancloudsqlsuperuser) untuk mengelola database dan peran. Anda dapat membuat dan mengelola pengguna database menggunakan perintahpsqlstandar atau melalui konsol Google Cloud . Untuk informasi selengkapnya, lihat Mengelola pengguna dalam dokumentasi Cloud SQL. - Persyaratan konektivitas jaringan: Pastikan jaringan instance tujuan Anda dikonfigurasi dengan benar untuk berkomunikasi dengan database sumber sesuai dengan metode konektivitas yang Anda pilih:
- Private Service Connect: Jika instance tujuan Anda mengaktifkan Private Service Connect, instance tersebut harus memiliki Lampiran Jaringan Keluar Private Service Connect yang dikonfigurasi. Lihat Koneksi keluar Private Service Connect dalam dokumentasi Cloud SQL.
- Peering Virtual Private Cloud (Akses Layanan Pribadi / IP Pribadi): Instance tujuan harus mengaktifkan IP pribadi di jaringan Virtual Private Cloud yang melakukan peering dengan atau merutekan ke database sumber Anda. Lihat Mengonfigurasi IP pribadi.
- Daftar IP publik yang diizinkan: Jika menggunakan konektivitas IP publik, pastikan Anda mengaktifkan IP publik di instance tujuan dan mengizinkan alamat IP keluar instance (termasuk IP keluar utama dan sekunder jika instance dikonfigurasi untuk ketersediaan tinggi) di firewall sumber Anda. Lihat Mengizinkan jaringan untuk IP publik.
- Pemberitahuan penurunan peringkat instance:
- Untuk migrasi PostgreSQL standar, Database Migration Service mendemosikan instance tujuan mandiri yang ada untuk mengonfigurasinya sebagai replika eksternal database sumber Anda. Anda harus mengonfirmasi penurunan ini saat membuat tugas migrasi di konsol Google Cloud dengan memasukkan ID instance tujuan.
- Mendemosikan instance tidak akan menempatkan database Cloud SQL untuk PostgreSQL ke mode hanya baca, tetapi Anda harus menghindari operasi tulis pada tabel atau database yang berpartisipasi dalam migrasi untuk mencegah konflik replikasi.
- Pencadangan otomatis, pemulihan point-in-time (PITR), dan pembuatan replika baca Cloud SQL ditangguhkan hingga Anda mempromosikan tugas migrasi. Untuk mengetahui informasi selengkapnya, lihat Batasan untuk migrasi ke instance tujuan yang ada.
- Jika Anda mengelola instance tujuan menggunakan infrastructure-as-code (seperti Terraform), Database Migration Service akan mengubah setelan pencadangan dan pemulihan selama migrasi. Untuk panduan tentang cara menangani penyimpangan konfigurasi Terraform, lihat Mendiagnosis masalah.
Membuat dan menjalankan tugas migrasi
Untuk mengonfigurasi dan menjalankan migrasi, lakukan langkah-langkah berikut:
- Opsional: Jika Anda ingin mengelola sertifikat atau kunci enkripsi Anda sendiri untuk tugas migrasi, siapkan kunci enkripsi yang diperlukan.
-
Membuat dan menjalankan tugas migrasi untuk instance tujuan yang ada.
Anda dapat memantau progres migrasi, serta kondisi instance tujuan dengan fitur kemampuan observasi Database Migration Service. Lihat Metrik tugas migrasi.
Menyelesaikan migrasi
Saat Anda memutuskan untuk mengalihkan aplikasi ke instance Cloud SQL untuk PostgreSQL yang baru, selesaikan migrasi dengan mengikuti langkah-langkah berikut:
- Opsional: Siapkan replika baca bertingkat. Jika ingin menggunakan replika baca bertingkat, Anda dapat mengonfigurasinya saat tugas migrasi memasuki fase CDC.
- Hentikan semua operasi tulis di database sumber Anda. Anda dapat mengalihkannya ke mode hanya baca untuk mempertahankan fungsi operasional.
- Mempromosikan tugas migrasi.
- Opsional: Verifikasi kelengkapan data migrasi.
- Jika Anda mengelola database tujuan menggunakan infrastructure-as-code (seperti Terraform), terapkan kembali konfigurasi Anda setelah promosi untuk merekonsiliasi setelan apa pun yang disesuaikan oleh Database Migration Service selama migrasi.
Langkah berikutnya
Pelajari lebih lanjut fitur Google Cloud untuk Cloud SQL untuk PostgreSQL. Lihat Fitur Cloud SQL untuk PostgreSQL.