mysql清理binlog
做了mysql主從也有一段時間了,這兩天檢查磁盤空間情況,發(fā)現(xiàn)放數(shù)據(jù)庫的分區(qū)磁盤激增了40多G,一路查看下來,發(fā)現(xiàn)配置好主從復(fù)制以來到現(xiàn)在的binlog就有40多G,原來根源出在這里,查看了一下my.cnf,看到binlog的size是1G就做分割,但沒有看到刪除的配置,在mysql里show了一下variables,
mysql> show variables like '%log%';
查到了
| expire_logs_days | 0 |
這個默認(rèn)是0,也就是logs不過期,這個是一個global的參數(shù),所以需要執(zhí)行
set global expire_logs_days=8;
這樣8天前的log就會被刪除了,如果有回復(fù)的需要,請做好備份工作,但這樣設(shè)置還不行,下次重啟mysql了,配置又恢復(fù)默認(rèn)了,所以需在my.cnf中設(shè)置
expire_logs_days = 8
這樣重啟也不怕了,另外還有一種手動的刪除binlog的方法:
想要恢愎數(shù)據(jù)庫以前的資料,執(zhí)行:show binlog events;
由于數(shù)據(jù)量很多,查看起來很麻煩,光打開個文件就要閃半天,所以應(yīng)該適當(dāng)刪除部分可不用的日志。
并且如果使用的時間足夠長的話,會把我的硬盤空間都給吃掉
1.登錄系統(tǒng),/usr/bin/mysql
使用mysql查看日志
mysql> show binary logs;
+—————-+———–+
| Log_name | File_size |
+—————-+———–+
| ablelee.000001 | 150462942 |
| ablelee.000002 | 120332942 |
| ablelee.000003 | 141462942 |
+—————-+———–+
2.刪除bin-log(刪除ablelee.000003之前的而沒有包含ablelee.000003)
mysql> purge binary logs to ‘a(chǎn)blelee.000003′;
Query OK, 0 rows affected (0.16 sec)
3. 查詢結(jié)果(現(xiàn)在只有一條記錄了.)
mysql> show binlog events\G
*************************** 1. row ***************************
Log_name: ablelee.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)
(ablelee.000001和ablelee.000002已被刪除)
mysql> show binary logs;
+—————-+———–+
| Log_name | File_size |
+—————-+———–+
| ablelee.000003 | 106 |
+—————-+———–+
1 row in set (0.00 sec)
(刪除的其它格式運用!)
PURGE {MASTER | BINARY} LOGS TO ‘log_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’
用于刪除列于在指定的日志或日期之前的日志索引中的所有二進(jìn)制日志。這些日志也會從記錄在日志索引文件中的清單中被刪除,這樣被給定的日志成為第一個。
例如:
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是同義詞。
如果您有一個活性的從屬服務(wù)器,該服務(wù)器當(dāng)前正在讀取您正在試圖刪除的日志之一,則本語句不會起作用,而是會失敗,并伴隨一個錯誤。不過,如果從屬服務(wù)器是休止的,并且您碰巧清理了其想要讀取的日志之一,則從屬服務(wù)器啟動后不能復(fù)制。當(dāng)從屬服務(wù)器正在復(fù)制時,本語句可以安全運行。您不需要停止它們。
要清理日志,需按照以下步驟:
1. 在每個從屬服務(wù)器上,使用SHOW SLAVE STATUS來檢查它正在讀取哪個日志。
2. 使用SHOW MASTER LOGS獲得主服務(wù)器上的一系列日志。
3. 在所有的從屬服務(wù)器中判定最早的日志。這個是目標(biāo)日志。如果所有的從屬服務(wù)器是更新的,這是清單上的最后一個日志。
4. 制作您將要刪除的所有日志的備份。(這個步驟是自選的,但是建議采用。)
5. 清理所有的日志,但是不包括目標(biāo)日志。
關(guān)鍵詞;mysql 清理 日志
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003