ล็อกไบนารีของ MySQL - ข้ามตาราง


9

มีวิธีข้ามตารางเฉพาะในบันทึกไบนารีหรือไม่

ฉันได้รับการกำหนดค่าไบนารีบันทึกเป็นกลยุทธ์การสำรองข้อมูลเพิ่มเติมของฉันระหว่างการสำรองข้อมูลทุกคืน แต่เรามีตารางอ้างอิงขนาดใหญ่หนึ่งตารางที่เราจะอัปเดตทุกคืนจากกระบวนการแบทช์ (ตาราง 70GB) mysqlimportตารางนี้เป็นแบบอ่านอย่างเดียวและก็มีการปรับปรุงใช้ยามค่ำคืน

ในระหว่างกระบวนการอัปเดตสำหรับตารางการอ้างอิงนี้เท่านั้นไฟล์บันทึกแบบไบนารีจะทำให้เกิดความล่าช้าค่อนข้างร้ายแรง (โดยเฉพาะเมื่อฉันทำการอัปเดตแบบเต็ม 70GB) มันต้องทำ 70GB สองครั้งโดยทั่วไป yuck

ตารางอ้างอิงกำลังใช้ MyISAM (ฉัน chocked InnoDB พยายามโหลดดังนั้นลอง MyISAM)


เซิร์ฟเวอร์ฐานข้อมูลนี้เป็นเซิร์ฟเวอร์ฐานข้อมูลแบบสแตนด์อโลนหรือไม่ DB Server นี้เป็น Master หรือ Slave หรือไม่?
RolandoMySQLDBA

คำตอบ:


9

ไม่มีตัวเลือก mysql ที่จะเพิกเฉยต่อตารางในบันทึกไบนารี

หากคุณสามารถย้ายโต๊ะไปยังฐานข้อมูลแยกต่างหากคุณอาจใช้binlog ละเว้น-DBตัวเลือก แต่ตอนนี้มีของgotchas คุณควรเข้าใจว่า MySQL ประเมินกฎการจำลองแบบอย่างไร

หากคุณสามารถเขียนสคริปต์ wrapper เพื่อโหลดข้อมูลแทน mysqlimport (manpage บอกว่ามันเป็นอินเตอร์เฟสบรรทัดคำสั่งไปยัง LOAD DATA INFILE) และผู้ใช้ที่คุณกำลังนำเข้าข้อมูลด้วยสามารถมีสิทธิ์พิเศษที่คุณอาจใช้ตัวแปรเซสชันsql_log_binชอบ:

    SET @@session.sql_log_bin=0;
    LOAD DATA INFILE 'file_name' 
      -- other LOAD DATA INFILE options ;
    SET @@session.sql_log_bin=1;

วิธีนี้จะปิดใช้งานการบันทึกแบบไบนารีสำหรับเซสชันปัจจุบันโหลดข้อมูลและเปิดใช้งานการบันทึกแบบไบนารีอีกครั้ง


ปิดการใช้งานการบันทึกแบบไบนารีในระหว่างขั้นตอนการโหลดฉลาดว่าสิ่งที่ฉันกำลังมองหานี้เป็นทางออกที่ดีมาก!
David Parks

3

คุณสามารถใช้ได้ --replicate-ignore-table=db_name.tbl_name

ดูhttp://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_replicate-ignore-tableเพื่อดูรายละเอียด


6
ปัญหานี้คือ replicate-ละเว้น-table คือการตั้งค่าสลาฟดังนั้นมาสเตอร์จะสร้างรายการ binlog จำนวนมากพวกเขาจะถูกถ่ายโอนไปยังสลาฟ (กินแบนด์วิดท์ / พื้นที่ว่างในกระบวนการ) และละเว้นเท่านั้น มันจะมีประสิทธิภาพมากกว่าหากไม่สร้างรายการเหล่านั้นตั้งแต่แรก
SVD
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.