การจำลองแบบสตรีมมิ่งและความล้มเหลวบน PostgreSQL


14

ฉันกำลังพิสูจน์แนวคิดเกี่ยวกับการจำลองแบบ PostgreSQL หลังจากการอภิปรายในฟอรัมเราตัดสินใจที่จะไปกับการจำลองแบบสตรีมมิ่งเนื่องจากประสิทธิภาพดีเมื่อเทียบกับโซลูชันอื่น ๆ PostgreSQL ไม่ได้ให้การเฟลโอเวอร์อัตโนมัติสำหรับการจำลองแบบการสตรีม เราสามารถเปลี่ยนทาสให้เป็นมาสเตอร์โดยใช้ไฟล์ทริกเกอร์ แต่มันไม่สามารถจัดการได้ ดังนั้นฉันจึงต้องการโซลูชันที่มี failover อัตโนมัติและมีความพร้อมใช้งานสูง

มีโซลูชั่นที่แตกต่างกัน:

  1. Repmgr
  2. Linux Heartbeat
  3. Pgpool-II (สำหรับการ failover อัตโนมัติเท่านั้น)
  4. เครื่องมืออื่น ๆ ในกรณีที่คุณใช้

คำถามของฉันคือวิธีแก้ปัญหาที่ควรใช้?

คำตอบ:


8

ในร้านของเราเราเลือก repmgr และ pgbouncer แทนที่จะเป็น pgpool repmgr มีเครื่องมือที่ดีในการติดตั้งและบำรุงรักษาคลัสเตอร์ของเซิร์ฟเวอร์ฐานข้อมูลที่จำลองแบบแล้ว ในกรณีของเรา 1 ต้นแบบและ 2 ทาส (หนึ่งล้มเหลวและทดสอบประสิทธิภาพการอ่านสดหนึ่งที่สามารถกลายเป็นล้มเหลวของต้นแบบใหม่) pgpool มีปัญหาเกี่ยวกับการเปลี่ยนแปลงการกำหนดค่าในกรณีส่วนใหญ่คุณต้องรีสตาร์ทบริการและหากคุณมีเวลาหยุดทำงาน นี่เป็นปัญหาเมื่อคุณต้องการความพร้อมในการใช้งาน 24x7x365

repmgrd (the deamon) ช่วยในการเลือกต้นแบบใหม่หลังจากเกิดความล้มเหลวคุณไม่ต้องการสถานการณ์สมองแตก เรามีที่อยู่ IP เสมือนหนึ่งรายการสำหรับฐานข้อมูลหลักซึ่งเป็นฐานข้อมูลหลักในขณะนั้น เมื่อเซิร์ฟเวอร์อื่นกลายเป็นเซิร์ฟเวอร์นี้เป็นเซิร์ฟเวอร์เดียวที่ใช้ที่อยู่นี้ เซิร์ฟเวอร์ฐานข้อมูลทุกตัวจะมีที่อยู่ IP ของตัวเองสำหรับแบบสอบถามแบบอ่านอย่างเดียว

repmgr ดูแลโดยคนเดียวกับที่สร้างการจำลองแบบการสตรีมในตอนแรกดังนั้นพวกเขาจึงรู้ว่าสิ่งที่พวกเขาพูดคุยเกี่ยวกับ เวอร์ชั่น 2.0 กำลังจะเปิดตัว

เตรียมพร้อมสำหรับสถานการณ์ที่เลวร้ายทำการทดสอบอย่างจริงจังโดยดึงปลั๊กไฟและปลั๊กเครือข่าย! เมื่อมีบางอย่างผิดพลาดสิ่งอื่น ๆ อีกมากมายก็เกิดความผิดพลาดและจะกัดคุณที่ด้านหลังเมื่อคุณไม่สามารถจ่ายได้

การจำลองแบบเป็นสิ่งหนึ่งความล้มเหลวในการทำงานหลังจากปัญหาร้ายแรงบางอย่างเป็นอีกเรื่องหนึ่ง


1

เรากำลังใช้โซลูชันที่แตกต่างกันสองแบบพร้อมกันในเวลาเดียวกัน

Pgpool-II สำหรับการจำลองแบบซิงโครนัสและ Slony2 สำหรับการจำลองแบบอะซิงโครนัส (ทริกเกอร์)

ประสิทธิภาพเป็นเลิศ


ขอบคุณสำหรับการตอบสนอง ... ที่จริงฉันกำลังลอง Pgpool-II กับการจำลองแบบสตรีมมิ่ง มันคือการให้ failover อัตโนมัติ แต่ถ้าฉันจะเริ่มต้นโหนดหลักอีกครั้ง pgpool-II จะเริ่มต้นเป็น master อีกครั้งหรือโหนดสแตนด์บายได้หรือไม่
Saurabh

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