深入淺出MySQL(十一)關於mysql裏面的bin-log日誌

mysql裏面的bin-log日誌,相信大家都有過相應的瞭解,但是對於bin-log日誌而言,具體的內容是做什麼的,今天小編特意抽空學習了一下,下邊是我的筆記心得。
主從同步的一個基本原理
MySQL的二進制日誌可以說是MySQL最重要的日誌了,它記錄了所有的DDL和DML(除了數據查詢語句)語句,以事件形式記錄,還包含語句所執行的消耗的時間,MySQL的二進制日誌是事務安全型的。
由於在主從架構中,master將相應的sql信息通過Replication寫入到了bin-log文件當中,然後slaver的io線程讀取master的日誌內容,並將裏面的內容寫入到寫入到 Slave 端的Relay Log,sql線程會監控到Relay Log相應的內容並且進行讀取,達到相應的一個主從數據同步的模式。
mysql的binlog日誌除了我們常說的這個主從同步功能以外,還能爲我們的數據庫備份提供一定的幫助。

常用binlog日誌操作命令
1.查看所有binlog日誌列表

 mysql> show master logs;

2.查看master狀態,即最後(最新)一個binlog日誌的編號名稱,及其最後一個操作事件pos結束點(Position)值

  mysql> show master status;

3.刷新log日誌,自此刻開始產生一個新編號的binlog日誌文件

mysql> flush logs;
  注:每當mysqld服務重啓時,會自動執行此命令,刷新binlog日誌;在mysqldump備份數據時加 -F 選項也會刷新binlog日誌;

4.重置(清空)所有binlog日誌

 mysql> reset master;

我們登錄自己的mysql服務器,在確認log-bin配置開啓之後,使用mysql自帶的mysqlbinlog工具進行日誌文件的查看(mysql的binlog日誌文件通過vi,cat是無法查看的)
在這裏插入圖片描述
這裏面正好有一段相應的write_rows的插入數據記錄,根據相應的end_log_pos指標,我們可以記住相應的pos數值,然後進入mysql服務裏面進行詳細日誌文件的閱讀
通過相應的mysql-binlog閱讀命令,我們可以去查詢相關的日誌記錄:
這裏需要結合以下相應的命令進行查看:

mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
選項解析:
           IN 'log_name'   指定要查詢的binlog文件名(不指定就是第一個binlog文件)
           FROM pos        指定從哪個pos起始點開始查起(不指定就是從整個文件首個pos點開始算)
           LIMIT [offset,] 偏移量(不指定就是0)
           row_count       查詢總條數(不指定就是所有行)

在這裏插入圖片描述
注意,這裏要求起始點位置是正確的offset才能使得命令生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章