MySQL之二進位制日誌

2022-08-30 20:06:13 字數 1266 閱讀 1921

一、binlog日誌格式

根據日誌定義的格式不一樣,可以分為statement格式、row格式或者mixed格式

mysql5.6----》

| binlog_format | statement |

mysql5.7---》

| binlog_format | row |

理解三種不同的格式

a: statement格式

說明:基於語句的,記錄操作的sql語句

優點:缺點:

(以上格式不推薦使用,但是在mysql5.7以前都是預設的格式)

b: row格式

說明: 記錄操作的每一行資料

優點:缺點:

(推薦使用)

從mysql5.7之後,預設的格式為row格式

table_map: 記錄表的元資料資訊 

rows_event分為三種:write_rows_event,update_rows_event,delete_rows_event,分別對應insert,update和delete操作。

[root@node8 m_data]# mysqlbinlog master-bin.000004 -vv

### insert into `mydb`.`parent`

### set

### @1=10 /* int meta=0 nullable=1 is_null=0 */

### insert into `mydb`.`parent`

### set

### @1=20 /* int meta=0 nullable=1 is_null=0 */

### insert into `mydb`.`parent`

### set

### @1=30 /* int meta=0 nullable=1 is_null=0 */

@1表示列1的值

c: mixed格式

說明:混合使用row和statement格式,對ddl記錄會使用statement,對於table裡的行操作會記錄row格式

如果是innodb表,事務級別為read committed 或者 read uncommitted日誌級別只能使用row格式

(一般不推薦使用mixed格式)

MySQL日誌之二進位制日誌binlog

mysql與oracle等資料庫不同,redo log不會作為歸檔,僅做failover等作用 mysql引用了binlog來實現歸檔日誌,提供複製 恢復 審計功能。在mysql中,redo log和binlog有以下三點不同 binlog是記錄所有資料庫結構變更 例如create alter ta...

mysql 二進位制日誌

如果mysql 伺服器啟用了二進位制日誌,你可以使用mysqlbinlog工具來恢復從指定的時間點開始 例如,從你最後一次備份 直到現在或另乙個指定的時間點的資料。mysqlbinlog 用於處理二進位制日誌檔案的實用工具 要想從二進位制日誌恢復資料,你需要知道當前二進位制日誌檔案的路徑和檔名。一般...

mysql 二進位制日誌

1.日誌型別 二進位制日誌記錄了所有對mysql資料庫的修改事件,包括增刪改事件和對錶結構的修改事件。2.配置使用二進位制日誌 在my.ini 配置 log bin mysql bin 3.二進位制日誌格式 基於段的日誌格式 binlog format statement 記錄了操作的sql語句。優...