MySQL的二進制日志

MySQL的二進制日志是主從復制的重要組成部分
開啟日志的變量為log_bin
在配置文件中添加下面配置

[mysqld]
log_bin =mysql-bin

配置的類型
statement
row
mixed
binlog_format = row|statement|mixed
statement模式
記錄使數(shù)據(jù)產(chǎn)生變化的SQL語句,行數(shù)據(jù)修改和表格結構的修改,觸發(fā)器的變化等等。
由于只記錄命令行和相關信息,所以日志量較小,但對于某些不確定的函數(shù)執(zhí)行時候,可能會產(chǎn)生主從不一致的情況,如CURRENTTIME()函數(shù),UUID()函數(shù)
row模式
記錄每一條變化的數(shù)據(jù)變更記錄,然后在從機器上進行重放,是最安全的模式,但是在修改大量語句時候可能會產(chǎn)生大量的日志,浪費磁盤和網(wǎng)絡IO,
在mysql5.6之后,加入了參數(shù)binlog_row_image來緩解這個問題,默認為FULL。
mysql> show variables like "binlog_row_image";
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| binlog_row_image | FULL |
+------------------+-------+
1 row in set (0.00 sec)

FULL為默認值, 意思是記錄一行紀錄里面的所有內容, 無論該列是否被修改。
MINIMAL僅記錄被修改的列, 這樣就可以大大減少記錄量。
NOBLOB和FULL類型相似, 區(qū)別在于在TEXT和BLOB類型無更新時不會記錄。

mixed模式
存在不確定函數(shù)時候,使用statement,其他時候使用row模式記錄,雖然看似集合了兩種模式的優(yōu)點,但是個人并不推薦使用。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • MySQL日志文件系統(tǒng)的組成 錯誤日志:記錄啟動,停止MySQL時出現(xiàn)的問題。 通用日志:記錄建立的客戶端連接和執(zhí)...
    clickdiff閱讀 603評論 0 1
  • 一、二進制日志及其作用 定義: MySQL的二進制日志記錄的是所有使mysql數(shù)據(jù)庫的數(shù)據(jù)發(fā)生變更的操作信息(事件...
    冷若秋楓閱讀 1,659評論 0 3
  • 該篇文章來源于線上案例結合官方文檔翻譯和自己理解。 ERROR 1418 (HY000): This functi...
    大西帥宸閱讀 6,633評論 0 5
  • 前夢難猜,今夕成真。更相逢也似流云。 休言來世,莫怨緣因。對 窗前月,燈前影,面前人。 何妨痛飲,平生一醉,任逍遙...
    疏影橫笛a閱讀 547評論 4 14
  • 從明天起,做一個幸福的人 喂馬,劈柴,周游世界 從明天起,關心糧食和蔬菜 我有一所房子,面朝大海,春暖花開 ...
    燈光下的魚影閱讀 308評論 2 2

友情鏈接更多精彩內容