第6節(jié):重點(diǎn)Event FORMAT_DESCRIPTION_EVENT/PREVIOUS_GTIDS_LOG_EVENT


一、FORMAT_DESCRIPTION_EVENT

1、FORMAT_DESCRIPTION_EVENT的作用

本Event是binary log的第一個(gè)Event。這個(gè)Event比較簡單,因?yàn)樗鼣y帶的數(shù)據(jù)都是固定的,沒有可變部分。其中包含了binary log的版本信息、MySQL的版本信息、Event_header的長度、以及每個(gè)Event type的固定部分的長度。

下面信息將會(huì)保存在從庫的內(nèi)存中:

  • 在從庫的內(nèi)存中保存主庫的信息,這個(gè)變量是Master_info.mi_description_event。

queue_event函數(shù)中case binary_log::FORMAT_DESCRIPTION_EVENT部分。

  • 將從庫的relay log的FORMAT_DESCRIPTION_EVENT記錄為和主庫相同,即更新Relay_log_info.rli_description_event。

Format_description_log_event::do_apply_event函數(shù)中如下片段:

    /* Save the information describing this binlog */
    copy_crypto_data(*rli->get_rli_description_event());
    const_cast<Relay_log_info *>(rli)->set_rli_description_event(this);

至少下面幾個(gè)地方都會(huì)讀取其中的信息:

  1. 每次SQL線程應(yīng)用Event的時(shí)候會(huì)獲取Event_header的長度和相應(yīng)Event固定部分的長度。
  2. IO線程啟動(dòng)的時(shí)候檢測(cè)版本,參考函數(shù)get_master_version_and_clock。
  3. 將信息寫入到relay log的開頭的FORMAT_DESCRIPTION_EVENT中。

它一定出現(xiàn)在binary log開頭,位置固定為‘#4’。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
支付 ¥1.50 繼續(xù)閱讀

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容