ทาสของ MySQL สามารถเป็นหลักในเวลาเดียวกันได้หรือไม่?


17

ฉันอยู่ในขั้นตอนการโอนย้ายเซิร์ฟเวอร์ 2 DB (Master & Slave) ไปยังเซิร์ฟเวอร์ DB สองเครื่องใหม่ (Master และ Slave)

DB1 - ปริญญาโท (การผลิต)

DB2 - Slave (การผลิต)

DB3 - ปรมาจารย์ใหม่

DB4 - Slave ใหม่

ขณะนี้ฉันมีการจำลองแบบตั้งค่าเป็น:

DB1 -> DB2
DB3 -> DB4

หากต้องการรับข้อมูลการผลิตที่จำลองแบบไปยังเซิร์ฟเวอร์ใหม่ฉันต้องการรับ "daisy chained" เพื่อให้มีลักษณะดังนี้:

DB1 -> DB2 -> DB3 -> DB4

เป็นไปได้ไหม เมื่อฉันรันshow master status;บน DB2 (ทาสใช้งานจริง) การครอบครอง binlog ดูเหมือนจะไม่เปลี่ยนแปลง:

+ + ------------------ ---------- + + -------------- ---- -------------- +
| ไฟล์ | ตำแหน่ง | Binlog_Do_DB | Binlog_Ignore_DB |
+ + ------------------ ---------- + + -------------- ---- -------------- +
| mysql-bin.000020 | 98 | | |
+ + ------------------ ---------- + + -------------- ---- -------------- +

ฉันสับสนเล็กน้อยว่าทำไมตำแหน่ง binlog จึงไม่เปลี่ยนแปลงบน DB2 โดยหลักการแล้วมันจะเป็นมาสเตอร์ของ DB3

คำตอบ:


16

binlog on DB2ไม่ได้อัปเดตการอัปเดตของ slave หากต้องการเชื่อมlog-slave-updatesโยงการจำลองแบบต้องใช้การตั้งค่าใน my.conf

http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_log-slave-updates


แต่คุณเขียนบันทึกสองครั้งครั้งเดียวในบันทึกการถ่ายทอดและอีกครั้งในไฟล์ binlog ทำไมไม่ทำซ้ำจาก slave โดยใช้บันทึกการถ่ายทอด?
hpaknia

9

ใช่เป็นไปได้ :) สิ่งนี้เรียกว่าการจำลองแบบ "Master with Relay Slave" และมีเอกสารจำนวนมากเกี่ยวกับเรื่องนี้ในเน็ต

ผมอยากแนะนำให้คุณดูที่เอกสารอย่างเป็นทางการที่นี่

Btw ยังจะดูที่เหล่านี้ภาพนิ่ง พวกเขามีคำแนะนำบางอย่างเกี่ยวกับทอพอโลยีการจำลองแบบ

หวังว่านี่จะช่วยได้


3

ใช่ - คุณสามารถใช้เซิร์ฟเวอร์ mysql แบบเดซี่เชนได้คุณสามารถสร้างแบบจำลองแบบวงกลมด้วยเครื่องจักรสองเครื่องขึ้นไป เพียงจำไว้ว่าให้เปิดใช้งาน binloging บนทาสที่ทำหน้าที่เป็นนายเช่นกัน


1
การจำลองแบบวงกลมมีความเปราะบางอย่างเหลือเชื่อ มันไม่สมควรภายใต้สถานการณ์ส่วนใหญ่
วอร์เนอร์

@Warner - นี่เป็นเพียงตัวอย่างของการตั้งค่าการจำลองที่ซับซ้อนยิ่งขึ้น
pQd

เพื่อนไม่ปล่อยให้เซิร์ฟเวอร์เซิร์ฟเวอร์ mysql ของเพื่อนเดซี่เชน
sjas

@sjas เว้นแต่ว่าพวกเขามีเหตุผลที่เฉพาะเจาะจงมากที่จะทำและเข้าใจผลที่อาจเกิดขึ้นจากการทำลายโซ่
pQd

ขออภัย แต่ยังไม่มีความสะดวกสบายหลอกหลอนคุณในภายหลัง
sjas

0

ใช่มันเป็นไปได้ คุณจำเป็นต้องมีสแนปชอตใหม่ของ DB2 เพื่อสร้าง DB3 ณ จุดนี้ถ้าคุณมีตำแหน่งที่ดีคุณสามารถใช้งานได้มากกว่าสำหรับ DB4 หรือถ่ายภาพอื่น ๆ ของ DB3

อย่าลืมตั้งค่าเฉพาะserver_idสำหรับแต่ละเซิร์ฟเวอร์

MySQL ประสิทธิภาพสูงเป็นหนังสือที่ยอดเยี่ยมสำหรับการอ้างอิงการบริหาร MySQL ขั้นสูง


ขณะนี้ DB2 เป็นเพียงทาส แต่ตำแหน่ง binlog ไม่เปลี่ยนแปลง ... คุณรู้หรือไม่ว่าเป็นเรื่องปกติ
mmattax

Slave (DB2) เป็นข้อมูลล่าสุดกับ Master แต่ตำแหน่ง binlog ไม่เปลี่ยนแปลงฉันควรตรวจสอบอะไร?
mmattax

ใช่ฉันยืนยันว่าฉันสามารถเปลี่ยนข้อมูลบน DB1 และมันถูกจำลองแบบไปยัง DB2 แต่ตำแหน่ง binlog ของ DB2 เหมือนกัน
mmattax

ฉันคิดว่า DB @ ไม่ได้บันทึกการอัปเดตของทาสดังนั้นทำไมตำแหน่งไม่เปลี่ยนแปลง: dev.mysql.com/doc/refman/5.1/en/…
mmattax

0

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


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