การจำลองแบบล้มเหลว วิธีการที่จะไปอีกครั้ง?


10

ฉันใช้ Postgres 9.1.6 บน Ubuntu และฉันมีการตั้งค่าการจำลองแบบสตรีมมิ่งระหว่างต้นแบบและทาส ทุกอย่างทำงานได้อย่างราบรื่นจนกระทั่งฐานข้อมูลขัดข้องและเราต้องรีสตาร์ทกล่องทั้งสอง

ตอนนี้การจำลองแบบได้หยุดลงและเมื่อตรวจสอบบันทึกในกล่องทั้งสองฉันเห็นข้อความนี้:

CDT FATAL: ส่วน WAL ที่ร้องขอ 0000000100000224000000FA ถูกลบแล้ว

เป็นกลุ่มเดียวกันซ้ำแล้วซ้ำอีก จาก Googling ของฉันดูเหมือนว่าเซิร์ฟเวอร์การจำลองกำลังพยายามเรียกคืนเซกเมนต์นี้จากต้นแบบ แต่ไม่ได้อยู่ที่นั่นอีกต่อไป โอเค แต่จะทำยังไงดีล่ะ? ฉันจำเป็นต้องทำการสำรองข้อมูลใหม่และ rsync ที่ไปยังทาสหรือไม่? มีวิธีง่าย ๆ ในการทำให้ทาสกลับมาซิงค์กันหรือไม่?

คำตอบ:


7

ใช่คุณจะต้องให้ทาสการสำรองฐานใหม่(สำหรับการจำลองแบบสตรีมมิ่งเพียงขั้นตอนที่ 1 ถึง 4) ของต้นแบบ

ปัญหาของคุณอาจเกิดขึ้นเนื่องจากค่า wal_keep_segments ต่ำไป ค่าจะต้องสูงพอที่เมื่อทาสไม่ทำงานสักครู่อาจารย์จะไม่เริ่มรีไซเคิลเซกเมนต์ทาสยังไม่ได้ประมวลผล


1

โปรดตรวจสอบว่า WAL ที่ต้องการนั้นอยู่ในตำแหน่งที่คุณกำลังกู้คืนสำหรับการกู้คืนเริ่มต้นก่อนที่จะเชื่อมต่อทาสกับโฮสต์หลักในโหมดสตรีมมิ่ง

ปัญหาของคุณสามารถเกิดขึ้นได้เมื่อมี WOT ที่มีอยู่ในตำแหน่งที่คุณกำลังกู้คืนสำหรับการกู้คืนเริ่มต้น

ถ้าทุกอย่างดีในกรณีนี้แล้วคุณ shoudl ตรวจสอบ restore_command recovery.confใน


0

การทำงานอื่น ๆ คือทำแบ็คอัพ backup_push จากวอลล์หลักและทำการ backip_fetch จากสลาฟแสตนด์บายและเริ่มต้นสแตนบายทันที


2
โปรดขยายว่าทำไมกระบวนการนี้ถึงทำงานได้อย่างไร
RolandoMySQLDBA
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.