Tolong jangan hanya menghapusnya di OS.
Anda perlu membiarkan mysqld melakukan itu untuk Anda. Inilah cara mysqld mengelolanya:
File mysql-bin.[index]
menyimpan daftar semua log biner yang telah dibuat dan diputar secara otomatis oleh mysqld. Mekanisme untuk membersihkan binlog bersamaan dengan mysql-bin.[index]
adalah:
PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';
Ini akan menghapus semua log biner sebelum binlog atau cap waktu yang baru saja Anda tentukan.
Misalnya, jika Anda menjalankan
PURGE BINARY LOGS TO 'mysql-bin.000223';
ini akan menghapus semua log biner sebelumnya mysql-bin.000223
.
Jika Anda berlari
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;
ini akan menghapus semua log biner sebelum tengah malam 3 hari yang lalu.
Jika Anda ingin agar binlog diputar secara otomatis dan tetap 3 hari, cukup setel ini:
mysql> SET GLOBAL expire_logs_days = 3;
lalu tambahkan ini ke /etc/my.cnf
[mysqld]
expire_logs_days=3
dan mysqld akan menghapus log mereka untuk Anda
TAMPILKAN STATUS BUDAK \ G
Ini sangat penting. Ketika Anda menjalankan SHOW SLAVE STATUS\G
, Anda akan melihat dua log biner dari Master:
Master_Log_File
Relay_Master_Log_File
Ketika replikasi memiliki sedikit atau tidak ada lag, ini biasanya bernilai sama. Ketika ada banyak replikasi lag, nilai-nilai ini berbeda. Hanya untuk membuatnya sederhana, pilih apa pun yang Relay_Master_Log_File
ada, dan kembali ke Master dan lari
PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';
Dengan begitu, replikasi tidak terganggu.
[mysqld] expire_logs_days=3
[mysqld]