โปรดอย่าเพิ่งลบพวกเขาในระบบปฏิบัติการ
คุณต้องปล่อยให้ mysqld ทำเพื่อคุณ นี่คือวิธีที่ mysqld จัดการ:
ไฟล์mysql-bin.[index]
จะเก็บรายการบันทึกไบนารีทั้งหมดที่ mysqld สร้างขึ้นและหมุนอัตโนมัติ กลไกในการล้างถังขยะร่วมกับmysql-bin.[index]
:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
สิ่งเหล่านี้จะล้างข้อมูลบันทึกไบนารีทั้งหมดก่อนที่คุณจะระบุ binlog หรือการประทับเวลา
ตัวอย่างเช่นถ้าคุณเรียกใช้
PURGE BINARY LOGS TO 'mysql-bin.000223';
mysql-bin.000223
นี้จะลบบันทึกไบนารีทั้งหมดก่อน
ถ้าคุณวิ่ง
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;
สิ่งนี้จะลบบันทึกไบนารีทั้งหมดก่อนเที่ยงคืน 3 วันที่ผ่านมา
หากคุณต้องการให้ binlog หมุนโดยอัตโนมัติและเก็บไว้ 3 วันจากนั้นเพียงตั้งค่านี้:
mysql> SET GLOBAL expire_logs_days = 3;
จากนั้นเพิ่มลงใน /etc/my.cnf
[mysqld]
expire_logs_days=3
และ mysqld จะลบบันทึกสำหรับคุณ
แสดงสถานะการเป็นทาส \ G
นี่เป็นสิ่งสำคัญ เมื่อคุณเรียกใช้SHOW SLAVE STATUS\G
คุณจะเห็นบันทึกไบนารีสองรายการจาก Master:
Master_Log_File
Relay_Master_Log_File
เมื่อการจำลองแบบมีความล่าช้าเพียงเล็กน้อยหรือไม่มีเลยสิ่งเหล่านี้มักจะเป็นค่าเดียวกัน เมื่อมีการจำลองแบบล่าช้าจำนวนมากค่าเหล่านี้จะแตกต่างกัน เพียงเพื่อให้ง่ายเลือกสิ่งที่Relay_Master_Log_File
เป็นและกลับไปที่อาจารย์และวิ่ง
PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';
ด้วยวิธีนี้การจำลองแบบจะไม่ถูกขัดจังหวะ
[mysqld] expire_logs_days=3
(และคุณจะต้องรวม[mysqld]
ส่วน