ความแตกต่างระหว่างการทำซ้ำแถวและคำสั่งใน MySQL?


12

ความแตกต่างที่แท้จริงระหว่างการจำลองแบบตามแถวและตามคำสั่งคืออะไร ฉันกำลังมองหาในแง่ของผลกระทบของการจำลองแบบต่อทาส

ถ้าฉันใช้การจำลองแบบแบบแถวแล้วจะมีผลกับทาสอย่างไรและถ้าฉันใช้ข้อความที่อิงตามคำสั่งจะมีผลอย่างไร

โปรดใช้พารามิเตอร์ต่อไปนี้ในการพิจารณา:

   replicate-ignore-db  and replicate-do-db 

ขอบคุณ .... !

คำตอบ:


15

Statement-Based Replication (SBR) จะทำซ้ำคำสั่ง SQL ง่ายต่อการอ่านโดยใช้โปรแกรมถ่ายโอน mysqlbinlog

การจำลองแบบตามแถว (RBR) จะทำซ้ำการเปลี่ยนแปลงข้อมูลจริง บันทึกไบนารีและบันทึกการถ่ายทอดจะเติบโตเร็วกว่า SBR คุณไม่สามารถระบุ SQL ที่สร้างการเปลี่ยนแปลงได้
(โปรดอ่านข้อมูลอัพเดทสำหรับ MySQL 5.6.2 ด้านล่าง)

นี่คือรายการข้อดีและข้อเสียที่ครอบคลุมมากขึ้น: http://www.databasejournal.com/features/mysql/article.php/3922266/Comparing-MySQL-Statement-Based-and-Row-Based-Replication.htm

MySQL จะอนุญาตรูปแบบคำสั่ง / แถวทั้งสองประเภทในบันทึกไบนารี ฉันแนะนำ STATEMENT ตาม รูปแบบบันทึกไบนารีเริ่มต้นคือ MIXED ซึ่งก็โอเค

เมื่อคุณใช้replicate-ignore-dbและreplicate-do-dbฉันจะเชื่อถือการจำลองแบบตามคำสั่ง


อัพเดทสำหรับ MySQL 5.6.2:

นำมาใช้ใน MySQL 5.6.2 binlog_rows_query_log_eventsตัวแปรระบบทำให้เซิร์ฟเวอร์ MySQL 5.6.2 หรือใหม่กว่าเขียนเหตุการณ์บันทึกข้อมูลเช่นเหตุการณ์บันทึกคิวรีแถวลงในบันทึกไบนารี่ ดังนั้นเราสามารถระบุ SQL ที่สร้างการเปลี่ยนแปลง

อ้างอิง: 17.1.4.4 ตัวเลือกและตัวแปรบันทึกไบนารี


โหมดเริ่มต้นของการจำลองแบบ SBR หรือ RBR คืออะไร ... ??
Abdul Manaf

1
SBR - คำชี้แจง
RolandoMySQLDBA

4
โหมดเริ่มต้นคือ MIXED ตั้งแต่ 5.1.8 ซึ่งใช้การจำลองแบบข้อความเป็นหลัก แต่จะเปลี่ยนเป็น RBR โดยอัตโนมัติเมื่อดำเนินการค้นหาที่ไม่ปลอดภัยด้วย SBR dev.mysql.com/doc/refman/5.1/en/replication-formats.html
Aaron Brown เมื่อ

9

ใน MySQL 5.5 รูปแบบคำสั่งเป็นค่าเริ่มต้น แต่จะเป็นการดีกว่าถ้าใช้รูปแบบผสม เพราะในกรณีนั้นการบันทึกตามคำสั่งจะถูกใช้เป็นค่าเริ่มต้น แต่จะเปลี่ยนเป็นการบันทึกตามแถวโดยอัตโนมัติในกรณีที่จำเป็นต้องใช้

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