實時同步MySQL的數據至Hologres時,來源數據源為MySQL,去向數據源為Hologres,執行同步任務前,您需要參考本文在數據源中配置好網絡、白名單等配置,為后續的數據同步做好網絡環境和賬號權限的準備。

前提條件

配置數據源之前,請確保已完成以下規劃與準備工作。
  • 準備數據源:已購買來源數據源MySQL、去向數據源Hologres。
  • 資源規劃與準備:已購買獨享數據集成資源組,并完成資源配置。詳情可參見資源規劃與配置
  • 網絡環境評估與規劃:進行數據集成前,您需根據業務情況,打通數據源、獨享數據集成資源組之間的網絡,網絡聯通后參考本文進行交換機、白名單等網絡環境下的訪問配置。
    • 如果數據源和獨享數據集成資源組均處于同地域的同一VPC網絡中,數據源與資源組間的網絡天然聯通。
    • 如果數據源和獨享數據集成資源組均處于不同的網絡環境中,您需要通過VPN網關等方式,將數據源與資源組間的網絡打通。

背景信息

同步來源數據源的數據至去向數據源時,您需要保障數據源與DataWorks的獨享數據集成資源組在網絡上是聯通的,且不存在賬號權限的訪問限制。
  • 網絡白名單
    以下以使用同一VPC網絡環境為例,您需要將數據集成資源組所在的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.x8.x版本的MySQL,請不要將DRDS的MySQL配置為MySQL數據源,您可以參考配置DRDS數據源文檔直接將其配置為DRDS數據源。
  • 不支持XA ROLLBACK,針對已經XA PREPARE的事務數據,實時同步會將其同步到目標端,如果XA ROLLBACK,實時同步不會針對XA PREPARE的數據做回滾寫入的操作。若要處理XA ROLLBACK場景,需要手動將XA ROLLBACK的表從實時同步任務中移除,再添加表后重新進行全量數據初始化以及增量實時同步。
  • 在添加MySQL數據源時,若添加了其他阿里云賬號下的MySQL實例,后續同步任務配置該數據源時,僅支持使用獨享數據集成資源組運行該同步任務,公共資源組無法訪問該數據源中的數據。

操作步驟

  1. 配置白名單。
    將獨享數據資源組所在的VPC網段添加至MySQL的白名單中,操作如下:
    1. 查看并記錄獨享數據資源組所在的VPC網絡。
      1. 登錄DataWorks控制臺
      2. 在左側導航欄,單擊資源組列表
      3. 獨享資源組頁簽下,單擊目標數據集成資源組后的查看信息
      4. 復制對話框中的EIP地址網段至數據庫白名單。查看EIP地址和網段
      5. 獨享資源組頁簽下,單擊目標數據集成資源組后的網絡設置
      6. 專有網絡綁定頁簽,查看交換機網段并將其添加至數據庫的白名單中。查看交換機網段
    2. 將上述步驟中記錄的獨享數據集成資源組的EIP地址和網段添加至MySQL集群的白名單中。
  2. 創建賬號并配置賬號權限。
    您需要規劃一個數據庫的登錄賬號用于后續執行操作,此賬號需要擁有數據庫的 SELECT, REPLICATION SLAVE, REPLICATION CLIENT權限。
    1. 創建賬號。
      操作詳情請參見創建MySQL賬號
    2. 配置權限。
      您可以參考以下命令為賬號添加此權限,或直接給賬號賦予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語句為全局權限,不能指定授權同步賬號對目標數據庫的指定表擁有相關權限。
  3. 開啟MySQL的Binlog。
    檢查Binlog是否開啟并查詢Binlog格式,操作如下:
    • 使用如下語句檢查Binlog是否開啟。
      show variables like "log_bin";

      返回結果為ON時,表明已開啟Binlog。

    • 如果您使用備用庫同步數據,則還可以通過如下語句檢查Binlog是否開啟。
      show variables like "log_slave_updates";

      返回結果為ON時,表明備用庫已開啟Binlog。

    如果返回的結果與上述結果不符,請參考MySQL官方文檔開啟Binlog。
    使用如下語句查詢Binlog的使用格式。
    show variables like "binlog_format";
    返回結果說明:
    • 返回ROW,表明開啟的Binlog格式為ROW
    • 返回STATEMENT,表明開啟的Binlog格式為STATEMENT
    • 返回MIXED,表明開啟的Binlog格式為MIXED

后續步驟

配置完成數據源后,來源數據源、資源實例、去向數據源彼此間已可網絡聯通,且不存在訪問限制。您可將來源數據源和去向數據源添加至DataWorks的數據源列表中,便于后續創建數據同步方案時關聯來源和去向數據源。

添加數據源操作可參見添加數據源