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