【MySQL】MySQL5.7傳統(tǒng)復(fù)制切換為GTID復(fù)制

前言:最近還是在做MariaDB10.1.12升級為MySQL5.7的升級方案,其中有一個環(huán)節(jié)涉及到傳統(tǒng)復(fù)制到GTID復(fù)制的在線切換,本文就介紹下如何是現(xiàn)在線切換。

一、參數(shù)解析

下面對GTID_MODE變量如下解釋:

解釋
OFF 新事務(wù)是非GTID, Slave只接受不帶GTID的事務(wù),傳送來GTID的事務(wù)會報錯
OFF_PERMISSIVE 新事務(wù)是非GTID, Slave即接受不帶GTID的事務(wù)也接受帶GTID的事務(wù)
ON_PERMISSIVE 新事務(wù)是GTID, Slave即接受不帶GTID的事務(wù)也接受帶GTID的事務(wù)
ON 新事務(wù)是GTID, Slave只接受帶GTID的事務(wù)

我們在更改GTID_MODE時不可直接跳躍更改,否則會提示報錯

root@localhost [xucl]>set global gtid_mode=ON;
ERROR 1788 (HY000): The value of @@GLOBAL.GTID_MODE can only be changed one step at a time: OFF <-> OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON. Also note that this value must be stepped up or down simultaneously on all servers. See the Manual for instructions.

二、在線更改

1.將enforce_gtid_consistency設(shè)置為WARNING,主庫從庫都要設(shè)置,無先后順序。

set @@global.enforce_gtid_consistency=warn;

注意:執(zhí)行完這條語句后,如果出現(xiàn)GTID不兼容的語句用法,在錯誤日志會記錄相關(guān)信息,那么需要調(diào)整應(yīng)該程序避免不兼容的寫法,直到完全沒有產(chǎn)生不兼容的語句,可以通過應(yīng)用程序去排查所有的sql,也可以設(shè)置后觀察錯誤日志一段時間,建議觀察過,這一步非常重要。

2.將ENFORCE_GTID_CONSISTENCY設(shè)置為ON,主庫從庫都要設(shè)置,無先后順序。

set @@global.enforce_gtid_consistency=on;

3.設(shè)置GTID_MODE為off_permissiv,主庫從庫都要設(shè)置,無先后順序。

SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;

4.設(shè)置GTID_MODE為on_permissiv,主庫從庫都要設(shè)置,無先后順序。

SET @@GLOBAL.GTID_MODE = on_permissive;

5.主從檢查變量ONGOING_ANONYMOUS_TRANSACTION_COUNT

SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';

需要等到該變量為0

6.確保所有的匿名事務(wù)(非GTID事務(wù))已經(jīng)被完全復(fù)制到所有的server上。
主庫

show master status;

從庫

show slave status\G

確保事務(wù)在從庫都會放完畢
或者:

SELECT MASTER_POS_WAIT('mysql-bin.00000x', xxx);

7.確認(rèn)整個拓?fù)浣Y(jié)構(gòu)中已經(jīng)沒有匿名事務(wù)的存在,如之前產(chǎn)生的所有匿名事務(wù)已經(jīng)全部被執(zhí)行完畢,甚至二進(jìn)制日志中也不要有匿名事務(wù),可以通過flush logs,并讓mysql來自動清理舊的二進(jìn)制日志文件。

8.設(shè)置GLOBAL.GTID_MODE為ON,主庫從庫都要設(shè)置,無先后順序。

SET @@GLOBAL.GTID_MODE = ON;

9.my.cnf增加GTID_MODE = ON;

至此,GTID復(fù)制在線切換完成。

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

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

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