More  

小編的世界 優質文選 資料

BINLOG與數據恢複


2021年10月25日 - 資料小編 卷心菜 
   

卷心菜

一、Binlog日志

Binlog日志是mysql的二進制日志重要日志,特別是項目中是必須要做好應用的;二進制日志,也就是我們常說的binlog。二進制日志記錄了MySQL所有修改數據庫的操作,然後以二進制的形式記錄日志在日志文件中,其中還包括沒調語句所執行的時間和消耗的資源,以及相關的事務信息。

1、主要作用:

以二進制形式記錄更改數據庫的SQL語句(insert,update,drop,alter等)。用於MySQL主從複制。增量數據備份及恢複。

2、配置方式

server-id = 1 # 後續講主從的時候解釋

log-bin = mysql-bin # binlog日志文件名

log-bin-index = binlog.index # binlog.index日志文件的索引文件

啟用該選項數據庫性能降低1%,但保障數據庫完整性,對於重要數據庫值得以性能換完整

3、Binlog日志三種形式

show variables like ‘%binlog%’; 如下,裏面有binlog_format相關信息可以進行配置。

設置:binlog_format = mixed

Statement :每一條會修改數據的sql都會被記錄在binlog中 ROW :不設置sql語句上下文相關信息,僅保存哪條記錄被修改 MiXED :是以上兩種level的混合使用。

一般的語句修改使用Statement格式保存binlog,如一些函數,statement無法完成主從複制的操作,則采用ROW格式保存binlog。mysql會根據執行的每一條具體的sql語句來區分對待記錄的日志形式,也就是從Statement和ROW中之間選擇一種。新版本的mysql中對ROW模式也做了優化,並不是所有的操作都會以ROW格式記錄,像遇到表結構變更的時候就會以Statement模式來記錄,至於update和delete等修改數據的語句還是會記錄所有行的變更。

4、Binlog日志的常用命令

SHOW BINARY LOGS;查看所有二進制文件信息

SHOW MASTER STATUS; 查看最新二進制文件

mysql每一次重啟都會創建一個新的binlog日志,如下:

show binlog events。用於在二進制日志中顯示事件help show binlog events; --獲取幫助信息show binlog eventsG;默認是第一個binlog日志

  大家在看