使用PolarDB-X作為PolarDB-X的Slave
MySQL主從復(fù)制,分為Master和Slave兩種角色,PolarDB-X的CDC提供的日志服務(wù)使PolarDB-X可以作為Master。同時(shí),PolarDB-X的CDC還具備對(duì)標(biāo)MySQL Replica的能力,使PolarDB-X作為Slave。
注意事項(xiàng)
操作方式和使用MySQL作為PolarDB-X的Slave基本一致。
PolarDB-X提供的Replication SQL高度兼容MySQL,具體信息,請(qǐng)參見(jiàn)Replication語(yǔ)句。
受限于網(wǎng)絡(luò),在通過(guò)控制臺(tái)購(gòu)買的PolarDB-X實(shí)例上,用戶無(wú)法創(chuàng)建復(fù)制鏈路,該功能主要面向自建場(chǎng)景。
操作方法
創(chuàng)建主從復(fù)制鏈路
語(yǔ)法
CHANGE MASTER TO option [, option] ... [ channel_option ] option: { MASTER_HOST = 'host_name' | MASTER_USER = 'user_name' | MASTER_PASSWORD = 'password' | MASTER_PORT = port_num | MASTER_LOG_FILE = 'source_log_name' | MASTER_LOG_POS = source_log_pos | MASTER_LOG_TIME_SECOND = source_log_time | SOURCE_HOST_TYPE = {RDS|POLARDBX|MYSQL} | STREAM_GROUP = 'stream_group_name' | WRITE_SERVER_ID = write_server_id | TRIGGER_AUTO_POSITION = {FALSE|TRUE} | WRITE_TYPE = {SPLIT|SERIAL|TRANSACTION} | MODE = {INCREMENTAL|IMAGE} | CONFLICT_STRATEGY = {OVERWRITE|INTERRUPT|IGNORE|DIRECT_OVERWRITE} | IGNORE_SERVER_IDS = (server_id_list) } channel_option: FOR CHANNEL channel server_id_list: [server_id [, server_id] ... ]
參數(shù)說(shuō)明
MASTER_HOST:主實(shí)例地址。
MASTER_USER:主實(shí)例用戶。
MASTER_PASSWORD:主實(shí)例密碼。
MASTER_PORT:主實(shí)例端口。
MASTER_LOG_FILE:主實(shí)例文件名。
MASTER_LOG_POS:主實(shí)例文件內(nèi)位點(diǎn),從該位點(diǎn)開(kāi)始進(jìn)行binlog復(fù)制。
MASTER_LOG_TIME_SECOND:主實(shí)例時(shí)間位點(diǎn),采用unix標(biāo)準(zhǔn)時(shí)間戳,單位為秒。當(dāng)指定MASTER_LOG_FILE和MASTER_LOG_POS作為精確位點(diǎn)時(shí),MASTER_LOG_TIME_SECOND將被忽略。
SOURCE_HOST_TYPE:主實(shí)例的類型,默認(rèn)為MYSQL,如主實(shí)例為PolarDB-X 2.0,需顯示設(shè)置該參數(shù)為POLARDBX。
STREAM_GROUP:開(kāi)通多流服務(wù)時(shí)指定的流組名稱,如主實(shí)例為PolarDB-X 2.0且需要對(duì)接主實(shí)例的多流binlog服務(wù),則需要填入該選項(xiàng)。
WRITE_SERVER_ID:寫(xiě)入server_id。
TRIGGER_AUTO_POSITION:是否自動(dòng)采用主實(shí)例最新位點(diǎn),默認(rèn)為false。
WRITE_TYPE:寫(xiě)入方式,默認(rèn)為 SPLIT,表示非事務(wù)完整的并行復(fù)制;SERIAL表示非事務(wù)完整的串行復(fù)制;TRANSACTION表示事務(wù)完整的串行復(fù)制。
MODE:模式,INCREMENTAL表示僅增量同步,IMAGE表示結(jié)構(gòu),全量以及增量同步。
CONFLICT_STRATEGY:沖突策略,默認(rèn)為OVERWRITE(覆蓋),表示對(duì)于約束沖突的數(shù)據(jù)會(huì)采取Replace Into寫(xiě)入;INTERRUPT表示復(fù)制中斷;IGNORE表示忽略。
IGNORE_SERVER_IDS:需要忽略的server_id。
channel_option:指定該鏈路的名字,需要與當(dāng)前已存在的鏈路名不同。
示例1
執(zhí)行以下語(yǔ)句,可根據(jù)創(chuàng)建復(fù)制鏈路,并從binlog中1713159938(2024-04-15 13:45:38)開(kāi)始同步。
CHANGE MASTER TO MASTER_HOST='pxc-YOURENDPOINT.com', MASTER_PORT=3306, MASTER_USER='polardbx', MASTER_PASSWORD='123456', SOURCE_HOST_TYPE=polardbx, MASTER_LOG_TIME_SECOND=1713159938, write_server_id=1944903859 FOR CHANNEL 'pxc-bjrcsnbyagcdxh';
示例2
執(zhí)行以下語(yǔ)句,可根據(jù)創(chuàng)建復(fù)制鏈路,并從主實(shí)例binlog.000001的offset 4處開(kāi)始同步。
CHANGE MASTER TO MASTER_HOST='pxc-YOURENDPOINT.com', MASTER_PORT=3306, MASTER_USER='polardbx', MASTER_PASSWORD='123456', SOURCE_HOST_TYPE=polardbx, MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=4, write_server_id=1944903859 FOR CHANNEL 'pxc-bjrcsnbyagcdxh';
更多信息,請(qǐng)參見(jiàn)CHANGE MASTER TO。
修改主從復(fù)制鏈路過(guò)濾配置
語(yǔ)法
CHANGE REPLICATION FILTER option [, option] ... [ channel_option ] option: { REPLICATE_DO_DB = (do_db_list) | REPLICATE_IGNORE_DB = (ignore_db_list) | REPLICATE_DO_TABLE = (do_table_list) | REPLICATE_IGNORE_TABLE = (ignore_table_list) | REPLICATE_WILD_DO_TABLE = (wild_do_table_list) | REPLICATE_WILD_IGNORE_TABLE = (wile_ignore_table_list) | REPLICATE_SKIP_TSO = 'tso_num' | REPLICATE_SKIP_UNTIL_TSO = 'tso_num' | REPLICATE_ENABLE_DDL = {TRUE|FALSE} } channel_option: FOR CHANNEL channel
參數(shù)說(shuō)明
REPLICATE_SKIP_TSO:跳過(guò)該TSO對(duì)應(yīng)的binlog event,TSO相關(guān)介紹請(qǐng)參見(jiàn)分布式事務(wù)。
REPLICATE_SKIP_UNTIL_TSO:跳過(guò)該TSO之前所有的binlog event(不包含該TSO)。
REPLICATE_ENABLE_DDL:是否同步DDL,默認(rèn)為T(mén)RUE。
以下參數(shù)說(shuō)明請(qǐng)參見(jiàn)CHANGE REPLICATION FILTER。
REPLICATE_DO_DB
REPLICATE_IGNORE_DB
REPLICATE_DO_TABLE
REPLICATE_IGNORE_TABLE
REPLICATE_WILD_DO_TABLE
REPLICATE_WILD_IGNORE_TABLE
示例1
執(zhí)行以下語(yǔ)句,可修改復(fù)制鏈路,只同步庫(kù)TEST內(nèi)的變更。
CHANGE REPLICATION FILTER REPLICATE_DO_DB=(TEST);
示例2
TSO獲取
執(zhí)行SHOW BINLOGS EVENTS語(yǔ)句獲取對(duì)應(yīng)binlog event的TSO,返回示例如下:
其中INFO列中以CTS:: 開(kāi)頭的數(shù)字串即為該event對(duì)應(yīng)的TSO。
跳過(guò)TSO對(duì)應(yīng)的event
執(zhí)行以下語(yǔ)句,可修改復(fù)制鏈路,跳過(guò)TSO:716669064683978758416977558623632834560000000000000000對(duì)應(yīng)的binlog event,即上圖中POS=372的binlog event。
CHANGE REPLICATION FILTER REPLICATE_SKIP_TSO='716669064683978758416977558623632834560000000000000000';
更多內(nèi)容請(qǐng)參見(jiàn)CHANGE REPLICATION FILTER。
更多信息,請(qǐng)參見(jiàn)CHANGE REPLICATION FILTER。
啟動(dòng)主從復(fù)制鏈路
語(yǔ)法
START SLAVE [ channel_option ] channel_option: FOR CHANNEL channel
示例1
執(zhí)行以下語(yǔ)句,可啟動(dòng)所有由CHANGE MASTER TO語(yǔ)句創(chuàng)建的主從復(fù)制鏈路。
START SLAVE;
示例2
執(zhí)行以下語(yǔ)句,可啟動(dòng)channel name為'TEST' 的主從復(fù)制鏈路。
START SLAVE for channel 'TEST';
更多信息,請(qǐng)參見(jiàn)START SLAVE。
暫停主從復(fù)制鏈路
語(yǔ)法
STOP SLAVE [ channel_option ] channel_option: FOR CHANNEL channel
示例1
執(zhí)行以下語(yǔ)句,可暫停所有由CHANGE MASTER TO語(yǔ)句創(chuàng)建的主從復(fù)制鏈路。
STOP SLAVE;
示例2
執(zhí)行以下語(yǔ)句,可暫停channel name為'TEST' 的主從復(fù)制鏈路。
STOP SLAVE for channel 'TEST';
更多信息,請(qǐng)參見(jiàn)STOP SLAVE。
刪除主從復(fù)制鏈路
執(zhí)行之前需要先停止數(shù)據(jù)復(fù)制進(jìn)程。
語(yǔ)法
RESET SLAVE ALL [ channel_option ] channel_option: FOR CHANNEL channel
示例1
執(zhí)行以下語(yǔ)句,可刪除所有由CHANGE MASTER TO語(yǔ)句創(chuàng)建的主從復(fù)制鏈路。
RESET SLAVE ALL;
示例2
執(zhí)行以下語(yǔ)句,可刪除channel name為'TEST' 的主從復(fù)制鏈路。
RESET SLAVE ALL for channel 'TEST';
更多信息,請(qǐng)參見(jiàn)RESET SLAVE ALL。