MySQL二進位日誌

來源:互聯網
上載者:User

標籤:mysql二進位日誌

二進位日誌相關的伺服器變數:

sql_log_bin = {ON|OFF}   是否記錄二進位日誌。啟用二進位記錄日誌,則這項必須是ON

有時候,我們想執行的某些語句不要同步到slave上,可以執行set sql_log_bin=OFF;暫時關閉二進位記錄功能。操作完後再啟用二進位日誌功能即可。

sql_log_off={ON|OFF}    用於控制是否禁止將一般查詢日誌類資訊記錄進查詢記錄檔。預設為OFF,表示不禁止記錄功能。使用者可以在會話層級修改此變數的值,但其必須具有SUPER許可權。作用範圍為全域和會話層級,屬動態變數。

log_bin = mysql-bin  記錄的檔案位置。通常為資料所在的目錄

binlog_format = {MIXED|row|statement}  二進位日誌的記錄格式

max_binlog_size = 1073741824   二進位記錄檔的單檔案上限 (單位:位元組) 

【超出則自動滾動日誌。注意: (1) 到達最大值會自動滾動  (2) 檔案達到上限時的大小未必為指定的精確值】

max_binlog_cache_size = 18446744073709547520

max_binlog_stmt_cache_size = 18446744073709547520   # 非同步寫入磁碟的記錄檔大小

sync_binlog = 0|1    設定多久同步一次二進位日誌至磁碟檔案中,0表示不同步,任何正數值都表示對二進位每多少次寫操作之後同步一次。當autocommit的值為1時,每條語句的執行都會引起二進位日誌同步,否則,每個事務的提交會引起二進位日誌同步。




二進位日誌的查看命令:

mysqlbinlog

-j, --start-position=#:從指定的事件位置查看

--stop-position=#:只顯示到指定的事件位置

--start-datetime="YYYY-MM-DD hh:mm:ss"

--stop-datetime="YYYY-MM-DD hh:mm:ss"


例如:

mysqlbinlog -uroot -h 172.16.20.71 -p passwd /data/mysql/mysql-bin.000008  [訪問遠端資料庫]

mysqlbinlog --start-position=515 --stop-position=616  /data/mysql/mysql-bin.000008

mysqlbinlog -uroot -proot /data/nysql/mysql-bin.000060 --start-datetime="2016-04-11 00:00:01" --stop-datetime="2016-04-11 23:59:59"

mysqlbinlog -uroot -proot --database=Mobile /data/mysql/mysql-bin.000008  --start-datetime="xxx" --stop-datetime="xxx" # 僅列出Mobile的相關二進位日誌


說明:如果在備份時候報錯 “‘Sanity check failed‘, Could not read entry at offset 1009: Error in log format or read error.” 這種情況是由於mysqlbinlog的版本和MySQL伺服器的版本不一樣導致的,一般是因為安裝過多個版本的MySQL系統將mysqlbinlog識別成了老的版本,因此只要用mysqlbinlog的全域路徑即可。


二進位日誌事件的格式:

# at 328

#151105 16:31:40 server id 1  end_log_pos 431 Querythread_id=1  exec_time=0  error_code=0

use `mydb`/*!*/;

SET TIMESTAMP=1446712300/*!*/;

CREATE TABLE tb1  (id int, name char (30) ) 

/*!*/;


事件發生的日期和時間:151105 16:31:40

事件發生的伺服器標識:server id 1 【在雙主模型上,可用來識別是否是自己曾發出去的日誌,避免死迴圈】

事件的結束位置:end_log_pos 431

事件的類型:Query

事件發生時所在伺服器執行此事件的線程的ID:thread_id=1

語句的時間戳記與將其寫入二進位檔案中的時間差:exec_time=0

錯誤碼:error_code=0

事件內容:


GTID:Global Transaction ID;  全域事務ID

專屬屬性:GTID


清理二進位日誌的方法:

> show binary logs;

> purge binary logs to ‘binlog.000030‘;



MySQL二進位日誌

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.