The PURGE BINARY LOGS
pernyataan menghapus semua file log biner tercantum dalam file indeks log sebelum ditentukan nama file log atau timestamp. File log yang dihapus juga dihapus dari daftar yang direkam dalam file indeks, sehingga file log yang diberikan menjadi yang pertama dalam daftar.
Saya harap Anda telah membersihkan log biner hingga mysql-bin.000019
menggunakan perintah
PURGE BINARY LOGS TO 'mysql-bin.000019';
Jika Anda perlu membersihkan semua log suka
PURGE BINARY LOGS TO 'mysql-bin.000025';
Ini akan menghapus log biner hingga mysql-bin.000025
.
MEMPERBARUI
Anda dapat mencoba
RESET MASTER;
RESET MASTER
Menghapus semua file log biner yang tercantum dalam file indeks, mengatur ulang file indeks log biner menjadi kosong, dan membuat file log biner baru
Efek RESET MASTER
berbeda dari efek LOG BINARY PURGE dalam 2 cara utama:
RESET MASTER
menghapus semua file log biner yang tercantum dalam file indeks, hanya menyisakan satu file log biner kosong dengan akhiran numerik 0,000001, sedangkan penomoran tidak diatur ulang oleh PURGE BINARY LOGS.
RESET MASTER
tidak dimaksudkan untuk digunakan ketika budak replikasi sedang berjalan. Perilaku RESET MASTER
ketika digunakan saat budak sedang berjalan tidak ditentukan (dan karenanya tidak didukung), sedangkan PURGE BINARY LOGS
dapat digunakan dengan aman saat budak replikasi sedang berjalan.
CAVEAT oleh RolandoMySQLDBA
Jika Anda menjalankan RESET MASTER
dengan Budak terhubung dan berjalan, IO Thread dari masing-masing Budak akan segera kehilangan tempatnya. Replikasi dengan demikian rusak dan Anda harus menghabiskan waktu untuk mendapatkan data pada semua Slave disinkronkan lagi. Jika Anda ingin menghapus log biner dengan aman dari Master tanpa merusak integritas Replikasi, inilah yang Anda lakukan:
- Jalankan
SHOW SLAVE STATUS\G
pada setiap Slave.
- Perhatikan
Relay_Master_Log_File
. Ini adalah log biner yang pernyataan terakhirnya berhasil dieksekusi di Slave).
- Dari semua tampilan
SHOW SLAVE STATUS\G
, tentukan mana Relay_Master_Log_File
yang tertua (Misalnya, 'mysql-bin.00123').
- Anda dapat menjalankan
PURGE BINARY LOGS TO 'mysql-bin.00123';
Tidak ada Budak yang akan kehilangan tempatnya.
Efek keseluruhan? Ini akan meninggalkan log biner pada Master yang pernyataannya belum dieksekusi pada semua Slave sampai sekarang.