全部產品
Search
文件中心

Data Transmission Service:業務切換流程

更新時間:Jul 06, 2024

為最大化地減少資料移轉對業務的影響,您可以參照本文的流程執行業務切換並建立回退方案。

前提條件

已配置資料移轉任務,且資料移轉任務處於遷移中已完成狀態,配置案例請參見遷移方案概覽

注意事項

  • 由於執行業務切換操作需要停止資料庫寫入並暫停業務,請選擇業務低峰期操作以降低影響。

  • 為便於區分會話資訊以及提升資料安全性,建議單獨建立並授權一個資料庫帳號以供資料移轉使用。

操作步驟

  1. 等待資料移轉任務的進度變更為增量遷移,並顯示為無延遲狀態或延遲時間低於5秒。

    說明

    如果資料移轉任務在配置時未勾選增量資料移轉,進度條不會變更為增量遷移,且遷移完成後會自動結束任務。此類情況通常約定在執行資料移轉任務之前將業務中斷並停止新的資料寫入來源資料庫,所以請直接跳轉至步驟5繼續操作。

  2. 將業務暫時中斷,禁止新的資料寫入來源資料庫。

  3. 登入來源資料庫,根據資料庫類型選擇下述命令查看會話資訊,確保沒有新的會話執行寫入操作。

    MySQL

    show processlist;

    SQL Server

    select * from sys.dm_exec_connections;

    Oracle

    select sid,serial#,username,program,machine,status from v$session;

    PostgreSQL

    select * from pg_stat_activity;

    Redis

    CLIENT LIST

    MongoDB

    use admin
    db.runCommand({currentOp: 1, $all:[{"active" : true}]})
    說明

    上述語句查詢到的進程或會話資訊中,包含DTS串連來源資料庫的進程或會話。

  4. 等待遷移任務的增量遷移再次進入無延遲狀態,保持1分鐘或以上,然後手動暫停遷移任務。

    警告

    當遷移任務處於暫停期間時,請不要隨意啟動任務,否則可能會導致資料不一致。

    無延遲

  5. 保持業務中斷狀態,取消來源資料庫禁止寫入的限制。

  6. 建立反向資料移轉任務並啟動,用於將目標庫後續產生增量資料移轉回來源資料庫。此步驟建立的反向遷移任務的作用是為業務提供回退方案,業務恢複運行後,一旦出現異常可將業務切換至原有的資料庫中。

    例如原先是將自建MySQL遷移至RDS MySQL,反向資料移轉任務配置案例請參見從RDS MySQL遷移至自建MySQL(僅選擇增量資料移轉)。

    警告

    在配置反向資料移轉任務時,在設定遷移類型及列表環節僅需選擇增量資料移轉,然後選擇需要遷移回來源資料庫的庫或表。

    僅選擇增量資料移轉

  7. 當業務成功切換至目標庫後,手動結束或釋放該DTS遷移任務。

  8. 由於建立的反向遷移任務會將目標庫產生的增量資料即時移轉回源庫,如果業務運行出現問題,可隨時將業務切換回源庫。

後續步驟

業務切換至目標資料庫並穩定運行一段時間,測試所有業務涉及的功能並確認無問題,可結束反向資料移轉的任務,詳情請參見結束資料移轉任務

警告

用於資料移轉的資料庫帳號擁有讀寫權限,為保障資料庫安全性,請在資料移轉完成後,刪除用於資料移轉的資料庫帳號或回收相關寫入權限。

常見問題

  • Q:業務切換後,如果業務運行出現問題如何處理?

    A:由於建立的反向遷移任務會將目標庫產生的增量資料即時移轉回源庫,如果業務運行出現問題,可隨時將業務切換回源庫。

  • Q:業務切換失敗後,源庫如何保證資料一致性?

    A:您可以在業務切換前備份源庫。

  • Q:業務切換後,由於誤操作導致在來源資料庫中寫入了新的資料,應該如何處理?

    A:通過資料校正確認源和目標庫的差異資料,進行手動訂正。