mysql binlog管理
一 檢視資料庫的日記資訊:
1.mysql> show binary logs;
mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000009 | 125 |
| mysql-bin.000010 | 644 |
+------------------+-----------+
2.刪除bin-log(刪除mysql-bin.000010之前的而沒有包含 mysql-bin.000010)
mysql> purge binary logs to ' mysql-bin .000010';
Query OK, 0 rows affected (0.16 sec)
3. 查詢結果(現在只有一條記錄了.)
mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000010 | 644 |
+------------------+-----------+
1 row in set (0.00 sec)
( mysql-bin.000009 已被刪除)
二 命令說明
PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
用於刪除列於在指定的日誌或日期之前的日誌索引中的所有二進位制日誌。這些日誌也會從記錄在日誌索引檔案中的清單中被刪除,這樣被給定的日誌成為第一個。
例如:
PURGE MASTER LOGS TO 'mysql-bin.010';
PURGE MASTER LOGS BEFORE '2012-07-17 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. 清理所有的日誌
另外一種方式:
你可以先
flush logs
再執行
pure master logs xxx
這樣就能達到你的目的了,而且也非常安全。
flush logs之後會產生一個新的日誌,老的日誌重新生成一個檔案。
比如你現在有一個大日誌有800M,叫bin-log.00001
flush logs之後,就有兩個檔案bin-log.00001和bin-log.00002新的日誌只寫到bin-log.00002中
slave中的資訊也自動指向bin-log.00002,這時候再
purge master logs to 'bin-log.00002';
就能把老的那個刪除,達到你所描述的目的。master和slave都很安全。
四 配置選項
但沒有看到刪除的配置,在mysql裡show了一下variables,
mysql> show variables like '%log%';
查到了
| expire_logs_days | 0 |
這個預設是0,也就是logs不過期,這個是一個global的引數,所以需要執行
set global expire_logs_days=8;
這樣8天前的log就會被刪除了,如果有回覆的需要,請做好備份工作,但這樣設定還不行,下次重啟mysql了,配置又恢復預設了,所以需在my.cnf中設定
expire_logs_days = 8
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22418990/viewspace-735924/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL:Redo & binlogMySql
- mysql binlog 刪除master- binlogMySqlAST
- Mysql的binlog原理MySql
- MySQL Binlog 介紹MySql
- MySql Binlog 初識MySql
- MySQL binlog日期解析MySql
- mysql的binlog格式MySql
- MySQL 的日誌:binlogMySql
- mysql清除binlog日誌MySql
- MySQL的binlog日誌MySql
- mysql清理binlog的方法MySql
- 清除MySQL Binlog日誌MySql
- Mysql Binlog的介紹MySql
- 【mysql】關於binlog格式MySql
- [MySQL binlog]徹底解析Mixed日誌格式的binlogMySql
- 【Mysql】從binlog中找出單個表的binlog資訊MySql
- 教你MySQL Binlog實用攻略MySql
- Mysql的redolog和binlogMySql
- mysql binlog詳細介紹MySql
- 【MySQL】如何快速執行 binlogMySql
- MySQL Binlog 事件介紹篇MySql事件
- mysql binlog日誌刪除MySql
- Mysql-binlog日誌-TMySql
- MySql Binlog 說明 & Canal 整合MySql的更新異常說明 & MySql Binlog 常用命令彙總MySql
- MySQL資料庫binlog解析神器-binlog2sql應用MySql資料庫
- 05、MySQL Case-MySQL binlog誤清除恢復MySql
- MySQL Binlog 解析工具 Maxwell 詳解MySql
- Mysql資料庫監聽binlogMySql資料庫
- 【MySQL】一、如何快速執行 binlogMySql
- mysql relay log和binlog 小結MySql
- MySQL binlog和redo的組提交MySql
- MySQL中binlog cache使用流程解惑MySql
- Mysql Binlog 定期清除指令碼(轉)MySql指令碼
- 雲伺服器:MySQL -- 關閉 binlog伺服器MySql
- MySQL 日誌系統 redo log、binlogMySql
- MySQL 通過 binlog 恢復資料MySql
- MySQL 透過 binlog 恢復資料MySql
- mysql閃回工具binlog2sqlMySql