實(shí)時(shí)同步單表數(shù)據(jù)時(shí),當(dāng)輸入數(shù)據(jù)源為MySQL時(shí),執(zhí)行同步任務(wù)前,您需要參考本文在數(shù)據(jù)源中配置好網(wǎng)絡(luò)、白名單等配置,為后續(xù)的數(shù)據(jù)同步做好網(wǎng)絡(luò)環(huán)境和賬號(hào)權(quán)限的準(zhǔn)備。
前提條件
- 準(zhǔn)備數(shù)據(jù)源:已購(gòu)買輸入數(shù)據(jù)源MySQL、輸出數(shù)據(jù)源。輸出數(shù)據(jù)源可以為MaxCompute、Hologres、Elasticsearch、DataHub及Kafka。
- 資源規(guī)劃與準(zhǔn)備:已購(gòu)買獨(dú)享數(shù)據(jù)集成資源組,并完成資源配置。詳情可參見(jiàn)資源規(guī)劃與配置。
- 網(wǎng)絡(luò)環(huán)境評(píng)估與規(guī)劃:進(jìn)行數(shù)據(jù)集成前,您需根據(jù)業(yè)務(wù)情況,打通數(shù)據(jù)源、獨(dú)享數(shù)據(jù)集成資源組之間的網(wǎng)絡(luò),網(wǎng)絡(luò)聯(lián)通后參考本文進(jìn)行交換機(jī)、白名單等網(wǎng)絡(luò)環(huán)境下的訪問(wèn)配置。
- 如果數(shù)據(jù)源和獨(dú)享數(shù)據(jù)集成資源組均處于同地域的同一VPC網(wǎng)絡(luò)中,數(shù)據(jù)源與資源組間的網(wǎng)絡(luò)天然聯(lián)通。
- 如果數(shù)據(jù)源和獨(dú)享數(shù)據(jù)集成資源組均處于不同的網(wǎng)絡(luò)環(huán)境中,您需要通過(guò)VPN網(wǎng)關(guān)等方式,將數(shù)據(jù)源與資源組間的網(wǎng)絡(luò)打通。
背景信息
- 以下以使用同一VPC網(wǎng)絡(luò)環(huán)境為例,您需要將數(shù)據(jù)集成資源組所在的VPC網(wǎng)段添加至白名單中,保障數(shù)據(jù)集成資源組可訪問(wèn)數(shù)據(jù)源。
- 賬號(hào)權(quán)限
您需要規(guī)劃一個(gè)可訪問(wèn)數(shù)據(jù)源的賬號(hào),用于后續(xù)數(shù)據(jù)集成過(guò)程中訪問(wèn)數(shù)據(jù)源并進(jìn)行數(shù)據(jù)提取、寫入的同步操作。
- 其他訪問(wèn)限制。
來(lái)源數(shù)據(jù)源為MySQL時(shí),您需要開(kāi)啟Binlog。Binlog是記錄所有數(shù)據(jù)庫(kù)表結(jié)構(gòu)變更(例如執(zhí)行CREATE、ALTER操作)以及表數(shù)據(jù)修改(例如執(zhí)行INSERT、UPDATE、DELETE等)的日志。方便您可以通過(guò)Binlog日志中的內(nèi)容,查看數(shù)據(jù)庫(kù)的變更歷史、進(jìn)行數(shù)據(jù)庫(kù)增量備份和恢復(fù)以及主從數(shù)據(jù)庫(kù)的復(fù)制。
Binlog日志的格式如下:- Statement:基于SQL語(yǔ)句的復(fù)制。Binlog中會(huì)保存每條修改數(shù)據(jù)的SQL語(yǔ)句。
- Row:基于行的復(fù)制。Binlog中不保存SQL語(yǔ)句上下文的相關(guān)信息,僅保存被修改的記錄。
- Mixed:混合模式復(fù)制。Statement與Row的結(jié)合,一般的語(yǔ)句修改使用Statement格式(例如函數(shù)),Statement無(wú)法完成復(fù)制的操作,則采用Row格式保存Binlog。MySQL會(huì)根據(jù)執(zhí)行的每條SQL語(yǔ)句自主識(shí)別使用哪種格式。
使用限制
- DataWorks的數(shù)據(jù)集成實(shí)時(shí)同步MySQL數(shù)據(jù)是基于實(shí)時(shí)訂閱MySQL實(shí)現(xiàn)的,實(shí)時(shí)同步MySQL數(shù)據(jù)目前僅支持配置MySQL數(shù)據(jù)源為RDS的
5.x
或8.x
版本的MySQL,請(qǐng)不要將DRDS的MySQL配置為MySQL數(shù)據(jù)源,您可以參考配置DRDS數(shù)據(jù)源文檔直接將其配置為DRDS數(shù)據(jù)源。 - 不支持XA ROLLBACK,針對(duì)已經(jīng)XA PREPARE的事務(wù)數(shù)據(jù),實(shí)時(shí)同步會(huì)將其同步到目標(biāo)端,如果XA ROLLBACK,實(shí)時(shí)同步不會(huì)針對(duì)XA PREPARE的數(shù)據(jù)做回滾寫入的操作。若要處理XA ROLLBACK場(chǎng)景,需要手動(dòng)將XA ROLLBACK的表從實(shí)時(shí)同步任務(wù)中移除,再添加表后重新進(jìn)行全量數(shù)據(jù)初始化以及增量實(shí)時(shí)同步。
- 在添加MySQL數(shù)據(jù)源時(shí),若添加了其他阿里云賬號(hào)下的MySQL實(shí)例,后續(xù)同步任務(wù)配置該數(shù)據(jù)源時(shí),僅支持使用獨(dú)享數(shù)據(jù)集成資源組運(yùn)行該同步任務(wù),公共資源組無(wú)法訪問(wèn)該數(shù)據(jù)源中的數(shù)據(jù)。
操作步驟
- 配置白名單。將獨(dú)享數(shù)據(jù)資源組所在的VPC網(wǎng)段添加至MySQL的白名單中,操作如下:
- 創(chuàng)建賬號(hào)并配置賬號(hào)權(quán)限。您需要規(guī)劃一個(gè)數(shù)據(jù)庫(kù)的登錄賬號(hào)用于后續(xù)執(zhí)行操作,此賬號(hào)需要擁有數(shù)據(jù)庫(kù)的
SELECT, REPLICATION SLAVE, REPLICATION CLIENT
權(quán)限。 - 開(kāi)啟MySQL的Binlog。檢查Binlog是否開(kāi)啟并查詢Binlog格式,操作如下:
- 使用如下語(yǔ)句檢查Binlog是否開(kāi)啟。
show variables like "log_bin";
返回結(jié)果為ON時(shí),表明已開(kāi)啟Binlog。
- 如果您使用備用庫(kù)同步數(shù)據(jù),則還可以通過(guò)如下語(yǔ)句檢查Binlog是否開(kāi)啟。
show variables like "log_slave_updates";
返回結(jié)果為ON時(shí),表明備用庫(kù)已開(kāi)啟Binlog。
使用如下語(yǔ)句查詢Binlog的使用格式。show variables like "binlog_format";
返回結(jié)果說(shuō)明:- 返回ROW,表明開(kāi)啟的Binlog格式為ROW。
- 返回STATEMENT,表明開(kāi)啟的Binlog格式為STATEMENT。
- 返回MIXED,表明開(kāi)啟的Binlog格式為MIXED。
- 使用如下語(yǔ)句檢查Binlog是否開(kāi)啟。
后續(xù)步驟
配置完成數(shù)據(jù)源后,輸入數(shù)據(jù)源、資源實(shí)例、輸出數(shù)據(jù)源彼此間已可網(wǎng)絡(luò)聯(lián)通,且不存在訪問(wèn)限制。您可將輸入數(shù)據(jù)源和輸出數(shù)據(jù)源添加至DataWorks的數(shù)據(jù)源列表中,便于后續(xù)創(chuàng)建數(shù)據(jù)同步方案時(shí)關(guān)聯(lián)輸入和輸出數(shù)據(jù)源。添加數(shù)據(jù)源操作可參見(jiàn)添加數(shù)據(jù)源。