下面講講關(guān)于MySQL binlog中三種事件類型XID_EVENT、ROTATE_EVENT及STOP_EVENT介紹,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL binlog中三種事件類型XID_EVENT、ROTATE_EVENT及STOP_EVENT介紹這篇文章你一定會有所受益。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比洱源網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式洱源網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋洱源地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
1、XID_EVENT
當(dāng)事務(wù)提交時,不論是statement還是row格式的binlog都會添加一個XID_EVENT作為事務(wù)的結(jié)束。該事件記錄了該事務(wù)的ID。在mysql進(jìn)行崩潰恢復(fù)時根據(jù)binlog中提交的情況來決定是否提交存儲引擎中prepared狀態(tài)的事務(wù)。
2、ROTATE_EVENT
當(dāng)binlog文件大小達(dá)到max_binlog_size參數(shù)設(shè)置的值或執(zhí)行flush logs命令時,binlog發(fā)生切換,這時會在當(dāng)前使用的binlog文件末尾添加一個ROTATE_EVENT事件,將下一個binlog文件的名稱和位置記錄到該事件中。
3、STOP_EVENT
當(dāng)MySQL服務(wù)停止時,會在當(dāng)前binlog文件尾添加一個STOP_EVENT事件表示數(shù)據(jù)庫的停止。該事件僅包括一個公有事件頭,沒有私有事件頭和事件體。只需要公有事件頭的event type就可以了。
4、代碼
Xid_log_event::write Log_event::write_header wrapper_my_b_safe_write(file, (uchar*) &xid, sizeof(xid)) write_footer(file))//checksum Rotate_log_event::write write_header(file, ROTATE_HEADER_LEN + ident_len) wrapper_my_b_safe_write(file, (uchar*) buf, ROTATE_HEADER_LEN) wrapper_my_b_safe_write(file, (uchar*) new_log_ident,(uint) ident_len)write_footer(file))
對于以上MySQL binlog中三種事件類型XID_EVENT、ROTATE_EVENT及STOP_EVENT介紹相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。