本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
當您的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實例。
用于數據遷移的數據庫賬號擁有讀寫權限,為保障數據庫安全性,請在數據遷移完成后,刪除用于數據遷移的數據庫賬號或回收該賬號的寫權限。