【MySql】如何刪除 bin log
當mysql 日誌佔用太大空間的時候,要考慮將日誌刪除
一 語法如下:
PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
用於刪除在指定的日誌或日期之前的日誌索引中的所有二進位制日誌。這些日誌也會從記錄在日誌索引檔案中的清單中被刪除,這樣被給定的日誌成為第一個。
例如:
1 刪除指定日誌之前的bin log
PURGE MASTER LOGS TO 'mysql-bin.010';
1) 檢視當前的log
mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 126 |
| mysql-bin.000002 | 88416282 |
| mysql-bin.000003 | 198081520 |
| mysql-bin.000004 | 1358 |
| mysql-bin.000005 | 126 |
| mysql-bin.000006 | 126 |
| mysql-bin.000007 | 126 |
| mysql-bin.000008 | 315 |
| mysql-bin.000009 | 126 |
| mysql-bin.000010 | 126 |
| mysql-bin.000011 | 504 |
| mysql-bin.000012 | 107 |
| mysql-bin.000013 | 107 |
| mysql-bin.000014 | 107 |
| mysql-bin.000015 | 107 |
| mysql-bin.000016 | 521 |
| mysql-bin.000017 | 315 |
| mysql-bin.000018 | 958 |
+------------------+-----------+
18 rows in set (0.04 sec)
2) 刪除mysql-bin.000010 之前的日誌
mysql> purge binary logs to 'mysql-bin.000010';
Query OK, 0 rows affected (0.35 sec)
mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000010 | 126 |
| mysql-bin.000011 | 504 |
| mysql-bin.000012 | 107 |
| mysql-bin.000013 | 107 |
| mysql-bin.000014 | 107 |
| mysql-bin.000015 | 107 |
| mysql-bin.000016 | 521 |
| mysql-bin.000017 | 315 |
| mysql-bin.000018 | 958 |
+------------------+-----------+
9 rows in set (0.00 sec)
3)顯示第一個二進位制日誌:
mysql> show binlog events;
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| mysql-bin.000010 | 4 | Format_desc | 1 | 107 | Server ver: 5.5.18-log, Binlog ver: 4 |
| mysql-bin.000010 | 107 | Stop | 1 | 126 | |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
2 rows in set (0.01 sec)
2 刪除指定日期之前的bin log
PURGE MASTER LOGS BEFORE '2011-12-05 13:00:00';
3 清除N天前的 binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL N DAY);
BEFORE變數的date自變數可以為'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同義詞。
下面的語句可以清除 7 天前的binlog,
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);
在contab設定定期每天凌晨3點刪除7天前的binlog:
0 3 * * * `mysql -uroot -e 'PURGE BINARY LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);'`
二 主從架構的日誌刪除
對於主從結構的mysql系統,slave伺服器當前正在讀取試圖刪除的日誌之一,則刪除語句失敗,並且報錯。不過,如果在slave伺服器是停止執行期間清理了其未讀取的日誌之一,則slave伺服器啟動後不能複製。當slave伺服器正在複製時,刪除日誌的語句可以安全執行,並不需要停止它們。
主從架構的可以按照以下步驟清理日誌:
1. 在每個SLAVE伺服器上,使用SHOW SLAVE STATUS來檢查它正在讀取的日誌。
2. 使用SHOW MASTER LOGS獲得主伺服器上的已經歸檔的日誌。
3. 在所有的slave伺服器中判定最早的日誌,既截至目標日誌。如果所有的slave伺服器是更新的,這是清單上的最後一個日誌。
4. 備份將要刪除的所有日誌,防止意外!
5. 刪除日誌,但不包括目標日誌。
三 相關引數:
配置檔案my.cnf的引數expire-logs-days 指定了日誌過期的天數,比如
expire-logs-days = 20 表示日誌保留20,超過20則設定為過期的!可以根據實際情況來設定合適的值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-713116/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql bin 日誌的刪除MySql
- MySQL error log和bin logMySqlError
- mysql binlog 刪除master- binlogMySqlAST
- mysql binlog日誌刪除MySql
- MySQL的Redo log 以及Bin logMySql
- 如何安全刪除mysql下的binlog日誌薦MySql
- MySQL 正確刪除 binlog 日誌MySql
- 【Mysql】三大日誌 redo log、bin log、undo logMySql
- mysql bin-log和log-update開啟MySql
- Mysql資料庫data目錄下的mysql-bin.00000X可以刪除嗎?MySql資料庫
- MySQL通過Binlog恢復刪除的表MySql
- 刪除mysql relay-log 的解決辦法MySql
- 如何實現 Logstash/Elasticsearch 與MySQL自動同步 更新操作 和 刪除操作 ?ElasticsearchMySql
- MySQL:簡單記錄刪除binary log的介面MySql
- MySQL如何優雅的刪除大表MySql
- PostgreSQL如何刪除不使用的xlog檔案SQL
- 如何刪除lok正常開啟weblogic managed serverWebServer
- mysql binlog日誌自動清理及手動刪除MySql
- MySQL 如何重建/恢復刪除的 sys SchemaMySql
- MYSQL下如何安全的快速刪除大表MySql
- mysql刪除查詢MySql
- mysql刪除主鍵索引,刪除索引語法MySql索引
- MySQL binlog超過binlog_expire_logs_seconds閾值沒有刪除案例MySql
- MySQL使用binlog2sql閃回誤刪除資料MySql
- [轉] MySQL binlog 日誌自動清理及手動刪除MySql
- 如何刪除資料庫下的所有表(mysql)資料庫MySql
- MySQL刪除資料表MySql
- MySQL-刪除欄位MySql
- MySQL 多表關聯刪除MySql
- Ubuntu徹底刪除MySqlUbuntuMySql
- mysql 刪除重複項MySql
- mysql之 binlog維護詳細解析(開啟、binlog引數作用、mysqlbinlog解讀、binlog刪除)MySql
- 基於bin-log&position搭建主從架構MySQL架構MySql
- 雲伺服器mysql定期清理bin-log檔案伺服器MySql
- win10中recycle.bin什麼意思_win10中recycle.bin怎樣刪除Win10
- 在MySQL中如何有效的刪除一個大表?MySql
- mysql 誤刪除表內資料,透過binlog日誌恢復MySql
- mySql刪除多個表 刪除多個欄位的SQLMySql