binlog作?
binlog的主要作?是記錄數(shù)據(jù)庫中表的更改,它只記錄改變數(shù)據(jù)的sql最盅,不改變數(shù)據(jù)的sql不會(huì)寫?媒殉,?如select語句?般不會(huì)被記錄交播,因?yàn)樗麄儾粫?huì)對(duì)數(shù)據(jù)產(chǎn)?任何改動(dòng)。??個(gè)實(shí)際的場(chǎng)景看下binlog產(chǎn)?的過程蝇裤,準(zhǔn)備sql:
create table test(text varchar(20)); insert into test values ('test_text'); select * from test; flush logs;
查看binlog
show binlog events in 'binlog.000029';
顯示的結(jié)果如下:
另外廷支,也可以使?mysqlbinlog?具來查看binlog的內(nèi)容:
show variables like 'log_%'; #查看?志?錄 mysqlbinlog --short-form --force-if-open --base64-output=never /usr/local/var/mysql/binlog.000029
從?志我們可以看到執(zhí)?了創(chuàng)建表的語句以及?個(gè)Format_desc頭和Ratate輪換事件,這個(gè)我們會(huì)在后?講到栓辜,先看?個(gè)字段代表的含義恋拍。
Log_name代表?志?件的名稱,?如我這?的查詢是直接查詢binlog.000029藕甩,默認(rèn)的寫法是showbinlog events芝囤,但是這樣只會(huì)查詢到第?個(gè)binlog,并不是當(dāng)前激活狀態(tài)的binlog,如果你不知道binlog有哪些悯姊,可以?命令:
show binary logs; #查看binlog列表
show master status; #查看最新的binlog
Pos代表?件開始的位置羡藐。
Event_type代表事件的類型。
Server_id是創(chuàng)建事件的服務(wù)器ID悯许。
End_log_pos代表事件在?件中的結(jié)束位置仆嗦,以上?為例,第?次查詢的結(jié)束位置是723先壕,第?次insert
之后?件的開始位置就是從723開始瘩扼。
Info代表事件信息,是?段可讀的?本內(nèi)容垃僚。