Xin đừng chỉ xóa chúng trong HĐH.
Bạn cần phải để mysqld làm điều đó cho bạn. Đây là cách mysqld quản lý nó:
Các tập tin mysql-bin.[index]
giữ một danh sách tất cả các bản ghi nhị phân mysqld đã tạo và tự động xoay. Các cơ chế để làm sạch các binlog kết hợp với mysql-bin.[index]
là:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
Chúng sẽ xóa tất cả các bản ghi nhị phân trước binlog hoặc dấu thời gian bạn vừa chỉ định.
Ví dụ: nếu bạn chạy
PURGE BINARY LOGS TO 'mysql-bin.000223';
điều này sẽ xóa tất cả các bản ghi nhị phân trước đó mysql-bin.000223
.
Nếu bạn chạy
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;
điều này sẽ xóa tất cả các bản ghi nhị phân trước nửa đêm 3 ngày trước.
Nếu bạn muốn binlog tự động quay vòng và giữ 3 ngày trôi qua, chỉ cần đặt cái này:
mysql> SET GLOBAL expire_logs_days = 3;
sau đó thêm nó vào /etc/my.cnf
[mysqld]
expire_logs_days=3
và mysqld sẽ xóa chúng nhật ký cho bạn
HIỂN THỊ TÌNH TRẠNG SLAVE \ G
Điều này là rất quan trọng. Khi bạn chạy SHOW SLAVE STATUS\G
, bạn sẽ thấy hai bản ghi nhị phân từ Master:
Master_Log_File
Relay_Master_Log_File
Khi nhân rộng có ít hoặc không có độ trễ, chúng thường có cùng giá trị. Khi có nhiều độ trễ nhân rộng, các giá trị này là khác nhau. Chỉ cần làm cho nó đơn giản, chọn bất cứ thứ gì Relay_Master_Log_File
và quay trở lại Master và chạy
PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';
Bằng cách đó, nhân rộng không bị gián đoạn.
[mysqld] expire_logs_days=3
(và bạn phải bao gồm[mysqld]
phần