本文為您介紹如何使用數據傳輸服務DTS(Data Transmission Service)的創建反向任務功能,實現數據庫容災或業務交割(業務切換)場景下的數據回傳。
前提條件
已創建存儲空間大于業務數據庫已使用的災備數據庫,建議災備數據庫比業務數據庫大10%。
已在業務數據庫和災備數據庫中創建用于數據同步的賬號。權限要求,請參見RDS MySQL實例間的單向同步、RDS SQL Server間的同步、云數據庫MongoDB版(副本集架構)同步至云數據庫MongoDB版(副本集架構或分片集群架構)、云數據庫MongoDB版(分片集群架構)同步至云數據庫MongoDB版(副本集架構或分片集群架構)。
重要災備數據庫的賬號需要具備額外的權限:
SQL Server間的同步實例:目標庫賬號需具備sysadmin權限,您可以使用超級權限賬號通過
EXEC sp_addsrvrolemember @loginame = N'<賬號名>', @rolename = N'sysadmin';
命令進行授權。MySQL間的同步實例:目標庫賬號還需具備REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和SELECT權限。授權方法,請參見MySQL官方說明文檔。
云數據庫MongoDB版間的同步實例:目標庫賬號還需具備待同步庫、admin庫和local庫的read權限。授權方法,請參見通過DMS管理數據庫賬號。
注意事項
僅SQL Server數據庫間、MySQL數據庫間或云數據庫MongoDB版間的同步實例支持創建反向實例,且該反向實例的同步類型只勾選了增量同步。
創建反向實例前直接寫入到原同步實例目標庫的數據,不會被同步。
反向實例創建成功后會立即進行預檢查,預檢查通過后會進行增量數據采集,增量數據寫入模塊不會運行。
每個同步實例僅支持創建一個對應的反向實例,且當反向實例啟動后,原實例將無法直接啟動。
不支持為跨國家和跨境的同步實例創建反向實例。
請確保待同步的表具備主鍵或唯一約束,并且字段具有唯一性,否則可能會導致部分數據重復。
請根據業務數據庫出現異常后的預估恢復時間,合理設置數據庫Binlog的保存時間。
若原實例為Serverless實例,則創建的反向實例的計費方式將為按量付費,且規格為micro;若原實例的計費方式為包年包月或按量付費,則創建的反向實例的計費方式和規格默認與原實例相同。
若原實例為跨地域的同步實例,則需要將同步任務列表的地域切換為正向實例源庫對應的地域,才可以看到創建的反向實例。
創建的反向實例暫停期間也會收取相應的費用。
在業務數據庫出現異常無法連接的情況下,DTS實例的運行狀態為重試中屬于正常現象。
操作步驟
數據庫容災場景
根據業務需求,創建業務數據庫到災備數據庫的正向同步實例。
請合理選擇實例的規格,并根據業務數據庫出現異常后的預估恢復時間,設置源庫、目標庫無法連接后的重試時間。正向同步實例的創建方法,請參見RDS MySQL實例間的單向同步、RDS SQL Server間的同步、云數據庫MongoDB版(副本集架構)同步至云數據庫MongoDB版(副本集架構或分片集群架構)、云數據庫MongoDB版(分片集群架構)同步至云數據庫MongoDB版(副本集架構或分片集群架構)。
等待正向同步實例的運行狀態處于運行中,創建反向實例。
在同步任務列表找到創建的正向同步實例。
在目標實例右側,選擇
。在彈出的提醒對話框,單擊確定。
等待反向實例預檢查完成,運行狀態處于同步初始化中。
說明若您未開啟自動刷新功能,則需要手動單擊操作上方的按鈕,以刷新同步實例的運行狀態。
若預檢查失敗,請單擊查看原因,然后單擊預檢查失敗項后查看詳情,根據提示修復后重新進行預檢查。
反向實例創建好后,暫無需操作。
當業務數據庫出現異常無法連接時,執行如下操作來恢復您的業務。
暫停原DTS實例。
在同步任務列表頁面,找到原DTS實例。
在目標實例右側,選擇
。在彈出的提醒對話框,單擊確定。
在彈出的暫停任務成功對話框,單擊確定。
將業務切換至災備數據庫。
啟動反向實例。
在同步任務列表頁面,找到生成的反向實例。
在目標實例右側,選擇
。在彈出的提醒對話框,單擊確定。
當業務數據庫恢復后,執行如下操作切換業務數據庫并恢復同步實例。
將業務切換回原來的業務數據庫。
等待反向實例無延遲后,暫停反向實例。
反向實例會將業務直接寫入災備數據庫的數據同步到原業務數據庫。
等待反向實例暫停成功后,啟動原來的正向同步實例。
業務交割場景
創建反向同步實例。
在同步任務列表找到目標正向同步實例(原DTS實例)。
在目標實例右側,選擇
。在彈出的提醒對話框,單擊確定。
等待反向實例預檢查完成,運行狀態處于同步初始化中。
說明若您未開啟自動刷新功能,則需要手動單擊操作上方的按鈕,以刷新同步實例的運行狀態。
若預檢查失敗,請單擊查看原因,然后單擊預檢查失敗項后查看詳情,根據提示修復后重新進行預檢查。
反向同步實例創建好后,暫無需操作。
等待增量數據采集模塊運行且無延遲。
您可以單擊反向同步實例的ID,在任務管理頁面的實例進展區域查看模塊的狀態和延遲時間。
暫停業務寫入。
為避免數據丟失,需要暫時中斷業務,禁止新的數據寫入到數據庫。
暫停原DTS實例。
在同步任務列表頁面,找到原DTS實例。
在目標實例右側,選擇
。在彈出的提醒對話框,單擊確定。
在彈出的暫停任務成功對話框,單擊確定。
將業務切換為正向同步實例的目標庫。
啟動反向實例。
在同步任務列表頁面,找到生成的反向實例。
在目標實例右側,選擇
。在彈出的提醒對話框,單擊確定。
結束或釋放正向同步實例。