Halaman ini menjelaskan cara mengonfigurasi instance database sumber
untuk migrasi PostgreSQL homogen standar. 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 bagian untuk setiap sumber yang didukung:
- PostgreSQL yang dikelola sendiri (lokal atau di VM Compute Engine)
- Amazon RDS for PostgreSQL
- Amazon Aurora untuk PostgreSQL
- Microsoft Azure Database for PostgreSQL Flexible Server
- Cloud SQL untuk PostgreSQL
Mengonfigurasi sumber PostgreSQL yang dikelola sendiri
Untuk mengonfigurasi instance sumber PostgreSQL yang dikelola sendiri (lokal atau dihosting di VM Compute Engine) untuk proses migrasi Anda, lakukan hal berikut:
- Untuk sumber PostgreSQL yang dikelola 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 alamat IP keluar Cloud SQL 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 Cloud SQL.
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 Cloud SQL untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di instance 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 proses migrasi Anda, lakukan hal 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 alamat IP keluar Cloud SQL 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 Cloud SQL.
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 Cloud SQL untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di instance 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:- 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 mengetahui detail selengkapnya tentang persyaratan, lihat Using PostgreSQL extensions with Amazon RDS for PostgreSQL dalam dokumentasi AWS.
- 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.
- 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 untuk PostgreSQL
Untuk mengonfigurasi cluster sumber Amazon Aurora PostgreSQL untuk proses migrasi Anda, lakukan hal 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 alamat IP keluar Cloud SQL 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 Cloud SQL.
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 Cloud SQL untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di instance 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 Microsoft Azure Database for PostgreSQL Flexible Server
Untuk mengonfigurasi instance sumber Microsoft Azure Database for PostgreSQL Flexible Server untuk proses migrasi Anda, lakukan hal berikut:
- Untuk sumber Microsoft Azure Database for PostgreSQL Flexible Server, Database Migration Service memigrasikan semua database di instance sumber Anda,
kecuali database sistem dan template Azure:
azure_maintenance,azure_sys,template0, dantemplate1. - Pastikan instance sumber Anda menyertakan database
postgresdefault. Jika database ini tidak ada, buat database sebelum mengonfigurasi migrasi Anda. - Konfigurasikan setelan firewall dan SSL/TLS Azure:
- Di setelan jaringan Azure, tambahkan aturan firewall yang mengizinkan koneksi TCP masuk di port
5432dari alamat IP keluar Cloud SQL tujuan, rentang CIDR VPC, atau VM bastion host SSH terbalik. - Periksa nilai parameter server
require_secure_transport. Secara default, database Azure memerlukan enkripsi SSL/TLS untuk koneksi masuk. Bergantung pada setelanrequire_secure_transport, pilih salah satu setelan enkripsi berikut saat Anda membuat profil koneksi sumber:- Jika
require_secure_transportditetapkan keon, pilih Basic, TLS, atau mTLS. - Jika
require_secure_transportditetapkan keoff, pilih None.
- Jika
- Di setelan jaringan Azure, tambahkan aturan firewall yang mengizinkan koneksi TCP masuk di port
- Verifikasi ekstensi PostgreSQL yang diinstal di database sumber Anda.
Database Migration Service tidak memigrasikan
ekstensi yang tidak didukung oleh Cloud SQL.
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 Cloud SQL untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di instance 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, kecualiazure_maintenance,azure_sys,template0, dantemplate1:- 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.
- Konfigurasikan parameter server berikut di Azure. Untuk mengetahui informasi selengkapnya,
lihat
Mengonfigurasi parameter server di Azure Database for PostgreSQL.
- Tetapkan
shared_preload_librariesuntuk menyertakanpglogical. - Tetapkan
azure.extensionsuntuk menyertakanpglogical. - Tetapkan
wal_levelkelogical. - 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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.
Untuk mengetahui detail parameter selengkapnya, lihat daftar semua Parameter server di Azure Database for PostgreSQL dalam dokumentasi Microsoft.
- Tetapkan
- Mulai ulang instance Microsoft Azure Database for PostgreSQL Flexible Server agar perubahan parameter server dapat diterapkan.
Mengonfigurasi sumber Cloud SQL untuk PostgreSQL
Untuk mengonfigurasi instance sumber Cloud SQL untuk PostgreSQL untuk proses migrasi Anda, lakukan hal 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 instance tujuan Cloud SQL yang menggunakan rentang alamat IP 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 Cloud SQL.
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 Cloud SQL untuk PostgreSQL. Jika Anda menggunakanpg_crondi database sumber, instal ulang dan konfigurasikan di instance 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.
- 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:- 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 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
- 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.
- 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 tabelMisalnya, 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 Anda dengan menjalankan pengujian tugas migrasi saat Anda 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 Cloud SQL untuk PostgreSQL.
Untuk merencanakan konektivitas jaringan antara instance sumber dan tujuan, lihat Ringkasan jaringan.