閱讀545 返回首頁    go 小米MIX


跨阿裏雲賬號RDS實時同步__實時同步_用戶指南_數據傳輸-阿裏雲

數據傳輸支持不同阿裏雲賬號下的兩個RDS實例之間的實時同步。本小節介紹跨阿裏雲賬號RDS實例間數據實時同步作業的配置流程。

支持場景

  1. 支持不同阿裏雲賬號下的兩個RDS MySQL實例間的實時同步。
  2. 支持公共雲與金融雲賬號下的RDS實例間的數據實時同步。

同步限製

數據源

  1. 目前實時同步隻能支持RDS MySQL實例,暫不支持其他數據源類型。
  2. 目標實例不支持訪問模式為標準模式且隻有外網連接地址的RDS實例。
  3. 不支持香港可用區A的RDS實例的實時同步。

同步架構

目前數據傳輸服務提供的實時同步功能支持的同步架構有限,其僅能支持如下兩種架構:

  1. A->B 即兩個實例之間的單向同步。且要求B中同步的對象必須為隻讀,否則可能導致同步鏈路異常。

    進入DTS控製台

  2. A->B/C/D 即1對多的分發式同步架構,這個架構對目標RDS實例個數沒有限製,但是要求目標實例中的同步對象必須為隻讀,否則可能導致同步鏈路異常。

    進入DTS控製台

  3. B/C/D->A 即多對1的數據匯總架構。對於這種多對1的同步架構,為了保證同步數據一致性,要求每條同步鏈路同步的對象不相同。

    進入DTS控製台

對於下麵幾種同步架構,暫時不支持:

  1. A->B->C 即級聯架構

    進入DTS控製台

  2. A->B->A 即實例A和實例B之間的雙向同步架構

    進入DTS控製台

如果用戶配置同步鏈路過程中,配置了這些不支持的同步架構,那麼預檢查中的複雜拓撲檢查項會檢查失敗。

功能限製

  • 不兼容觸發器

如果同步對象為整個庫且這個庫中包含了會更新同步表內容的觸發器,那麼可能導致同步數據不一致。

例如同步庫為A,這個庫中存在了兩個表a, b。a上有一個觸發器,觸發器內容為在insert一條數據到a之後,在b中插入一條數據。這種情況下,在同步過程中,如果源實例有a上的insert操作,就會導致b表在源實例跟目標實例數據不一致。

為了解決這個問題,隻能將目標實例中的對應觸發器刪除掉。b表的數據由源實例同步過去。具體解決方案詳見最佳實踐中的,觸發器存在情況下如何配置同步鏈路。

  • rename table 限製

rename table操作可能導致同步數據不一致。例如同步對象隻包含表A,不包含表B,如果同步過程中源實例執行了rename A to B的操作,那麼改名後的B表的操作不會被同步到目標庫。為了解決這個問題,可以選擇同步表A、B對應的整個數據庫。

準備事項

在配置同步作業前,要確保同步作業的源及目標RDS實例都已經存在。如果不存在,那麼請先購買RDS實例

配置步驟

下麵我們詳細介紹下創建同步作業的具體步驟。

1. 購買同步鏈路

使用目標實例對應的阿裏雲賬號登錄數據傳輸服務控製台,進入數據同步頁麵。

點擊控製台右上角“創建同步作業” 開始作業配置。

在鏈路配置之前需要購買一個同步鏈路。同步鏈路目前支持包年包月及按量付費兩種付費模式,可以根據需要選擇不同的付費模式。

在購買頁麵需要配置的參數包括:

  • 源實例
    源實例為同步作業的源實例類型,目前隻支持RDS For MySQL.

  • 源地域

源地域為同步鏈路源實例所在地域。

  • 目標實例
    目標實例為同步作業的目標實例類型,目前支持RDS For MySQL, MaxCompute, DataHub。如果進行RDS實例間的同步,那麼選擇RDS For MySQL即可。

  • 目標地域

目標地域為同步鏈路目標實例所在地域。

  • 實例規格

實例規格影響了鏈路的同步性能,實例規格跟性能之間的對應關係詳見 數據同步規格說明

  • 網絡類型
    對於RDS實例間的數據同步,目前隻支持通過私網同步。

  • 數量

數量為一次性購買的同步鏈路的數量,如果購買的是按量付費實例,一次最多購買99條鏈路。

購買實例

當購買完同步實例,返回數據傳輸控製台,點擊新購鏈路右側的“配置同步作業” 開始鏈路配置。

2.同步實例連接信息

在這一步主要配置:

  • 同步作業名稱

同步作業名稱沒有唯一性要求,主要為了更方便識別具體的作業,建議選擇一個有業務意義的作業名稱,方便後續的鏈路查找及管理。

  • 同步鏈路的RDS實例ID

由於源實例不屬於登錄的阿裏雲賬號,所以源實例配置時,點擊界麵右側 的 其他阿裏雲賬號下的RDS實例,然後配置:

  • RDS實例所屬阿裏雲賬號
    為源RDS實例所屬阿裏雲賬號的賬號ID,在登錄後,到賬號管理的安全設置界麵獲取。
    獲取賬號ID

  • 角色名稱
    為了提升安全性,配置跨賬號RDS同步任務的用戶,需要得到源RDS實例所屬雲賬號的授權後,才能配置源RDS實例。
    這裏麵配置的 角色名稱,即為RAM跨賬號授權的角色名稱。跨賬號授權的流程如下:
    (1) 進入RAM控製台的角色管理界麵,點擊頁麵右上角的 新建角色,開始創建跨賬號授權角色。
    (2) 第一步的角色類型,選擇用戶角色
    (3) 第二步的受信雲賬號,選擇 其他雲賬號,同時,受信雲賬號ID 配置最終配置DTS同步作業的阿裏雲賬號的賬號ID
    受信雲賬號(4) 第四步,配置角色名稱,這個名稱就是DTS同步作業配置過程中,需要填寫的角色名稱。
    角色創建完成後,需要修改角色授權策略,授權 受信雲賬號 隻能在DTS 控製台訪問自己的雲資源。具體修改步驟如下:
    (1) 在角色管理界麵,點擊 剛創建角色 後麵的 管理 按鈕,進入角色管理界麵。角色管理入口(2) 在角色管理界麵,點擊右上角的 編輯基本信息,進入角色編輯框,在編輯框中,修改Principal,添加service定義:

    1. "Service": [
    2. "受信阿裏雲賬號ID@dts.aliyuncs.com"
    3. ]

    受信雲賬號的賬號ID,即最後配置DTS同步作業的阿裏雲賬號ID。dts.aliyuncs.com 為DTS服務代號。假設配置DTS同步作業的阿裏雲賬號ID為:121852226014398,那麼service定義為:

    1. "Service": [
    2. "121852226014398@dts.aliyuncs.com"
    3. ]

    所以,完整的角色定義如下:

    1. {
    2. "Statement": [
    3. {
    4. "Action": "sts:AssumeRole",
    5. "Effect": "Allow",
    6. "Principal": {
    7. "RAM": [
    8. "acs:ram::1218522260143989:root"
    9. ],
    10. "Service": [
    11. "1218522260143989@dts.aliyuncs.com"
    12. ]
    13. }
    14. }
    15. ],
    16. "Version": "1"
    17. }

當配置完成後,DTS控製台中填寫的角色名稱,即為剛才創建的跨賬號角色名稱。

  • RDS實例ID

當配置完阿裏雲賬號和角色名稱後,即可以選擇要同步的源RDS實例ID。

目標RDS實例選擇要同步的RDS實例ID即可。

實例信息配置

當這些內容配置完成後,可以點擊“授權白名單並進入下一步”。

3.授權RDS實例白名單

這個步驟,主要是將數據傳輸服務器IP添加到同步RDS實例的白名單中。避免因為RDS設置了白名單,數據傳輸服務器連接不上RDS導致同步作業創建失敗。

為了保證同步作業的穩定性,在同步過程中,請勿將這些服務器IP從RDS實例的白名單中刪除。

當白名單授權後,點擊下一步,進入同步賬號創建。

4.創建目標庫上的同步賬號

這個步驟主要是在目標RDS實例上創建一個同步賬號,賬號名字為:dtssyncwriter,在同步過程中,不能刪除這個賬號,否則會導致同步鏈路中斷。

5.選擇同步對象

當創建完目標RDS實例的同步賬號後,即進入同步對象的選擇步驟。實時同步的同步對象的選擇粒度可以支持到表級別,即用戶可以選擇同步某些庫或是同步某幾張表。

如果選擇的同步對象為整個庫,那麼這個庫中所有對象的結構變更操作(例如create table,drop view 等),都會同步到目標庫。

如果選擇的某張表,那麼隻有這個表的drop/alter/truncate/rename table,create/drop index 的操作會同步到目標庫。

同步對象選擇

當配置完同步對象後,進入同步初始化配置。

6.同步初始化配置

同步初始化配置,初始化是同步鏈路啟動的第一步,它會將源實例中已經存在同步對象的結構及數據在目標實例中初始化,作為後續增量同步數據的基線數據。

同步初始化類型細分為:結構初始化,全量數據初始化。默認情況下,需要選擇結構初始化及全量初始化。

同步初始化配置

7.預檢查

當上麵所有選項配置完成後,即進入啟動之前的預檢查。

當同步作業配置完成後,數據傳輸服務會進行限製預檢查,當預檢查通過後,可以點擊 啟動 按鈕,啟動同步作業。

當同步作業啟動之後,即進入同步作業列表。此時剛啟動的作業處於同步初始化狀態。初始化的時間長度依賴於源實例中同步對象的數據量大小。當初始化完成後同步鏈路即進入同步中的狀態,此時源跟目標實例的同步鏈路才真正建立完成。

最後更新:2016-11-23 16:23:14

  上一篇:go 查看同步性能__實時同步_用戶指南_數據傳輸-阿裏雲
  下一篇:go 創建訂閱通道__數據訂閱_用戶指南_數據傳輸-阿裏雲