ความแตกต่างระหว่างบันทึกธุรกรรมและบันทึกการทำซ้ำใน MySQL


14

ฉันได้อ่านเกี่ยวกับ MySQL ในความคิดของฉันฉันเห็นสองประเภทบันทึกที่คล้ายกันมาก MySQL บันทึกวิธีและเวลาที่ข้อมูลถูกเปลี่ยนแปลงในบันทึก ข้อมูลที่ใช้สำหรับการกู้คืน MySQL ฉันสับสนกับฟังก์ชั่นการบันทึกสองประเภท

คำตอบ:


18

บันทึก REDO เป็นคำศัพท์ของ Oracle บันทึกการทำธุรกรรมเป็นคำศัพท์ InnoDB ตอนนี้ทุกคนเป็นวิศวกร Oracle, คนใช้ทั้งในการอ้างถึงสิ่งเดียวกันใน MySQL

ล็อกธุรกรรมคือโดย default- ก็สามารถ changed- แฟ้มที่สองตั้งอยู่ใน $ DATADIR เรียกว่าและib_logfile0 ib_logfile1มันทำหน้าที่ฟังก์ชั่นเดียวกันกับบันทึก REDO ในการเขียนฐานข้อมูลอื่น ๆ ในวิธีที่ปลอดภัยและกู้คืนในกรณีที่เกิดความผิดพลาดถึงแม้ว่าจะมีรายละเอียดบางอย่างในการใช้งานที่แตกต่างจากการทำงานของ RDMS อื่น ๆ มันเป็นองค์ประกอบหลักสำหรับ InnoDB ที่จะเป็นเครื่องมือในการทำธุรกรรม

อย่าสับสนล็อกธุรกรรมกับบันทึกไบนารีใน MySQL โดยค่าเริ่มต้น binlog จะอยู่ที่ $ DATADIR และเป็น*hostname*-bin.indexหลาย*hostname*-bin.00001ๆ อย่าง ฯลฯ โดยเฉพาะอย่างยิ่งมันสับสนสำหรับคนที่มาจากฐานข้อมูลอื่น ๆ เพราะมันถูกใช้สำหรับสิ่งอื่น ๆ ที่ฐานข้อมูลอื่นใช้บันทึก REDO สำหรับ: การจำลองแบบและจุดในเวลา การฟื้นตัว ข้อแตกต่างที่สำคัญคือบันทึกธุรกรรมคือ InnoDB เท่านั้นบันทึกไบนารี (ส่วนใหญ่) ธุรกรรมเป็นอิสระเนื่องจากเป็นเครื่องมือเก็บข้อมูลทั้งหมดธุรกรรมหรือไม่ MyISAM จะเขียน (ถ้าเปิดใช้งาน) ลงในบันทึกไบนารี InnoDB จะเขียนบันทึกการทำธุรกรรมและบันทึกไบนารี

ข้อมูลเพิ่มเติมเกี่ยวกับคู่มือ: ทำซ้ำล็อก , เข้าสู่ระบบไบนารี


-2

ใน SQL Server ไฟล์ TLog จะเก็บข้อมูลการเลิกทำและทำซ้ำ แต่ใน MYSQL และ Oracle TLog / Redo Log จะเก็บเฉพาะข้อมูลที่ทำซ้ำ

การเข้าสู่ระบบแบบไบนารี่ใน MySQL เป็นวิธีการกู้คืนเวลา การเปิดใช้งานการบันทึกแบบไบนารีเทียบเท่ากับการมีแบบจำลองการกู้คืนเต็มรูปแบบใน SQL Server


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