Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi replikasi tertunda dengan RDS untuk PostgreSQL
Ikhtisar dan Manfaat
Fitur replikasi tertunda di RDS untuk PostgreSQL memungkinkan Anda untuk secara sengaja menunda replikasi perubahan data dari database utama Anda ke satu atau lebih server siaga (baca replika). Ini memberikan perlindungan yang berharga terhadap korupsi data, kehilangan data yang tidak disengaja, atau transaksi yang salah yang dapat segera disebarkan ke semua replika.
Replikasi tertunda didukung dalam RDS berikut untuk versi PostgreSQL:
-
14.19 dan versi 14 yang lebih tinggi
-
15.14 dan versi 15 yang lebih tinggi
-
16.10 dan versi 16 yang lebih tinggi
-
17.6 dan versi 17 yang lebih tinggi
Dengan memperkenalkan jeda waktu dalam proses replikasi, Anda mendapatkan kesempatan untuk mendeteksi dan menanggapi insiden terkait data sebelum mempengaruhi seluruh cluster DB Anda. Manfaat utama dari replikasi tertunda meliputi:
-
Memungkinkan Anda pulih dari penghapusan, pembaruan, atau kesalahan logis lainnya yang tidak disengaja.
-
Menyediakan buffer terhadap penyebaran data yang rusak di seluruh cluster DB Anda.
-
Menawarkan opsi titik pemulihan tambahan untuk melengkapi strategi pencadangan tradisional Anda.
-
Memungkinkan Anda mengonfigurasi periode penundaan berdasarkan kebutuhan spesifik organisasi Anda dan toleransi risiko.
Mengaktifkan dan Mengkonfigurasi Replikasi Tertunda
Untuk mengaktifkan replikasi tertunda pada replika baca RDS untuk PostgreSQL, ikuti langkah-langkah berikut:
catatan
Untuk replika baca bertingkat, gunakan recovery_min_apply_delay parameter dan langkah yang sama yang dijelaskan di bawah ini.
Untuk mengaktifkan replikasi tertunda
-
Buat grup parameter kustom baru atau modifikasi yang sudah ada. Untuk informasi selengkapnya, lihat Grup parameter DB untuk instans Amazon RDS Aurora DB.
-
Dalam grup parameter, konfigurasikan
recovery_min_apply_delayparameter:-
Atur nilai ke penundaan yang diinginkan dalam milidetik. Misalnya, 3600000 untuk penundaan 1 jam.
-
Rentang yang diizinkan: 0 hingga 86400000 ms (0 hingga 24 jam)
-
Default: 0
-
-
Terapkan grup parameter ke instance replika baca yang ingin Anda konfigurasikan untuk replikasi tertunda.
-
Reboot instance replika baca agar perubahan diterapkan.
catatan
Parameter
recovery_min_apply_delaybersifat dinamis. Jika Anda memodifikasi grup parameter yang sudah ada yang sudah dilampirkan ke instance, perubahan akan segera berlaku tanpa memerlukan reboot. Namun, saat menerapkan grup parameter baru ke instance, Anda harus reboot agar perubahan diterapkan.
Mengelola Pemulihan Replikasi Tertunda
Replikasi yang tertunda sangat berguna dalam skenario di mana metode point-in-time pemulihan tradisional mungkin tidak mencukupi atau terlalu memakan waktu.
Selama periode replikasi tertunda, Anda dapat menggunakan fungsi PostgreSQL berikut untuk mengelola proses pemulihan:
-
pg_wal_replay_pause(): Permintaan untuk menjeda proses pemulihan pada replika yang tertunda. -
pg_wal_replay_resume(): Mulai ulang proses pemulihan jika sebelumnya dijeda. -
pg_is_wal_replay_paused(): Periksa apakah proses pemulihan saat ini dijeda. -
pg_get_wal_replay_pause_state(): Dapatkan status proses pemulihan saat ini (tidak dijeda, jeda diminta, atau dijeda).
Pengguna dengan rds_superuser peran memiliki hak EXECUTE pada pg_wal_replay_pause() danpg_wal_replay_resume(). Jika pengguna database lain memerlukan akses ke fungsi-fungsi ini, Anda harus memberi mereka rds_superuser peran. Untuk informasi selengkapnya tentang peran rds_superuser ini, lihat Memahami peran rds_superuser.
Akses ke fungsi lain seperti pg_is_wal_replay_paused() dan pg_get_wal_replay_pause_state() tidak memerlukan rds_superuser peran.
Anda dapat menggunakan parameter target pemulihan berikut untuk secara tepat mengontrol titik waktu di mana replika yang tertunda dipulihkan. Parameter ini statis dan memerlukan reboot database untuk menerapkan perubahan:
-
recovery_target
-
recovery_target_lsn
-
recovery_target_name
-
recovery_target_time
-
recovery_target_xid
-
recovery_target_inclusive
penting
Anda hanya dapat menentukan satu parameter target pemulihan pada satu waktu. Mengkonfigurasi beberapa parameter target pemulihan dalam file konfigurasi menghasilkan kesalahan.
Pertimbangan perencanaan
Pertimbangkan hal berikut saat merencanakan replikasi tertunda dengan RDS untuk PostgreSQL:
-
Selama rotasi
rdsrepladminkredensil otomatis (yang terjadi setiap 90 hari), replika baca yang tertunda dapat memasuki status sementara.REPLICATION_ERRORJika replika yang tertunda memiliki log WAL yang cukup untuk mempertahankan penundaan yang dikonfigurasi, itu dapat menjeda proses penerima WAL, menyebabkan akumulasi WAL pada sumber. Anda harus memantau status replikasi pada replika dan konsumsi penyimpanan pada sumber untuk menghindari penyimpanan penuh. -
Ketika replika baca yang tertunda menghadapi peristiwa sistem (seperti reboot atau restart), replika tersebut memasuki
REPLICATION_ERRORkeadaan di mana proses penerima WAL tetap tidak aktif hingga periode penundaan yang dikonfigurasi berakhir. Perilaku ini dapat menyebabkan akumulasi WAL pada instance sumber, yang berpotensi menyebabkan kelelahan penyimpanan. Pertimbangkan langkah-langkah pencegahan berikut:-
Konfigurasikan CloudWatch alarm untuk memantau pemanfaatan penyimpanan pada instance sumber.
-
Aktifkan auto-scaling penyimpanan untuk menangani pertumbuhan WAL yang tidak terduga.
-
Atur
max_slot_wal_keep_sizeparameter pada instance sumber untuk membatasi retensi WAL per slot replikasi. -
Pantau kelambatan replikasi dan status slot secara teratur.
-
-
Penundaan yang lebih lama meningkatkan log WAL pada replika, menghabiskan lebih banyak penyimpanan. Pantau ruang penyimpanan menggunakan CloudWatch alarm, aktifkan auto-scaling, atau catch up replika bila diperlukan.
-
Saat mempromosikan replika baca yang tertunda,
recovery_min_apply_delayparameter tidak dihormati, dan semua catatan WAL yang tertunda segera diterapkan. -
recovery_min_apply_delayParameter independen pada setiap tingkat pengaturan replikasi berjenjang. Menyetel penundaan pada replika tidak menambah penundaan replika bertingkat.
Untuk informasi selengkapnya, lihat dokumentasi RDS untuk PostgreSQL Read Replicas dan dokumentasi RDS untuk PostgreSQL Disaster Recovery.
Memahami keterbatasan
Fitur replikasi tertunda untuk Amazon RDS for PostgreSQL memiliki batasan berikut:
-
Penerapan Biru/Hijau memiliki batasan berikut saat mengonfigurasi replikasi yang tertunda:
-
Instance sumber hijau -
recovery_min_apply_delay parameterIni diabaikan, bahkan jika dikonfigurasi dalam grup parameter. Pengaturan penundaan apa pun pada instance sumber hijau tidak berlaku. -
Instance replika hijau -
recovery_min_apply_delay parameterIni sepenuhnya didukung dan diterapkan ke file konfigurasi PostgreSQL. Pengaturan tunda berfungsi seperti yang diharapkan selama alur kerja switchover. -
Blue/Green Penerapan RDS untuk peningkatan versi utama
-
-
Selama upgrade versi utama, setiap replika baca yang tertunda akan secara otomatis dihentikan untuk memungkinkan instance sumber untuk melanjutkan proses upgrade untuk memastikan downtime minimal. Setelah instance sumber menyelesaikan pemutakhiran, Anda harus membuat ulang replika yang tertunda secara manual.
-
Replikasi tertunda tidak kompatibel dengan fitur berikut.
-
RDS untuk Replikasi Logis PostgreSQL
-
RDS untuk PostgreSQL Multi-AZ Clusters (termasuk replikasi inbound dan outbound)
-
Aurora PostgreSQL
-