Checksum data adalah fitur baru yang diperkenalkan di 9.3, dan:
ada parameter GUC baru "ign_checksum_failure" yang akan memaksa PostgreSQL untuk melanjutkan memproses transaksi bahkan jika korupsi terdeteksi
Jika terjadi kegagalan checksum pada master replikasi, apakah data yang korup akan mereplikasi menjadi budak atau replikasi akan berhenti. Apakah itu tergantung pada pengaturan ignore_checksum_failure
?
README ini memiliki beberapa informasi terkait yang bermanfaat tetapi tidak secara langsung menjawab pertanyaan.
postgresql
replication
postgresql-9.3
checksum
Jack mengatakan coba topanswers.xyz
sumber
sumber
Jawaban:
Jika data rusak saat di disk, korupsi tidak boleh direplikasi kecuali jika sudah ada di cadangan dari mana replika dibuat.
Tentu saja jika Anda mengabaikan kegagalan checksum maka master dapat mulai melakukan hal-hal yang salah, dan kesalahan itu akan ditiru.
Jika korupsi terjadi dalam memori maka semua taruhan dimatikan.
sumber
ignore_checksum_failure
parameter termasuk peringatan bahwa "perilaku ini dapat ... menyebarkan ... korupsi". Tanpa menyebutkan replikasi (streaming) secara eksplisit, tampaknya hal ini tersirat di sini. Biasanya kesalahan checksum akan menyebabkan transaksi dibatalkan, jadi tidak ada data yang akan direplikasi. Mengabaikan kesalahan ini akan memungkinkan Anda untuk melakukan transaksi dan menulis (berpotensi) data yang rusak, yang juga akan direplikasi.