當您的DTS執行個體成功將資料同步或遷移至目標庫後,您可以參考本文進行業務切換,以最大程度地減少資料同步或遷移對業務的影響。本文以遷移執行個體為例,為您介紹業務切換的相關步驟。
前提條件
已配置資料移轉執行個體,且資料移轉執行個體處於運行中或已完成狀態。配置方法,請參見遷移方案概覽。
方案概覽
暫停源庫的業務寫入。
為避免資料丟失,需要暫時中斷業務,禁止新的資料寫入源庫。
暫停遷移執行個體。
源庫的資料寫入到目標庫後,暫停遷移執行個體。
建立反向資料移轉執行個體並啟動。
將目標庫產生的增量資料即時移轉回源庫,為業務提供回退方案。在業務切換後,如果業務運行出現異常,可將業務切換回源庫中。
切換業務。
切換業務寫入的資料庫,並恢複業務。
注意事項
由於執行業務切換操作需要停止資料庫寫入並暫停業務,請選擇業務低峰期操作以降低影響。
為便於區分會話資訊以及提升資料安全性,建議單獨建立並授權一個資料庫帳號以供資料移轉使用。
執行業務切換操作需要暫停遷移執行個體,暫停超過7天的執行個體將無法恢複運行。
對於不再使用的訂用帳戶執行個體(尤其是已開啟自動續約的訂用帳戶執行個體),請務必手動取消自動續約或釋放執行個體,以免產生額外的費用。具體操作,請參見自動續約的修改、取消等操作和釋放DTS執行個體。
操作步驟
業務切換
等待資料移轉執行個體進入增量遷移階段,且運行階段資訊列的延遲時間小於5秒。
說明若遷移執行個體沒有增量遷移階段(即在配置執行個體時遷移類型未勾選增量遷移),則資料移轉完成後執行個體會自動結束任務,請等待執行個體的運行狀態變為已完成。
將業務暫時中斷,禁止在源庫中寫入新資料。
登入源庫查看會話資訊,確保沒有新的會話執行寫入操作。
常見資料庫查看會話資訊的命令如下所示:
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串連源庫的進程或會話。
暫停遷移執行個體。
警告在遷移執行個體暫停期間,請勿隨意啟動執行個體,否則可能會導致資料不一致。
等待遷移執行個體的延遲為0毫秒。
此時,源庫中待遷移的資料已成功遷移至目標庫。
繼續等待1~3分鐘。
在此期間,執行個體的延遲可能會在2秒以內波動。
在目標執行個體的操作列,選擇
。在彈出的提醒對話方塊中,單擊確定。
等待執行個體的運行狀態變為已暫停。
建立反向資料移轉執行個體。
保持業務中斷狀態。
取消源庫禁止寫入的限制。
建立反向資料移轉執行個體並啟動。
重要在配置執行個體時,遷移類型僅勾選增量遷移。
建立方法,請參見遷移方案概覽。
等待執行個體的運行狀態變為運行中。
切換業務。
將業務切換為目標庫。
恢複業務資料寫入。
測試業務功能。
回退方案
在業務切換失敗等異常情況下,您可以參考該方案恢複業務。
將業務暫時中斷,禁止在資料庫中寫入新資料。
將業務切換回源庫。
恢複業務資料寫入。
後續操作
業務切換至目標庫並穩定運行一段時間,測試所有業務涉及的功能並確認無問題,可結束反向資料移轉執行個體。更多資訊,請參見結束DTS執行個體。
用於資料移轉的資料庫帳號擁有讀寫權限,為保障資料庫安全性,請在資料移轉完成後,刪除用於資料移轉的資料庫帳號或回收該帳號的寫入權限。