MySQL二進制日誌的管理

MySQL --Binary log

最近在查看監控服務器的時候發現,有個日誌文件居然有14G之多,查了下資料,介紹如下:

wKiom1LXT2vyyNpbAAHt1KbA6J0567.jpg

binary log,mysql中一個非常重要的部分,其主要作用有兩個:

1.做主從同步時用來保證masterslave一致

2.做備份還原用來保證數據庫的完整性

開啓binary log方法如下

# vi /etc/my.cnf

log-bin=master-bin
log-bin-index=master-bin.index

日誌的默認保存名稱是:mysql-bin.xxxxxx

默認索引名稱是:mysql-bin.index

這裏我們做了設置,索引名稱是:master-bin.index

這臺服務器mysqlyum默認安裝,日誌文件保存路徑是:/var/lib/mysql

 

.mysql的操作管理

 

1.刷新日誌

mysql > flush logs;

2.查看當然數據庫binlog信息

mysql > show binary logs;

+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.0000
41 | 149 | 
| mysql-bin.0000
42 | 149 | 
| mysql-bin.0000
43 | 106 | 
+------------------+-----------+

 

3.清除歷史log,保留最近的

mysql > purge binary logs to 'mysql-bin.000043';

 

4.查看本地binlog文件

ls -l /var/lib/mysql/ | grep bin.

-rw-rw----  1 mysql mysql       19 Jan 16 11:07 master-bin.index
-rw-rw----  1 mysql mysql  5875412 Jan 16 11:31 mysql-bin.000043

備份中清除日誌

# mysqldump --flush-logs --delete-master-logs

 

清理完成後效果

wKioL1LXT2yB0DKZAAHy0QugDZk233.jpg

MySQL –Binary log 腳本清理

考慮到日誌每天有300M左右的增長,每個月差不多有10G的日誌,手動管理確實麻煩;所以想採用腳本加crontab去自動管理,當然這臺服務器只是監控用,數據不是很重要,其實關閉binary logs就可以了,做腳本管理僅僅是練習

生產情況分析

1.數據庫服務器和應用(監控)在同一臺機器上

2.沒有主從互備

3.硬盤空間約1T

4.每個Binary logs大小是1G,每個月產生約10個日誌文件。

5.數據庫不大,壓縮後約2M

6.沒有其他服務器和這臺服務器有數據庫主從關係。

7.非核心設備

通過前面介紹我們瞭解Binary logs有兩個作用

1.主從互備時數據一致性使用,不需要考慮

2.數據恢復使用,需要考慮

結合以上信息,決定如下管理:

1.每個月清理一次,清理時僅保留最後5條日誌記錄.

2.清理前做一次數據庫備份,恢復使用.

3.數據庫備份文件存放在根目錄/backups/mysql下,用gzip壓縮,文件命令爲cacti-日期.sql.gz

4.數據庫文件備份文件保存1年(可以通過腳本或者手動操作)

Crontab文件配置

wKiom1L7GDLgecarAAAwTCXFiLg798.jpg

腳本寫法

wKioL1L7F_jziUPXAAOhNiy7BFI010.jpg

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章