บทนำ
นี่คือการเปลี่ยนแปลงต้นน้ำ การกระจายบางอย่างอาจเปลี่ยนการตั้งค่ากลับ แต่มีแนวโน้มว่าส่วนใหญ่จะทำตามต้นน้ำ
codebase ถูกโฮสต์บน https://github.com/mysql/mysql-server
ไฟล์จริงที่การบันทึกไบนารีถูกตั้งค่าเป็นค่าเริ่มต้นคือ
sql/sys_vars.cc
เมื่อพิจารณาจากคำตำหนิ ในที่สุดฉันก็สรุปการกระทำที่เปลี่ยนค่าดีฟอลต์:
https://github.com/mysql/mysql-server/commit/9fa9504e5aaf68661aef2d735cecbd3c58eb7790
มันกล่าวถึงรายการบันทึกการทำงานสำหรับทีม mysql: #10470
คุณสามารถค้นหาได้ที่นี่: https://dev.mysql.com/worklog/
เดอะ ส่วนเหตุผล ของรายการ Worklog นั้นเสนอสิ่งนี้:
เหตุผล
การติดตั้งที่ใช้งานจริงเกือบทั้งหมดเปิดใช้งานบันทึกไบนารีเมื่อใช้งาน
สำหรับการจำลองแบบและการกู้คืน ณ เวลาใดเวลาหนึ่ง
ด้วยเหตุนี้เราควรเปิดใช้งานตามค่าเริ่มต้นด้วยเหตุผลดังต่อไปนี้:
- เราลดขั้นตอนการกำหนดค่าหนึ่งขั้นตอนสำหรับผู้ใช้
1A. การเปิดใช้งานในภายหลังจำเป็นต้องรีสตาร์ท mysqld
- เราได้รับการทดสอบภายในที่เหมือนการผลิตมากขึ้นของเซิร์ฟเวอร์
- เราสามารถทราบและเผชิญกับผลกระทบด้านประสิทธิภาพของบันทึกไบนารีได้ดีขึ้น
หมดอายุ
ใน mysql 8.0 การหมดอายุเริ่มต้นสำหรับล็อกไฟล์คือ 30 วัน
ซึ่งควบคุมโดยตัวแปร binlog_expire_logs_seconds
ซึ่งมีค่าเริ่มต้นเป็น 2592000 วินาที
. เพื่อให้การล้างข้อมูลเกิดขึ้นจริง จะต้องมีการล้างบันทึก ตามเอกสารประกอบ การล้างข้อมูลบันทึกจะเกิดขึ้นโดยอัตโนมัติเมื่อไฟล์บันทึกไบนารีไฟล์หนึ่งปิดและไฟล์ใหม่เริ่มทำงาน สามารถกำหนดขนาดสูงสุดของแต่ละไฟล์ได้ max_binlog_size
ซึ่งสูงสุด 1GB อย่างไรก็ตาม มีข้อแม้อยู่อย่างหนึ่งว่าธุรกรรมจะไม่ถูกแยกระหว่างไฟล์บันทึก และตามทฤษฎีแล้วอาจมีขนาดสูงสุด 4GB คุณยังสามารถออก ล้างบันทึก
หรือ ก ล้างบันทึกไบนารี
งบรายวันด้วยตัวคุณเอง