MYSQL日記的准確刪除辦法詳解。本站提示廣大學習愛好者:(MYSQL日記的准確刪除辦法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是MYSQL日記的准確刪除辦法詳解正文
本文具體講述了MYSQL日記的准確刪除辦法。分享給年夜家供年夜家參考,詳細以下:
1.查找:
MySQL> show binary logs; +—————-+———–+ | Log_name | File_size | +—————-+———–+ | mysql-bin.000001 | 150462942 | | mysql-bin.000002 | 125 | | mysql-bin.000003 | 106 | +—————-+———–+
2.刪除bin-log(刪除mysql-bin.000003之前的而沒有包括mysql-bin.000003)
mysql> purge binary logs to 'mysql-bin.000003'; Query OK, 0 rows affected (0.16 sec)
3. 查詢成果(如今只要一筆記錄了.)
mysql> show binlog events/G *************************** 1. row *************************** Log_name: mysql-bin.000003 Pos: 4 Event_type: Format_desc Server_id: 1 End_log_pos: 106 Info: Server ver: 5.1.26-rc-log, Binlog ver: 4 1 row in set (0.01 sec) (mysql-bin.000001和mysql-bin.000002已被刪除) mysql> show binary logs; +—————-+———–+ | Log_name | File_size | +—————-+———–+ | mysql-bin.000003 | 106 | +—————-+———–+ 1 row in set (0.00 sec)
(刪除的其它格局應用!)
PURGE {MASTER | BINARY} LOGS TO 'log_name' PURGE {MASTER | BINARY} LOGS BEFORE 'date'
用於刪除列於在指定的日記或日期之前的日記索引中的一切二進制日記。這些日記也會從記載在日記索引文件中的清單中被刪除,如許被給定的日記成為第一個。
例如:
PURGE MASTER LOGS TO 'mysql-bin.010′; PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00′;
消除3天前的 binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
BEFORE變量的date自變量可認為'YYYY-MM-DD hh:mm:ss'格局。MASTER和BINARY是同義詞。
假如您有一個活性的附屬辦事器,該辦事器以後正在讀取您正在試圖刪除的日記之一,則本語句不會起感化,而是會掉敗,並隨同一個毛病。不外,假如附屬辦事器是停止的,而且您恰巧清算了其想要讀取的日記之一,則附屬辦事器啟動後不克不及復制。當附屬辦事器正在復制時,本語句可以平安運轉。您不須要停滯它們。
要清算日記,需依照以下步調:
1. 在每一個附屬辦事器上,應用SHOW SLAVE STATUS來檢討它正在讀取哪一個日記。
2. 應用SHOW MASTER LOGS取得主辦事器上的一系列日記。
3. 在一切的附屬辦事器中剖斷最早的日記。這個是目的日記。假如一切的附屬辦事器是更新的,這是清單上的最初一個日記。
4. 制造您將要刪除的一切日記的備份。(這個步調是自選的,然則建議采取。)
5. 清算一切的日記,然則不包含目的日記。
在contab設置:
0 1 * * * `mysql -uroot -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);'`
願望本文所述對年夜家MySQL數據庫計有所贊助。