二十二 二進位制日誌記錄方式

2022-07-18 19:24:07 字數 1046 閱讀 8350

二進位制日誌記錄方式

ddl: 資料庫定義語言

dcl: 資料庫控制語言

dml: 資料庫操縱語言

對於ddl記錄的是sql語句,如create、alter、drop等;

對於dcl記錄的是sql語句,如設定或更改資料庫使用者或角色許可權的語句等;

對於dml記錄的是已提交的事務,如如select、update、insert、delete等;

三種記錄方式

sbr模式

以sql語句形式記錄到日誌中。

rbr模式

行模式,記錄資料行的變化,生產中常用。

mbr混合模式,由mysql自己決定使用什麼模式。

三種記錄模式的用法

$ vim /etc/my.cnf

[mysqld]

...binlog_format=statement #可選值還有row,mixed

面試題:sbr和rbr什麼區別?怎麼選擇?

sbr模式:可讀性較強,對於範圍更新語句記錄的日誌量少,但是可能會出現記錄不準確的情況

rbr模式: 可讀性較弱,對於範圍更新語句記錄的日誌量較大,會記錄行資料變化,但不會出現記錄錯誤

生產環境中主要使用rbr模式,因為對資料要求準確率高,也是預設模式。

sbr模式說明

因為sbr模式記錄的是sql語句到日誌中,所以對於範圍更新操作,例如如下述操作,只會記錄一條sql語句,但rbr模式下記錄的是id>5所有資料行變化的內容,所以日誌量會很大。

mysql> update test set name='zs' where id>5;
sbr模式記錄不準確的情況如下

#now()函式記錄的是執行sql語句時的當前時間,如果記錄到日誌中再通過日誌恢復就是日誌恢復的時間

insert into test values(1,'zs',now());

學習來自:老男孩深標dba課程 第六章 日誌管理

每日程式設計(二十二) 二叉樹

題目描述 給定乙個二叉搜尋樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉搜尋樹 root 6,2,8,0,4,7,9,null,null,3,5 示例 1 輸入 root 6,2,8,0,4,7,9,null,null,3,5 p 2,q 8 輸出 6 解釋 節點 2 和節點 8 的最...

十二進位制轉二進位制 2018

1 逐個輸出對應的十進位制,用空格隔開 高位到地位 10 2 輸出對應的十進位制數 10 3 轉為二進位制,用4個位元組表示 10 例如 輸入a2 輸出 10 2 12200000000 00000000 00000000 01111010 思路 1 利用transfer char ch 將單個字元...

mysql 二進位制日誌

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