Halaman ini menjelaskan cara mengonfigurasi instance database sumber
untuk migrasi PostgreSQL homogen berkelanjutan ke cluster AlloyDB untuk PostgreSQL.
Untuk mengetahui detail tentang versi sumber yang didukung, lihat
Database sumber dan tujuan yang didukung.
Jika Anda ingin menggunakan migrasi mulai cepat, ikuti panduan
Menggunakan migrasi mulai cepat.
Migrasi mulai cepat menyediakan alur migrasi yang disederhanakan yang menggunakan replikasi pgnative dan konektivitas khusus berdasarkan antarmuka Private Service Connect. Untuk mengetahui informasi selengkapnya, lihat
Tentang migrasi mulai cepat dalam dokumentasi utama Database Migration Service.
Halaman ini mencakup prosedur mandiri untuk setiap sumber yang didukung:
- PostgreSQL yang dikelola sendiri (lokal atau di VM Compute Engine)
- Amazon RDS for PostgreSQL
- Amazon Aurora untuk PostgreSQL
- Cloud SQL untuk PostgreSQL
Mengonfigurasi sumber PostgreSQL yang dihosting sendiri
Untuk mengonfigurasi instance sumber PostgreSQL yang dihosting sendiri (lokal atau dihosting di VM Compute Engine) untuk migrasi berkelanjutan, selesaikan langkah-langkah berikut:
- Untuk sumber PostgreSQL yang dihosting sendiri, Database Migration Service memigrasikan semua database pada instance sumber Anda, kecuali database template
template0dantemplate1. - Pastikan instance sumber Anda menyertakan database
postgresdefault. Jika database ini tidak ada, buat database sebelum mengonfigurasi migrasi Anda. - Konfigurasikan autentikasi klien jaringan di file
pg_hba.confAnda. Tambahkan entri yang mengizinkan koneksi replikasi dan akses database dari rentang alamat IP cluster AlloyDB untuk PostgreSQL tujuan, rentang CIDR VPC, atau bastion host SSH terbalik:# Allow replication connections host replication MIGRATION_USER_ACCOUNT_NAME DESTINATION_IP_OR_CIDR md5 # Allow database access host all MIGRATION_USER_ACCOUNT_NAME DESTINATION_IP_OR_CIDR md5
Muat ulang konfigurasi PostgreSQL untuk menerapkan aturan
pg_hba.conf:SELECT pg_reload_conf();
- Verifikasi ekstensi PostgreSQL yang diinstal di database sumber Anda.
Database Migration Service tidak memigrasikan
ekstensi yang tidak didukung oleh AlloyDB untuk PostgreSQL.
Pastikan objek database sumber dan kueri aplikasi Anda tidak mereferensikan ekstensi yang tidak didukung.
Hapus ekstensi dan referensi yang tidak didukung dari database sumber Anda sebelum melanjutkan.
Ekstensi
pg_crontidak dimigrasikan secara otomatis oleh Database Migration Service, tetapi didukung di tujuan AlloyDB untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di cluster AlloyDB untuk PostgreSQL tujuan setelah Anda mempromosikan migrasi. - Buat akun pengguna migrasi khusus di instance sumber Anda
dan berikan hak istimewa yang diperlukan:
- Hubungkan ke instance sumber menggunakan akun administratif, buat pengguna, dan tetapkan peran replikasi:
CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH REPLICATION;
- Berikan izin yang diperlukan kepada akun pengguna migrasi untuk database
postgresdefault serta setiap database yang ingin Anda migrasikan. Jalankan perintah berikut di setiap database untuk setiap skema, kecuali untuk skema informasi dan skema yang dimulai denganpg_:GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- Hubungkan ke instance sumber menggunakan akun administratif, buat pengguna, dan tetapkan peran replikasi:
- Instal ekstensi
pglogicaldi setiap database yang ingin Anda migrasikan, kecualitemplate0dantemplate1:- Untuk PostgreSQL versi 9.4: Jalankan perintah berikut:
CREATE EXTENSION IF NOT EXISTS pglogical; CREATE EXTENSION IF NOT EXISTS pglogical_origin;
- Untuk PostgreSQL versi 9.5 dan yang lebih baru: Jalankan perintah berikut:
CREATE EXTENSION IF NOT EXISTS pglogical;
- Untuk PostgreSQL versi 9.4: Jalankan perintah berikut:
- Pastikan tabel Anda memiliki kunci utama. Untuk migrasi berkelanjutan,
replikasi logis PostgreSQL memerlukan tabel yang memiliki kunci utama untuk
mereplikasi operasi
UPDATEdanDELETEselama fase Change Data Capture (CDC):- Tabel dengan kunci utama mereplikasi semua operasi
INSERT,UPDATE, danDELETEsecara otomatis. - Untuk tabel yang tidak memiliki kunci utama, Database Migration Service hanya mendukung migrasi snapshot awal dan pernyataan
INSERTberikutnya selama fase CDC. Anda harus memigrasikan pernyataanUPDATEdanDELETEsecara manual.Sebaiknya tambahkan kunci utama ke tabel yang belum memilikinya sebelum memulai migrasi. Untuk mempelajari cara membuat kueri guna mencantumkan tabel dalam database PostgreSQL tanpa kunci utama, atau cara memigrasikan operasi
UPDATEdanDELETEsecara manual, lihat Proses debug dan alat lainnya.Atau, Anda dapat mencoba menggunakan alur migrasi mulai cepat: skenario migrasi yang disederhanakan, yang memungkinkan Anda menggunakan
REPLICA IDENTITYuntuk memigrasikan tabel tanpa kunci utama. Untuk mengetahui informasi selengkapnya, lihat panduan Menggunakan migrasi mulai cepat.
- Tabel dengan kunci utama mereplikasi semua operasi
- Sumber yang menjalankan PostgreSQL versi 9.5 dan yang lebih lama: Metrik penundaan replikasi tidak tersedia untuk instance sumber yang menjalankan PostgreSQL versi sebelum 9.6. Jika Anda ingin menggunakan metrik ini untuk melacak progres migrasi, lihat Mengaktifkan penundaan replikasi.
- Instal paket
pglogicaldan konfigurasikan parameter WAL dan replikasi di server PostgreSQL Anda:- Instal paket
pglogicaldi sistem operasi host server database Anda. Untuk paket dan petunjuk penginstalan distribusi Anda, lihat repositori GitHub pglogical. - Hubungkan ke instance PostgreSQL Anda menggunakan akun administratif dan tetapkan parameter berikut:
- Tetapkan
shared_preload_librariesuntuk menyertakan'pglogical':ALTER SYSTEM SET shared_preload_libraries = 'pglogical';
- Tetapkan
wal_levelke'logical':ALTER SYSTEM SET wal_level = 'logical';
Lihat
wal_leveldalam dokumentasi PostgreSQL. - Tetapkan
wal_sender_timeoutke0:ALTER SYSTEM SET wal_sender_timeout = 0;
Nilai
0menonaktifkan mekanisme waktu tunggu yang menghentikan koneksi replikasi tidak aktif. Lihatwal_sender_timeout. - Tetapkan
max_replication_slotssetidaknya ke jumlah database yang akan dimigrasikan dikalikan dengan jumlah tugas migrasi, ditambah cadangan untuk sinkronisasi tabel:Misalnya, jika ada 5 database di instance sumber dan Anda membuat 2 tugas migrasi untuk sumber tersebut, jumlah slot replikasi harus minimal 5 * 2 = 10, ditambah jumlah slot replikasi yang sudah digunakan di sumber oleh tugas lain. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan jumlah slot replikasi dan memverifikasi konfigurasi saat membuat tugas migrasi.
ALTER SYSTEM SET max_replication_slots = MAX_REPLICATION_SLOTS;
Nilai default untuk parameter ini adalah 10. Lihat
max_replication_slots. - Tetapkan
max_wal_senderssetidaknya ke nilaimax_replication_slotsditambah jumlah pengirim yang sudah digunakan di instance Anda:Misalnya, jika parameter
max_replication_slotsditetapkan ke10, dan Anda sudah menggunakan 2 pengirim, jumlah proses pengirim WAL yang berjalan pada saat yang sama adalah 10 + 2 = 12. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan jumlah pengirim dan memverifikasi konfigurasi saat membuat tugas migrasi.ALTER SYSTEM SET max_wal_senders = MAX_WAL_SENDERS;
Nilai default untuk parameter ini adalah 10. Lihat
max_wal_senders. - Tetapkan
max_worker_processeske setidaknya jumlah database yang akan dimigrasikan ditambah proses worker yang ada di instance Anda. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, perhitungkan dua proses worker tambahan per koneksi (hingga maksimum 20 worker):ALTER SYSTEM SET max_worker_processes = MAX_WORKER_PROCESSES;
Nilai default untuk parameter ini adalah 8. Lihat
max_worker_processes.
- Tetapkan
- Instal paket
- Mulai ulang server PostgreSQL Anda agar perubahan konfigurasi dapat diterapkan.
Mengonfigurasi sumber Amazon RDS for PostgreSQL
Untuk mengonfigurasi instance sumber Amazon RDS for PostgreSQL untuk migrasi berkelanjutan, selesaikan langkah-langkah berikut:
- Untuk sumber Amazon RDS for PostgreSQL, Database Migration Service memigrasikan semua database di instance sumber Anda,
kecuali database template
template0,template1, dan database internal AWSrdsadmin. - Pastikan instance sumber Anda menyertakan database
postgresdefault. Jika database ini tidak ada, buat database sebelum mengonfigurasi migrasi Anda. - Konfigurasikan aturan masuk grup keamanan VPC Amazon RDS Anda.
Izinkan koneksi TCP masuk di port
5432dari rentang alamat IP cluster AlloyDB untuk PostgreSQL tujuan, rentang CIDR VPC, atau VM bastion host SSH terbalik. - Verifikasi ekstensi PostgreSQL yang diinstal di database sumber Anda.
Database Migration Service tidak memigrasikan
ekstensi yang tidak didukung oleh AlloyDB untuk PostgreSQL.
Pastikan objek database sumber dan kueri aplikasi Anda tidak mereferensikan ekstensi yang tidak didukung.
Hapus ekstensi dan referensi yang tidak didukung dari database sumber Anda sebelum melanjutkan.
Ekstensi
pg_crontidak dimigrasikan secara otomatis oleh Database Migration Service, tetapi didukung di tujuan AlloyDB untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di cluster AlloyDB untuk PostgreSQL tujuan setelah Anda mempromosikan migrasi. - Buat akun pengguna migrasi khusus di instance sumber Anda
dan berikan hak istimewa yang diperlukan:
- Hubungkan ke instance sumber menggunakan akun administratif, buat pengguna, dan berikan peran
rds_replicationyang dikelola AWS:CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; GRANT rds_replication TO "MIGRATION_USER_ACCOUNT_NAME";
- Berikan izin yang diperlukan kepada akun pengguna migrasi untuk database
postgresdefault serta setiap database yang ingin Anda migrasikan. Jalankan perintah berikut di setiap database untuk setiap skema, kecuali untuk skema informasi dan skema yang dimulai denganpg_:GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- Hubungkan ke instance sumber menggunakan akun administratif, buat pengguna, dan berikan peran
- Instal ekstensi
pglogicaldi setiap database yang ingin Anda migrasikan, kecualitemplate0,template1, danrdsadmin. Jalankan perintah berikut:CREATE EXTENSION IF NOT EXISTS pglogical;
Untuk mengetahui detail selengkapnya tentang persyaratan, lihat Menggunakan ekstensi PostgreSQL dengan Amazon RDS untuk PostgreSQL dalam dokumentasi AWS.
- Pastikan tabel Anda memiliki kunci utama. Untuk migrasi berkelanjutan,
replikasi logis PostgreSQL memerlukan tabel yang memiliki kunci utama untuk
mereplikasi operasi
UPDATEdanDELETEselama fase Change Data Capture (CDC):- Tabel dengan kunci utama mereplikasi semua operasi
INSERT,UPDATE, danDELETEsecara otomatis. - Untuk tabel yang tidak memiliki kunci utama, Database Migration Service hanya mendukung migrasi snapshot awal dan pernyataan
INSERTberikutnya selama fase CDC. Anda harus memigrasikan pernyataanUPDATEdanDELETEsecara manual.Sebaiknya tambahkan kunci utama ke tabel yang belum memilikinya sebelum memulai migrasi. Untuk mempelajari cara membuat kueri guna mencantumkan tabel dalam database PostgreSQL tanpa kunci utama, atau cara memigrasikan operasi
UPDATEdanDELETEsecara manual, lihat Proses debug dan alat lainnya.Atau, Anda dapat mencoba menggunakan alur migrasi mulai cepat: skenario migrasi yang disederhanakan, yang memungkinkan Anda menggunakan
REPLICA IDENTITYuntuk memigrasikan tabel tanpa kunci utama. Untuk mengetahui informasi selengkapnya, lihat panduan Menggunakan migrasi mulai cepat.
- Tabel dengan kunci utama mereplikasi semua operasi
- Konfigurasikan grup parameter DB kustom dan lampirkan ke instance Anda:
- Buat grup parameter kustom (lihat
Bekerja dengan grup parameter DB dalam dokumentasi AWS) dan konfigurasikan parameter berikut:
- Tetapkan
shared_preload_librariesuntuk menyertakanpglogical. - Tetapkan
rds.logical_replicationke1. Parameter ini mengaktifkan logging WAL logis di Amazon RDS. Lihat Replikasi logis untuk Amazon RDS for PostgreSQL. - Tetapkan
wal_sender_timeoutke0. Nilai0menonaktifkan mekanisme waktu tunggu yang menghentikan koneksi replikasi tidak aktif. - Tetapkan
max_replication_slotssetidaknya ke jumlah database yang akan dimigrasikan dikalikan dengan jumlah tugas migrasi, ditambah cadangan untuk sinkronisasi tabel:Misalnya, jika ada 5 database di instance sumber dan Anda membuat 2 tugas migrasi untuk sumber tersebut, jumlah slot replikasi harus minimal 5 * 2 = 10, ditambah jumlah slot replikasi yang sudah digunakan di sumber oleh tugas lain. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan jumlah slot replikasi dan memverifikasi konfigurasi saat membuat tugas migrasi.
Nilai default untuk parameter ini adalah 10.
- Tetapkan
max_wal_senderssetidaknya ke nilaimax_replication_slotsditambah jumlah pengirim yang sudah digunakan di instance Anda:Misalnya, jika parameter
max_replication_slotsditetapkan ke10, dan Anda sudah menggunakan 2 pengirim, jumlah proses pengirim WAL yang berjalan pada saat yang sama adalah 10 + 2 = 12. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan jumlah pengirim dan memverifikasi konfigurasi saat membuat tugas migrasi.Nilai default untuk parameter ini adalah 10.
- Tetapkan
max_worker_processeske setidaknya jumlah database yang akan dimigrasikan ditambah proses worker yang ada di instance Anda. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, perhitungkan dua proses worker tambahan per koneksi (hingga maksimum 20 worker):Nilai default untuk parameter ini adalah 8.
- Tetapkan
- Lampirkan grup parameter ke instance DB RDS Anda. Jika Anda membuat instance baru, Anda dapat menemukan opsi ini di bagian Additional Configuration. Jika tidak, ubah instance untuk melampirkan grup parameter.
- Buat grup parameter kustom (lihat
Bekerja dengan grup parameter DB dalam dokumentasi AWS) dan konfigurasikan parameter berikut:
- Mulai ulang instance Amazon RDS Anda agar perubahan grup parameter dapat diterapkan.
Mengonfigurasi sumber Amazon Aurora PostgreSQL
Untuk mengonfigurasi cluster sumber Amazon Aurora PostgreSQL untuk migrasi berkelanjutan, selesaikan langkah-langkah berikut:
- Untuk sumber Amazon Aurora for PostgreSQL, Database Migration Service memigrasikan semua database di cluster sumber Anda,
kecuali database template
template0,template1, dan database internal AWSrdsadmin. - Pastikan cluster sumber Anda menyertakan database
postgresdefault. Jika database ini tidak ada, buat database sebelum mengonfigurasi migrasi Anda. - Konfigurasikan aturan masuk grup keamanan VPC cluster Amazon Aurora Anda.
Izinkan koneksi TCP masuk di port
5432dari rentang alamat IP cluster AlloyDB untuk PostgreSQL tujuan, rentang CIDR VPC, atau VM bastion host SSH terbalik. - Verifikasi ekstensi PostgreSQL yang diinstal di database sumber Anda.
Database Migration Service tidak memigrasikan
ekstensi yang tidak didukung oleh AlloyDB untuk PostgreSQL.
Pastikan objek database sumber dan kueri aplikasi Anda tidak mereferensikan ekstensi yang tidak didukung.
Hapus ekstensi dan referensi yang tidak didukung dari database sumber Anda sebelum melanjutkan.
Ekstensi
pg_crontidak dimigrasikan secara otomatis oleh Database Migration Service, tetapi didukung di tujuan AlloyDB untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di cluster AlloyDB untuk PostgreSQL tujuan setelah Anda mempromosikan migrasi. - Buat akun pengguna migrasi khusus di cluster sumber Anda
dan berikan hak istimewa yang diperlukan:
- Hubungkan ke cluster sumber menggunakan akun administratif, buat pengguna, dan berikan peran
rds_replicationyang dikelola AWS:CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; GRANT rds_replication TO "MIGRATION_USER_ACCOUNT_NAME";
- Berikan izin yang diperlukan kepada akun pengguna migrasi untuk database
postgresdefault serta setiap database yang ingin Anda migrasikan. Jalankan perintah berikut di setiap database untuk setiap skema, kecuali untuk skema informasi dan skema yang dimulai denganpg_:GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- Hubungkan ke cluster sumber menggunakan akun administratif, buat pengguna, dan berikan peran
- Instal ekstensi
pglogicaldi setiap database yang ingin Anda migrasikan, kecualitemplate0,template1, danrdsadmin:CREATE EXTENSION IF NOT EXISTS pglogical;
- Pastikan tabel Anda memiliki kunci utama. Untuk migrasi berkelanjutan,
replikasi logis PostgreSQL memerlukan tabel yang memiliki kunci utama untuk
mereplikasi operasi
UPDATEdanDELETEselama fase Change Data Capture (CDC):- Tabel dengan kunci utama mereplikasi semua operasi
INSERT,UPDATE, danDELETEsecara otomatis. - Untuk tabel yang tidak memiliki kunci utama, Database Migration Service hanya mendukung migrasi snapshot awal dan pernyataan
INSERTberikutnya selama fase CDC. Anda harus memigrasikan pernyataanUPDATEdanDELETEsecara manual.Sebaiknya tambahkan kunci utama ke tabel yang belum memilikinya sebelum memulai migrasi. Untuk mempelajari cara membuat kueri guna mencantumkan tabel dalam database PostgreSQL tanpa kunci utama, atau cara memigrasikan operasi
UPDATEdanDELETEsecara manual, lihat Proses debug dan alat lainnya.Atau, Anda dapat mencoba menggunakan alur migrasi mulai cepat: skenario migrasi yang disederhanakan, yang memungkinkan Anda menggunakan
REPLICA IDENTITYuntuk memigrasikan tabel tanpa kunci utama. Untuk mengetahui informasi selengkapnya, lihat panduan Menggunakan migrasi mulai cepat.
- Tabel dengan kunci utama mereplikasi semua operasi
- Konfigurasikan grup parameter cluster DB kustom dan lampirkan ke cluster Anda:
- Buat grup parameter cluster DB kustom dan konfigurasikan parameter berikut:
- Tetapkan
shared_preload_librariesuntuk menyertakanpglogical. - Tetapkan
rds.logical_replicationke1. Parameter ini mengaktifkan logging WAL logis. - Tetapkan
wal_sender_timeoutke0. Nilai0menonaktifkan mekanisme waktu tunggu yang menghentikan koneksi replikasi tidak aktif. - Tetapkan
max_replication_slotssetidaknya ke jumlah database yang akan dimigrasikan dikalikan dengan jumlah tugas migrasi, ditambah cadangan untuk sinkronisasi tabel:Misalnya, jika ada 5 database di instance sumber dan Anda membuat 2 tugas migrasi untuk sumber tersebut, jumlah slot replikasi harus minimal 5 * 2 = 10, ditambah jumlah slot replikasi yang sudah digunakan di sumber oleh tugas lain. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan jumlah slot replikasi dan memverifikasi konfigurasi saat membuat tugas migrasi.
Nilai default untuk parameter ini adalah 10.
- Tetapkan
max_wal_senderssetidaknya ke nilaimax_replication_slotsditambah jumlah pengirim yang sudah digunakan di instance Anda:Misalnya, jika parameter
max_replication_slotsditetapkan ke10, dan Anda sudah menggunakan 2 pengirim, jumlah proses pengirim WAL yang berjalan pada saat yang sama adalah 10 + 2 = 12. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan jumlah pengirim dan memverifikasi konfigurasi saat membuat tugas migrasi.Nilai default untuk parameter ini adalah 10.
- Tetapkan
max_worker_processeske setidaknya jumlah database yang akan dimigrasikan ditambah proses worker yang ada di instance Anda. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, perhitungkan dua proses worker tambahan per koneksi (hingga maksimum 20 worker):Nilai default untuk parameter ini adalah 8.
- Tetapkan
- Lampirkan grup parameter cluster DB ke cluster DB Aurora.
- Buat grup parameter cluster DB kustom dan konfigurasikan parameter berikut:
- Mulai ulang cluster DB Amazon Aurora Anda agar perubahan grup parameter dapat diterapkan.
Mengonfigurasi sumber Cloud SQL untuk PostgreSQL
Untuk mengonfigurasi instance sumber Cloud SQL untuk PostgreSQL untuk migrasi berkelanjutan, selesaikan langkah-langkah berikut:
- Untuk sumber Cloud SQL untuk PostgreSQL, Database Migration Service akan memigrasikan semua database pada instance sumber Anda, kecuali database template
template0dantemplate1. - Pastikan instance sumber Anda menyertakan database
postgresdefault. Jika database ini tidak ada, buat database sebelum mengonfigurasi migrasi Anda. - Jika Anda bermigrasi dari instance sumber Cloud SQL yang dikonfigurasi dengan alamat IP pribadi ke cluster AlloyDB untuk PostgreSQL tujuan yang menggunakan rentang IP alamat non-RFC 1918, tambahkan rentang non-RFC 1918 ke jaringan yang diizinkan dari instance sumber Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi jaringan yang diizinkan.
- Verifikasi ekstensi PostgreSQL yang diinstal di database sumber Anda.
Database Migration Service tidak memigrasikan
ekstensi yang tidak didukung oleh AlloyDB untuk PostgreSQL.
Pastikan objek database sumber dan kueri aplikasi Anda tidak merujuk ke ekstensi yang tidak didukung. Hapus ekstensi dan referensi yang tidak didukung
dari database sumber Anda sebelum melanjutkan.
Ekstensi
pg_crontidak dimigrasikan secara otomatis oleh Database Migration Service, tetapi didukung di tujuan AlloyDB untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di cluster AlloyDB untuk PostgreSQL tujuan setelah Anda mempromosikan migrasi. - Buat akun pengguna migrasi khusus di instance sumber Anda
dan berikan hak istimewa yang diperlukan:
- Ikuti langkah-langkah di halaman Membuat pengguna dalam dokumentasi Cloud SQL untuk membuat akun pengguna.
- Berikan peran
cloudsqlsuperuserke akun pengguna migrasi:GRANT cloudsqlsuperuser TO "MIGRATION_USER_ACCOUNT_NAME";
- Berikan izin yang diperlukan kepada akun pengguna migrasi untuk database
postgresdefault serta setiap database yang ingin Anda migrasikan. Jalankan perintah berikut di setiap database untuk setiap skema, kecuali untuk skema informasi dan skema yang dimulai denganpg_:GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- Instal ekstensi
pglogicaldi setiap database yang ingin Anda migrasikan, kecualitemplate0dantemplate1. Jalankan perintah berikut:CREATE EXTENSION IF NOT EXISTS pglogical;
- Pastikan tabel Anda memiliki kunci utama. Untuk migrasi berkelanjutan,
replikasi logis PostgreSQL memerlukan tabel yang memiliki kunci utama untuk
mereplikasi operasi
UPDATEdanDELETEselama fase Change Data Capture (CDC):- Tabel dengan kunci utama mereplikasi semua operasi
INSERT,UPDATE, danDELETEsecara otomatis. - Untuk tabel yang tidak memiliki kunci utama, Database Migration Service memigrasikan snapshot awal dan pernyataan
INSERTberikutnya selama fase CDC. Anda harus memigrasikan pernyataanUPDATEdanDELETEsecara manual.Sebaiknya tambahkan kunci utama ke tabel yang belum memilikinya sebelum memulai migrasi. Untuk mempelajari cara membuat kueri guna mencantumkan tabel dalam database PostgreSQL tanpa kunci utama, atau cara memigrasikan operasi
UPDATEdanDELETEsecara manual, lihat Proses debug dan alat lainnya.Atau, Anda dapat mencoba menggunakan alur migrasi mulai cepat: skenario migrasi yang disederhanakan, yang memungkinkan Anda menggunakan
REPLICA IDENTITYuntuk memigrasikan tabel tanpa kunci utama. Untuk mengetahui informasi selengkapnya, lihat panduan Menggunakan migrasi mulai cepat.
- Tabel dengan kunci utama mereplikasi semua operasi
- Konfigurasikan flag database berikut pada instance sumber Cloud SQL Anda:
- Tetapkan
cloudsql.logical_decodingkeon. - Tetapkan
cloudsql.enable_pglogicalkeon. - Tetapkan
wal_sender_timeoutke0. Nilai0menonaktifkan mekanisme waktu tunggu yang menghentikan koneksi replikasi tidak aktif. - Tetapkan
max_replication_slotssetidaknya ke jumlah database yang akan dimigrasikan dikalikan dengan jumlah tugas migrasi, ditambah cadangan untuk sinkronisasi tabel.Misalnya, jika ada 5 database di instance sumber dan Anda membuat 2 tugas migrasi untuk sumber tersebut, jumlah slot replikasi harus minimal 5 * 2 = 10, ditambah jumlah slot replikasi yang sudah digunakan di sumber oleh tugas lain. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan jumlah slot replikasi dan memverifikasi konfigurasi saat membuat tugas migrasi.
Nilai default untuk flag ini adalah 10.
- Tetapkan
max_wal_senderssetidaknya ke nilaimax_replication_slotsditambah jumlah pengirim yang sudah digunakan di instance Anda.Misalnya, jika flag
max_replication_slotsditetapkan ke10, dan Anda sudah menggunakan 2 pengirim, jumlah proses pengirim WAL yang berjalan pada saat yang sama adalah 10 + 2 = 12. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, pastikan untuk meningkatkan jumlah pengirim dan memverifikasi konfigurasi saat membuat tugas migrasi.Nilai default untuk flag ini adalah 10.
- Tetapkan
max_worker_processeske setidaknya jumlah database yang akan dimigrasikan ditambah proses worker yang ada di instance Anda. Jika Anda berencana menggunakan setelan paralelisme dump data yang disesuaikan, perhitungkan dua proses worker tambahan per koneksi (hingga maksimum 20 worker).Nilai default untuk flag ini adalah 8.
Untuk mengetahui informasi selengkapnya tentang cara mengubah flag, lihat Mengonfigurasi flag database dalam dokumentasi Cloud SQL.
- Tetapkan
- Mulai ulang instance Cloud SQL sumber Anda agar perubahan flag database dapat diterapkan.
Langkah berikutnya
Untuk panduan migrasi langkah demi langkah yang lengkap, lihat Memulai migrasi AlloyDB untuk PostgreSQL.
Untuk merencanakan konektivitas jaringan antara instance sumber dan tujuan, lihat Pertimbangan jaringan.