Veri sağlama toplamları akış çoğaltmasıyla nasıl etkileşir?


11

Veri sağlama toplamları 9.3'te sunulan yeni bir özelliktir ve:

yeni bir GUC parametresi "ignore_checksum_failure" var, bu da PostgreSQL'in bozulma tespit edilse bile bir işlemi işlemeye devam etmesini zorlayacak

Bir çoğaltma yöneticisinde sağlama toplamı hatası olması durumunda, bozuk veriler köle çoğalır mı yoksa çoğaltma durur mu? Ayarına bağlı mı ignore_checksum_failure?

Bu README'nin bazı yararlı ilgili bilgileri vardır, ancak soruyu doğrudan yanıtlamaz.


6
Çok güzel bir soru. Kısmen veri sağlama toplamlarının WAL'ı da etkileyip etkilemediğine bağlıdır (WAL'deki tam sayfa görüntüleri hariç, hangi IIRC'yi etkilemez). Diğer özelliklere yardımcı olduğum için veri sağlama toplamlarını incelemek için zamanım olmadı. Pgsql-general'e sormak iyi bir fikir olabilir. Zaman ve yeni bebek izin verirse, kaynaklara bir göz atacağım, ama nefesimi tutmayacağım.
Craig Ringer

3
@ Tebrikler Tebrikler!
Jack diyor ki topanswers.xyz

4
StackExchange'te öğrendiğiniz şeyler ... "diğer özelliklere yardımcı oluyor", "çocuk bezi değiştirme" için bir örtmece.
Colin 't Hart

Yanıtlar:


1

Veriler diskteyken bozulduysa, çoğaltmanın oluşturulduğu yedeklemede yoksa, bozulma çoğaltılmamalıdır.

Elbette sağlama toplamı hatalarını görmezden gelirseniz, usta yanlış şeyler yapmaya başlayabilir ve bu yanlışlık çoğaltılır.

Eğer bellekte bozulma varsa, tüm bahisler kapanır.


2
buradaki işarete oldukça yakın. ignore_checksum_failureParametredeki belgeler "bu davranış ... yayılabilir ... bozulma" uyarısını içerir. Çoğaltmadan açıkça (akış) bahsetmeden, bunun burada ima edildiği anlaşılıyor. Normalde bir sağlama toplamı hatası, işlemin iptal edilmesine neden olur, bu nedenle hiçbir veri çoğaltılmaz. Bu hatayı göz ardı etmek, işlemi gerçekleştirmenize ve aynı zamanda çoğaltılacak olan (potansiyel olarak) bozuk verileri yazmanıza olanak tanır.
Colin 't Hart
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.