真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL5.7傳統(tǒng)復(fù)制和GTID復(fù)制間的在線互相切換

一、傳統(tǒng)復(fù)制切換為GTID復(fù)制

按需規(guī)劃網(wǎng)站可以根據(jù)自己的需求進(jìn)行定制,成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作構(gòu)思過(guò)程中功能建設(shè)理應(yīng)排到主要部位公司成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義

主/從庫(kù)執(zhí)行

1.SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;

持續(xù)觀察MySQL錯(cuò)誤日志一段時(shí)間,看是否有違反gtid 一致性的報(bào)錯(cuò),像create table ... select 的語(yǔ)句是不支持的。這個(gè)時(shí)候只能做業(yè)務(wù)上的調(diào)整來(lái)滿足gtid 一致性的要求,只有語(yǔ)句都滿足了,才能繼續(xù)進(jìn)行一下步。

主/從庫(kù)執(zhí)行

2.SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;

主/從庫(kù)執(zhí)行

3.SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;

新產(chǎn)生是匿名事務(wù),slave可以識(shí)別匿名事務(wù)和gtid事務(wù)

主/從庫(kù)執(zhí)行

4.SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;

新產(chǎn)生是gtid事務(wù),slave可以識(shí)別匿名事務(wù)和gtid事務(wù),到這一步要確保沒(méi)有匿名事務(wù)產(chǎn)生了再進(jìn)行下一步的操作,查看方法為:

SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT'; ?

當(dāng)值為0就表示可以進(jìn)行一下操作了。

主/從庫(kù)執(zhí)行

5.SET @@GLOBAL.GTID_MODE = ON;

新產(chǎn)生是gtid事務(wù),slave只識(shí)別gtid事務(wù),這一步執(zhí)行完主/從就都開(kāi)啟了gtid了。要想配置重啟繼續(xù)生效,將兩個(gè)參數(shù)寫(xiě)入MySQL的配置文件中:

enforce_gtid_consistency=on

gtid_mode=on

從庫(kù)執(zhí)行

STOP SLAVE [FOR CHANNEL 'channel'];

CHANGE MASTER TO MASTER_AUTO_POSITION = 1 [FOR CHANNEL 'channel'];

START SLAVE [FOR CHANNEL 'channel'];

二、GTID復(fù)制切換為傳統(tǒng)復(fù)制

從庫(kù)執(zhí)行

1. STOP SLAVE [FOR CHANNEL 'channel'];

等待完這步后,需要查看當(dāng)前slave讀取的文件及位置,傳統(tǒng)復(fù)制需要基于這兩個(gè)值繼續(xù)同步。查看方法就是查看show slave status\G中的兩個(gè)參數(shù):

Relay_Master_Log_File:file #表示 sql_thread已經(jīng)應(yīng)用到了哪個(gè)文件

Exec_Master_Log_Pos:position #表示 sql_thread已經(jīng)執(zhí)行到了文件的哪個(gè)位置

2.CHANGE MASTER TO MASTER_AUTO_POSITION = 0, MASTER_LOG_FILE = file, \

MASTER_LOG_POS = position [FOR CHANNEL 'channel'];

3.START SLAVE [FOR CHANNEL 'channel'];

主從庫(kù)執(zhí)行

4.SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;.

主從庫(kù)執(zhí)行

5.SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;

執(zhí)行完這步后需要確認(rèn)沒(méi)有新gtid事務(wù)產(chǎn)生

官方文檔上的方法:SELECT @@GLOBAL.GTID_OWNED;只要確保主從上有一個(gè)值為空就行。

另外也可以根據(jù)從上的兩個(gè)參數(shù)是否不再更新來(lái)判斷:

Retrieved_Gtid_Set: #已經(jīng)獲取到的gtid集合

Executed_Gtid_Set: #已經(jīng)執(zhí)行了的gtid集合

主從庫(kù)執(zhí)行

6.SET @@GLOBAL.GTID_MODE = OFF;

主從庫(kù)執(zhí)行

7.將配置寫(xiě)入配置文件

enforce_gtid_consistency=off

gtid_mode=off

三、基于GTID復(fù)制怎么跳過(guò)一個(gè)事務(wù)

基于GTID的復(fù)制無(wú)法使用sql_slave_skip_counter跳過(guò)錯(cuò)誤,可以利用替換空事務(wù)的方法來(lái)處理。

從庫(kù)執(zhí)行:

1.停止slave,并注入空事務(wù)

STOP SLAVE [FOR CHANNEL 'channel'];

SET GTID_NEXT='aaa-bbb-ccc-ddd:N'; #需要跳過(guò)的事務(wù)的gtid

BEGIN;

COMMIT;

SET GTID_NEXT='AUTOMATIC';

START SLAVE [FOR CHANNEL 'channel'];

從庫(kù)執(zhí)行

2.刷新并清理binlog文件

FLUSH LOGS; #會(huì)生成一個(gè)新的binlog文件

PURGE BINARY LOGS TO 'master-bin.00000N'; #N表是最新的binlog文件

這么做的用意在于防止將來(lái)slave提升為master的時(shí)候這個(gè)問(wèn)題事務(wù)繼續(xù)傳播。

四、基于GTID復(fù)制,將slave切換為Master

1.確保主上不再有數(shù)據(jù)更新

flush table with read lock; #會(huì)話級(jí)的,斷開(kāi)會(huì)話就失效了。

set global read_only=1; #重啟失效

set global super_read_only=1

2.檢查主從是否完全同步了

Master:show master status\G;

Slave:show slave status\G;

3.從庫(kù)(新的主庫(kù))

STOP SLAVE;

RESET SLAVE ALL;

4.主庫(kù)(新的從庫(kù))

CHANGE MASTER TO MASTER_AUTO_POSITION = 0, MASTER_LOG_FILE = file, \

MASTER_LOG_POS = position [FOR CHANNEL 'channel'];

寫(xiě)在最后:

本文只是基于官方文檔及自己在用的過(guò)程的一些總結(jié),英文好的可以直接去看官方文檔。如果寫(xiě)的有錯(cuò)的地方也歡迎吐槽?;贕tid的復(fù)制維護(hù)起來(lái)還是很方便的,不再需要關(guān)心binlog file及position了。slave會(huì)向Master上報(bào)它已經(jīng)執(zhí)行的gtid,Master會(huì)將剩余的gtid發(fā)給Slave去執(zhí)行。為了防止在從上誤操作導(dǎo)致主從的數(shù)據(jù)不一致,從最好還是設(shè)置為只讀,在Slave的配置文件中加入兩個(gè)參數(shù):

super_read_only=1

read_only=1


當(dāng)前標(biāo)題:MySQL5.7傳統(tǒng)復(fù)制和GTID復(fù)制間的在線互相切換
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/jggsjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部