即時同步單表資料時,當輸入資料來源為MySQL時,執行同步任務前,您需要參考本文在資料來源中配置好網路、白名單等配置,為後續的資料同步做好網路環境和帳號許可權的準備。
前提條件
配置資料來源之前,請確保已完成以下規劃與準備工作。
- 準備資料來源:已購買輸入資料來源MySQL、輸出資料來源。輸出資料來源可以為MaxCompute、Hologres、Elasticsearch、DataHub及Kafka。
- 資源規劃與準備:已購買獨享Data Integration資源群組,並完成資源配置。詳情可參見資源規劃與配置。
- 網路環境評估與規劃:進行Data Integration前,您需根據業務情況,打通資料來源、獨享Data Integration資源群組之間的網路,網路聯通後參考本文進行交換器、白名單等網路環境下的訪問配置。
- 如果資料來源和獨享Data Integration資源群組均處於同地區的同一VPC網路中,資料來源與資源群組間的網路天然聯通。
- 如果資料來源和獨享Data Integration資源群組均處於不同的網路環境中,您需要通過VPN網關等方式,將資料來源與資源群組間的網路打通。
背景資訊
同步輸入資料來源的資料至輸出資料來源時,您需要保障資料來源與DataWorks的獨享Data Integration資源群組在網路上是聯通的,且不存在帳號許可權的訪問限制。
- 以下以使用同一VPC網路環境為例,您需要將Data Integration資源群組所在的VPC網段添加至白名單中,保障Data Integration資源群組可訪問資料來源。
- 帳號許可權
您需要規劃一個可訪問資料來源的帳號,用於後續Data Integration過程中訪問資料來源並進行資料提取、寫入的同步操作。
- 其他訪問限制。
來來源資料源為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的Data Integration即時同步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執行個體,後續同步任務配置該資料來源時,僅支援使用獨享Data Integration資源群組運行該同步任務,公用資源群組無法訪問該資料來源中的資料。
操作步驟
- 配置白名單。將獨享資料資源群組所在的VPC網段添加至MySQL的白名單中,操作如下:
- 查看並記錄獨享資料資源群組所在的VPC網路。
- 登入DataWorks控制台。
- 在左側導覽列,單擊資源群組列表。
- 在獨享資源群組頁簽下,單擊目標Data Integration資源群組後的查看資訊。
- 複製對話方塊中的EIP地址和網段至資料庫白名單。
- 在獨享資源群組頁簽下,單擊目標Data Integration資源群組後的網路設定。
- 在專用網路綁定頁簽,查看交換器網段並將其添加至資料庫的白名單中。
- 將上述步驟中記錄的獨享Data Integration資源群組的EIP地址和網段添加至MySQL叢集的白名單中。
- 查看並記錄獨享資料資源群組所在的VPC網路。
- 建立帳號並配置帳號許可權。您需要規劃一個資料庫的登入帳號用於後續執行操作,此帳號需要擁有資料庫的
SELECT, REPLICATION SLAVE, REPLICATION CLIENT
許可權。- 建立帳號。操作詳情請參見建立MySQL帳號。
- 配置許可權。您可以參考以下命令為帳號添加此許可權,或直接給帳號賦予
SUPER
許可權。如下執行語句在實際使用時,請替換'同步帳號'
為上述建立的帳號。-- CREATE USER '同步帳號'@'%' IDENTIFIED BY '密碼'; //建立同步帳號並設定密碼,使其可以通過任意主機登入資料庫。%表示任意主機。 GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '同步帳號'@'%'; //授權同步帳號資料庫的 SELECT, REPLICATION SLAVE, REPLICATION CLIENT許可權。
*.*
表示授權同步帳號對所有資料庫的所有表擁有上述許可權。您也可以指定授權同步帳號對目標資料庫的指定表擁有上述許可權。例如,授權同步帳號對test資料庫的user表擁有上述許可權,則可以使用GRANT SELECT, REPLICATION CLIENT ON test.user TO '同步帳號'@'%';
語句。說明REPLICATION SLAVE
語句為全域許可權,不能指定授權同步帳號對目標資料庫的指定表擁有相關許可權。
- 建立帳號。
- 開啟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的資料來源列表中,便於後續建立資料同步方案時關聯輸入和輸出資料來源。添加資料來源操作可參見添加資料來源。