mysql binglog 二進制日志文件

1.MySQL Server 有四種類型的日志——Error Log、General Query Log、Binary Log 和 Slow Query Log。

? ?1.1.第一個是錯誤日志,記錄 mysqld 的一些錯誤。

? 1. 2.第二個是一般查詢?nèi)罩荆涗?mysqld 正在做的事情,比如客戶端的連接和斷開、來自客戶端每條 Sql Statement 記錄信息;如果你想準確知道客戶端到底傳了什么給服務(wù)端,這個日志就非常管用了,不過它非常影響性能。

? 1.3.第三種就是 Binlog 了,包含了一些事件,這些事件描述了數(shù)據(jù)庫的改動,如建表、數(shù)據(jù)改動等,也包括一些潛在改動,比如DELETE FROM ? ? ? ran WHERE bing = luan,然而一條數(shù)據(jù)都沒被刪掉的這種情況.

? ?1.4.第四個是慢查詢?nèi)罩荆涗浺恍┎樵儽容^慢的 SQL 語句——這種日志非常常用,主要是給開發(fā)者調(diào)優(yōu)用的。

2.通常情況 MySQL 是默認關(guān)閉 Binlog 的 所以要自己啟用binlog 啟用的過程就是修改配置文件my.cnf了。

? ?配置log-bin和log-bin-index的值,如果沒有則自行加上去.

? ? log-bin=master-bin? ? log-bin-index=master-bin.index ?這里的log-bin是指以后生成各 Binlog 文件的前綴,比如上述使用master-bin,那么文件就將會是master-bin.000001、master-bin.000002等。而這里的log-bin-index則指 binlog index 文件的名稱,這里我們設(shè)置為master-bin.index。

log_bin ?設(shè)置此參數(shù)表示啟用binlog功能,并指定路徑名稱

log_bin_index ?設(shè)置此參數(shù)是指定二進制索引文件的路徑與名稱

binlog_do_db ?此參數(shù)表示只記錄指定數(shù)據(jù)庫的二進制日志

binlog_ignore_db 此參數(shù)表示不記錄指定的數(shù)據(jù)庫的二進制日志

max_binlog_cache_size 此參數(shù)表示binlog使用的內(nèi)存最大的尺寸

binlog_cache_size 此參數(shù)表示binlog使用的內(nèi)存大小,可以通過狀態(tài)變量binlog_cache_use和binlog_cache_disk_use來幫助測試

binlog_cache_use:使用二進制日志緩存的事務(wù)數(shù)量?

binlog_cache_disk_use:使用二進制日志緩存但超過binlog_cache_size值并使用臨時文件來保存事務(wù)中的語句的事務(wù)數(shù)量

max_binlog_size ?Binlog最大值,最大和默認值是1GB,該設(shè)置并不能嚴格控制Binlog的大小,尤其是Binlog比較靠近最大值而又遇到一個比較大事務(wù)時,為了保證事務(wù)的完整性,不可能做切換日志的動作,只能將該事務(wù)的所有SQL都記錄進當前日志,直到事務(wù)結(jié)束

sync_binlog ?這個參數(shù)直接影響mysql的性能和完整性

sync_binlog=0:

當事務(wù)提交后,Mysql僅僅是將binlog_cache中的數(shù)據(jù)寫入Binlog文件,但不執(zhí)行fsync之類的磁盤??????? 同步指令通知文件系統(tǒng)將緩存刷新到磁盤,而讓Filesystem自行決定什么時候來做同步,這個是性能最好的。

sync_binlog=n,在進行n次事務(wù)提交以后,Mysql將執(zhí)行一次fsync之類的磁盤同步指令,同志文件系統(tǒng)將Binlog文件緩存刷新到磁盤。

Mysql中默認的設(shè)置是sync_binlog=0,即不作任何強制性的磁盤刷新指令,這時性能是最好的,但風險也是最大的。一旦系統(tǒng)繃Crash,在文件系統(tǒng)緩存中的所有Binlog信息都會丟失

binlog的刪除 ?binlog的刪除可以手工刪除或自動刪除

自動刪除binlog ?通過binlog參數(shù)(expire_logs_days )來實現(xiàn)mysql自動刪除binlog

手動刪除 mysql> reset master;? //刪除master的binlog

mysql> reset slave;??? //刪除slave的中繼日志

mysql> purge master logs before '2012-03-30 17:20:00';? //刪除指定日期以前的日志索引中binlog日志文件

mysql> purge master logs to 'binlog.000002';?? //刪除指定日志文件的日志索引中binlog日志文件

3. binlog 內(nèi)容

#170803 18:40:13 server id 2? end_log_pos 349718 CRC32 0x1f9bcdae Querythread_id=13931exec_time=0error_code=0SET TIMESTAMP=1501756813/*!*/;COMMIT/*!*/;# at 349718#170803 18:40:13 server id 2? end_log_pos 349807 CRC32 0xb104f75d Querythread_id=13931exec_time=0error_code=0SET TIMESTAMP=1501756813/*!*/;BEGIN/*!*/;# at 349807#170803 18:40:13 server id 2? end_log_pos 353501 CRC32 0xb1c9cef5 Querythread_id=13931exec_time=0error_code=0SET TIMESTAMP=1501756813/*!*/;UPDATE `cmf_theme_file`? SET `theme`='simpleboot3',`action`='portal/Page/index',`file`='portal/contact',`name`='聯(lián)系我們頁',`more`='{\"vars\":{\"baidu_map_info_window_text\":{\"title\":\"\\u767e\\u5ea6\\u5730\\u56fe\\u6807\\u6ce8\\u6587\\u5b57\",\"name\":\"baidu_map_info_window_text\",\"value\":\"ThinkCMF\\u5730\\u5740\\uff1a\\u4e0a\\u6d77\\u5e02\\u5f90\\u6c47\\u533a\\u659c\\u571f\\u8def2601\\u53f7<\\/span>\",\"type\":\"text\",\"tip\":\"\\u767e\\u5ea6\\u5730\\u56fe\\u6807\\u6ce8\\u6587\\u5b57,\\u652f\\u6301\\u7b80\\u5355html\\u4ee3\\u7801\",\"rule\":[]},\"company_location\":{\"title\":\"\\u516c\\u53f8\\u5750\\u6807\",\"value\":\"\",\"type\":\"location\",\"tip\":\"\",\"rule\":{\"require\":true}},\"address_cn\":{\"title\":\"\\u516c\\u53f8\\u5730\\u5740\",\"value\":\"\\u4e0a\\u6d77\\u5e02\\u5f90\\u6c47\\u533a\\u659c\\u571f\\u8def0001\\u53f7\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"address_en\":{\"title\":\"\\u516c\\u53f8\\u5730\\u5740\\uff08\\u82f1\\u6587\\uff09\",\"value\":\"NO.0001 Xie Tu Road, Shanghai China\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"email\":{\"title\":\"\\u516c\\u53f8\\u90ae\\u7bb1\",\"value\":\"catman@thinkcmf.com\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"phone_cn\":{\"title\":\"\\u516c\\u53f8\\u7535\\u8bdd\",\"value\":\"021 1000 0001\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"phone_en\":{\"title\":\"\\u516c\\u53f8\\u7535\\u8bdd\\uff08\\u82f1\\u6587\\uff09\",\"value\":\"+8621 1000 0001\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"qq\":{\"title\":\"\\u8054\\u7cfbQQ\",\"value\":\"478519726\",\"type\":\"text\",\"tip\":\"\\u591a\\u4e2a QQ\\u4ee5\\u82f1\\u6587\\u9017\\u53f7\\u9694\\u5f00\",\"rule\":{\"require\":true}}}}',`config_more`='{\"vars\":{\"baidu_map_info_window_text\":{\"title\":\"\\u767e\\u5ea6\\u5730\\u56fe\\u6807\\u6ce8\\u6587\\u5b57\",\"name\":\"baidu_map_info_window_text\",\"value\":\"ThinkCMF\\u5730\\u5740\\uff1a\\u4e0a\\u6d77\\u5e02\\u5f90\\u6c47\\u533a\\u659c\\u571f\\u8def2601\\u53f7<\\/span>\",\"type\":\"text\",\"tip\":\"\\u767e\\u5ea6\\u5730\\u56fe\\u6807\\u6ce8\\u6587\\u5b57,\\u652f\\u6301\\u7b80\\u5355html\\u4ee3\\u7801\",\"rule\":[]},\"company_location\":{\"title\":\"\\u516c\\u53f8\\u5750\\u6807\",\"value\":\"\",\"type\":\"location\",\"tip\":\"\",\"rule\":{\"require\":true}},\"address_cn\":{\"title\":\"\\u516c\\u53f8\\u5730\\u5740\",\"value\":\"\\u4e0a\\u6d77\\u5e02\\u5f90\\u6c47\\u533a\\u659c\\u571f\\u8def0001\\u53f7\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"address_en\":{\"title\":\"\\u516c\\u53f8\\u5730\\u5740\\uff08\\u82f1\\u6587\\uff09\",\"value\":\"NO.0001 Xie Tu Road, Shanghai China\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"email\":{\"title\":\"\\u516c\\u53f8\\u90ae\\u7bb1\",\"value\":\"catman@thinkcmf.com\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"phone_cn\":{\"title\":\"\\u516c\\u53f8\\u7535\\u8bdd\",\"value\":\"021 1000 0001\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"phone_en\":{\"title\":\"\\u516c\\u53f8\\u7535\\u8bdd\\uff08\\u82f1\\u6587\\uff09\",\"value\":\"+8621 1000 0001\",\"type\":\"text\",\"tip\":\"\",\"rule\":{\"require\":true}},\"qq\":{\"title\":\"\\u8054\\u7cfbQQ\",\"value\":\"478519726\",\"type\":\"text\",\"tip\":\"\\u591a\\u4e2a QQ\\u4ee5\\u82f1\\u6587\\u9017\\u53f7\\u9694\\u5f00\",\"rule\":{\"require\":true}}}}',`description`='聯(lián)系我們頁模板文件',`is_public`=0,`list_order`=10? WHERE? `theme` = 'simpleboot3'? AND `file` = 'portal/contact'

/*!*/;

# at 353501

#170803 18:40:13 server id 2? end_log_pos 353591 CRC32 0xc21eaf1c Query thread_id=13931 exec_time=0 error_code=0

SET TIMESTAMP=1501756813/*!*/;

COMMIT

/*!*/;

# at 353591

#170803 18:40:13 server id 2? end_log_pos 353680 CRC32 0xa04760af Query thread_id=13931 exec_time=0 error_code=0

SET TIMESTAMP=1501756813/*!*/;

BEGIN

位置

位于文件中的位置,“at 353591”說明“事件”的起點,是以第353591字節(jié)開始;“end_log_pos 353680”說明以第353680字節(jié)結(jié)束

時間戳

事件發(fā)生的時間戳:“170803 18:40:13”

事件執(zhí)行時間

事件執(zhí)行花費的時間:"exec_time=0"

錯誤碼

錯誤碼為:“error_code=0”

服務(wù)器的標識

服務(wù)器的標識id:“server id 2”

4.mysql binlog 事件

QUERY_EVENT?

二進制日志中最常見的事件 ?QUERY_EVENT以文本的形式來記錄事務(wù)的操作。

FORMAT_DESCRIPTION_EVENT 它是binlog文件中的第一個事件,而且,該事件只會在binlog中出現(xiàn)一次。MySQL根據(jù)FORMAT_DESCRIPTION_EVENT的定義來解析其它事件。它通常指定了MySQL Server的版本,binlog的版本,該binlog文件的創(chuàng)建時間

ROWS_EVENT?

對于ROW格式的binlog,所有的DML(數(shù)據(jù)操作語言)語句都是記錄在ROWS_EVENT中。ROWS_EVENT分為三種:WRITE_ROWS_EVENT,UPDATE_ROWS_EVENT,DELETE_ROWS_EVENT,分別對應(yīng)insert,update和delete操作。

對于insert操作,WRITE_ROWS_EVENT包含了要插入的數(shù)據(jù)

對于update操作,UPDATE_ROWS_EVENT不僅包含了修改后的數(shù)據(jù),還包含了修改前的值。

對于delete操作,僅僅需要指定刪除的主鍵(在沒有主鍵的情況下,會給定所有列)

對于QUERY_EVENT事件,是以文本形式記錄DML操作的。而對于ROWS_EVENT事件,并不是文本形式,所以在通過mysqlbinlog查看基于ROW格式的binlog時,需要指定-vv --base64-output=decode-rows。

XID_EVENT

在事務(wù)提交時,不管是STATEMENT還是ROW格式的binlog,都會在末尾添加一個XID_EVENT事件代表事務(wù)的結(jié)束。該事件記錄了該事務(wù)的ID,在MySQL進行崩潰恢復時,根據(jù)事務(wù)在binlog中的提交情況來決定是否提交存儲引擎中狀態(tài)為prepared的事務(wù)。

ROTATE_EVENT

當binlog文件的大小達到max_binlog_size的值或者執(zhí)行flush logs命令時,binlog會發(fā)生切換,這個時候會在當前的binlog日志添加一個ROTATE_EVENT事件,用于指定下一個日志的名稱和位置。

STOP_EVENT

當MySQL數(shù)據(jù)庫停止時,會在當前的binlog末尾添加一個STOP_EVENT事件表示數(shù)據(jù)庫停止。

備注:?

sql語句分為3類 (DML DDL ?DCL)?

DDL is Data Definition Language statements. Some examples:數(shù)據(jù)定義語言,用于定義和管理SQL數(shù)據(jù)庫中的所有對象的語言

1.CREATE - to create objects in the database 創(chuàng)建

2.ALTER - alters the structure of the database 修改

3.DROP - delete objects from the database 刪除

4.TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed

DML is Data Manipulation Language statements. Some examples:數(shù)據(jù)操作語言,SQL中處理數(shù)據(jù)等操作統(tǒng)稱為數(shù)據(jù)操縱語言

1.SELECT - retrieve data from the a database 查詢

2.INSERT - insert data into a table 添加

3.UPDATE - updates existing data within a table 更新

4.DELETE - deletes all records from a table, the space for the records remain 刪除

DCL is Data Control Language statements. Some examples:數(shù)據(jù)控制語言,用來授予或回收訪問數(shù)據(jù)庫的某種特權(quán),并控制數(shù)據(jù)庫操縱事務(wù)發(fā)生的時間及效果,對數(shù)據(jù)庫實行監(jiān)視等

COMMIT - save work done 提交

SAVEPOINT - identify a point in a transaction to which you can later roll back 保存點

ROLLBACK - restore database to original since the last COMMIT 回滾

SET TRANSACTION - Change transaction options like what rollback segment to use 設(shè)置當前事務(wù)的特性,它對后面的事務(wù)沒有影響

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內(nèi)容