日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 烂泥_烂泥:学习mysql的binlog配置

發布時間:2025/5/22 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 烂泥_烂泥:学习mysql的binlog配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文首發于爛泥行天下。

1、基礎知識

日志是把數據庫的每一個變化都記載到一個專用的文件里,這種文件就叫做日志文件。mysql默認只開啟錯誤日志,因為過多的日志將會影響系統的處理性能。

在mysql5.0以前版本支持文本格式和二進制格式的日志,但是在mysql5.0后版本就只支持二進制格式的日志。因為二進制日志在性能、信息處理等方面有更多的優點。

2、啟用mysql二進制日志

mysql二進制日志由配置文件my.cnf的log-bin選項負責啟用的。

mysql服務器默認會在數據根目錄創建兩個新文件:XXX-bin.000001和XXX-bin.index。若配置選項沒有給出文件名,mysql將使用mysql-bin來命名這兩個文件,其中.index文件包含一份完整的日志文件清單。如下:

cat /etc/my.cnf

ll /usr/local/mysql/data/

cat /usr/local/mysql/data/mysql-bin.index

mysql會把用戶對所有數據庫的內容和結構的修改情況記入XXX-bin.n文件,但是不會記錄SELECT和沒有實際更新的UPDATE語句。

當然我們也可以同過相關命令查詢,mysql是否已經開啟binlog日志。如下:

show variables like 'log_%';

3、binlog日志文件的生成

當mysql停止或重啟時,服務器會把日志文件記入下一個日志文件,mysql會在重啟時生成一個新的日志文件,文件序號依次遞增。

如果日志文件超過max_binlog_size(在my.cnf文件中配置)系統變量配置的上限時,也會生成新的日志文件。

除此之外,如果在mysql命令中執行flush logs命令也會生成新的日志文件。

4、查看系統中的binlog日志

查看系統中的binlog日志,使用show master logs命令。如下:

show master logs;

5、查看binlog日志文件

mysql提供了mysqlbinlog命令來查看日志文件,在記錄每條變更日志的時候,日志文件都會把當前時間給記錄下來,以便進行數據庫恢復。如下:

mysqlbinlog mysql-bin.000001| more

6、使用binlog日志進行數據庫恢復

如果遇到災難事件,應該用最近一次制作的完整備份恢復數據庫,然后使用備份之后的binlog日志件把數據庫恢復到最接近現在的可用狀態。

使用binlog日志進行恢復時需要依次進行,即最早生成的日志文件要最先恢復。恢復數據的命令格式如下:

mysqlbinlog xxx-bin.000001|mysql -u root –p password dataname

有關使用binlog進行數據庫的恢復,可以看這篇文章《爛泥:通過binlog恢復mysql備份之前的數據》。

7、binlog命令行參數詳解

log-bin [=file_name] 此參數表示啟用binlog日志功能,并可以定制路徑名稱,默認為mysql-bin。

binlog_format 此參數配置binlog的日志格式,默認為mixed。

max_binlog_size此參數配置binlog的日志最大值,最大和默認值是1GB。

max_binlog_cache_size此參數表示binlog使用最大內存的數。

binlog-do-db=db_name 此參數表示只記錄指定數據庫的二進制日志。

binlog-ignore-db=db_name此參數表示不記錄指定的數據庫的二進制日志。

expire_logs_days 此參數表示binlog日志保留的時間,默認單位是天。

my.cnf配置文件有關binlog配置如下:

cat /etc/my.cnf |grep -v ^#|grep -v ^$

8、刪除binlog日志

8.1刪除部分binlog日志

刪除binlog部分日志,我們可以日志名稱和日志生成的時間來進行刪除。刪除命令如下:

purge {master|binary} logs to 'log_name';

根據日志名稱刪除,只刪除log_name之前的日志,log_name本身不會被刪除。

通過上圖我們可以看到,mysql-bin.000003之前的日志已經被全部刪除。

purge {master|binary} logs before 'date’;

根據日志生成的時間刪除,只刪除date之前的日志,date本身不會被刪除。

8.2刪除全部binlog日志

刪除之前所有的binlog日志,并重新生成新的binlog,后綴從000001開始。使用命令:

reset master;

總結

以上是生活随笔為你收集整理的mysql 烂泥_烂泥:学习mysql的binlog配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。