การตรวจสอบข้อมูลโต้ตอบกับการจำลองแบบสตรีมได้อย่างไร


11

การตรวจสอบข้อมูลเป็นคุณลักษณะใหม่ที่นำเสนอใน 9.3 และ:

มีพารามิเตอร์ GUC ใหม่ "ign_checksum_failure" ซึ่งจะบังคับให้ PostgreSQL ดำเนินการประมวลผลธุรกรรมต่อไปแม้ว่าจะตรวจพบความเสียหาย

ในกรณีที่ความล้มเหลวในการตรวจสอบบนต้นแบบการจำลองข้อมูลที่เสียหายจะถูกทำซ้ำเป็นทาสหรือจะหยุดการจำลองแบบ มันขึ้นอยู่กับการตั้งค่าของignore_checksum_failure?

นี้ README มีข้อมูลที่เกี่ยวข้องที่มีประโยชน์บาง แต่ไม่ได้โดยตรงตอบคำถาม


6
คำถามที่ดีมาก ส่วนหนึ่งขึ้นอยู่กับว่าการตรวจสอบข้อมูลส่งผลกระทบต่อ WAL เช่นกัน (ซึ่ง IIRC นั้นไม่ทำยกเว้นภาพเต็มหน้าใน WAL) ฉันไม่ได้มีเวลาที่จะขุดลงในการตรวจสอบข้อมูลที่ฉันได้รับการช่วยเหลือด้วยคุณสมบัติอื่น ๆ การถาม pgsql-General อาจเป็นความคิดที่ดี ถ้าเวลาและลูกใหม่อนุญาตฉันจะดูแหล่งที่มา แต่ฉันจะไม่กลั้นลมหายใจ
Craig Ringer

3
@Craig ขอแสดงความยินดี!
แจ็คบอกว่าลอง topanswers.xyz

4
สิ่งที่คุณเรียนรู้จาก StackExchange ... "การช่วยเหลือคุณสมบัติอื่น ๆ " เป็นคำสละสลวยสำหรับ "การเปลี่ยนผ้าอ้อม"
Colin 't Hart

คำตอบ:


1

หากข้อมูลเสียหายในขณะที่อยู่บนดิสก์ความเสียหายไม่ควรทำซ้ำเว้นแต่จะมีอยู่ในการสำรองข้อมูลซึ่งสร้างแบบจำลองแล้ว

แน่นอนถ้าคุณไม่สนใจความล้มเหลวของการตรวจสอบจากนั้นอาจารย์อาจเริ่มทำสิ่งผิดปกติและความผิดนั้นจะถูกจำลองแบบ

หากความเสียหายเกิดขึ้นในหน่วยความจำการเดิมพันทั้งหมดจะปิด


2
สวยใกล้กับเครื่องหมายที่นี่ เอกสารประกอบเกี่ยวกับignore_checksum_failureพารามิเตอร์มีคำเตือนว่า "พฤติกรรมนี้อาจ ... เผยแพร่ ... ความเสียหาย" หากไม่มีการกล่าวถึง (การจำลองแบบสตรีมมิ่ง) อย่างชัดเจนดูเหมือนว่านี่เป็นนัยที่นี่ โดยปกติข้อผิดพลาดการตรวจสอบจะทำให้การทำธุรกรรมยกเลิกดังนั้นจะไม่มีการจำลองข้อมูล การเพิกเฉยข้อผิดพลาดนี้จะช่วยให้คุณสามารถยอมรับการทำธุรกรรมและเขียนข้อมูลที่อาจเสียหาย (ซึ่งอาจ) ซึ่งจะถูกทำซ้ำ
Colin 't Hart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.