您好,登錄后才能下訂單哦!
本篇內容介紹了“MySQL中雙主情況下跳過Event的方式是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
雙主情況下跳過相同server id Event的方式:
IO線程 通過對比SERVER_ID 進行跳過操作
{ mi->set_master_log_pos(mi->get_master_log_pos() + inc_pos); memcpy(rli->ign_master_log_name_end, mi->get_master_log_name(), FN_REFLEN); DBUG_ASSERT(rli->ign_master_log_name_end[0]); rli->ign_master_log_pos_end= mi->get_master_log_pos(); }
SQL線程構造一個Rotate_log_event
if (rli->ign_master_log_name_end[0]) { /* We generate and return a Rotate, to make our positions advance */ DBUG_PRINT("info",("seeing an ignored end segment")); ev= new Rotate_log_event(rli->ign_master_log_name_end, 0, rli->ign_master_log_pos_end, exec_relay_log_event Rotate_log_event::DUP_NAME); rli->ign_master_log_name_end[0]= 0; mysql_mutex_unlock(log_lock);exec_relay_log_event if (unlikely(!ev)) { errmsg= "Slave SQL thread failed to create a Rotate event " "(out of memory?), SHOW SLAVE STATUS may be inaccurate"; goto err; } ev->server_id= 0; // don't be ignored by slave SQL thread DBUG_RETURN(ev); }
這樣這些Event不會寫入到relay log,SQL線程也不會讀取,同時pos 也會做相應的增加。
“MySQL中雙主情況下跳過Event的方式是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。