先定義停機與資料一致性的底線
規劃資料庫上雲時,不要先從搬移工具開始,而要先確認業務能承受什麼。兩個最重要的指標是復原時間目標與復原點目標:前者代表服務最多可以中斷多久,後者代表最多能接受遺失多少資料。訂單、付款或庫存系統通常要求接近零資料遺失;報表、歷史查詢或內部分析平台,則可能允許較長的資料落差。這些要求會直接決定要採離線搬移、持續複寫,還是雙寫架構。
停機窗口也不能只看資料庫複製時間。應納入應用程式停止寫入、背景工作排空、DNS 或連線設定更新、快取清除、功能驗證,以及失敗時回復舊環境所需的時間。若窗口只有兩小時,切換計畫就不能把兩小時全部分配給資料傳輸;團隊必須保留明確的驗證時間與回復緩衝。
- 業務影響:哪些流程必須完全停止,哪些功能可以暫時唯讀,哪些批次工作可以延後。
- 資料要求:可接受的遺失量、延遲程度,以及交易順序是否必須完整保留。
- 相依系統:ERP、CRM、LINE 服務、報表、ETL、排程與外部合作系統是否會直接連線。
- 決策權責:誰能批准切換、誰判定驗證通過,以及誰有權啟動回復。
依資料量與異動頻率選擇遷移模式
離線遷移最容易理解:停止寫入、匯出資料、傳輸、匯入雲端,再修改應用程式連線。它的優點是流程單純、來源與目標不會同時變動,適合資料量不大、停機可接受或非核心系統。缺點是資料量一旦超出預估,匯出、網路傳輸、索引重建與統計資訊更新都可能拖長窗口。測試時不能只量測備份檔傳輸速度,還要量測目標資料庫完整恢復至可服務狀態的時間。
如果無法接受長時間停機,通常會先執行全量載入,再透過變更資料擷取、交易日誌複寫或資料庫原生複寫持續同步。正式切換時,只需短暫停止來源端寫入,等待複寫延遲歸零,驗證最後交易位置,再讓應用程式改連雲端。這能縮短停機,但會增加前期複雜度;團隊必須處理結構變更、未支援的資料型別、大型交易、序號或自動遞增值,以及複寫中斷後如何續傳。
雙寫常被視為零停機方案,但它不是預設首選。兩邊寫入可能出現部分成功、順序不一致、重試造成重複資料,以及舊版應用程式仍寫回地端等問題。除非應用層已具備冪等、交易補償與一致性監控,否則短暫唯讀加持續複寫,通常比臨時導入雙寫更容易控制。
把切換寫成可執行的操作手冊
正式切換前,至少要用接近正式資料量的環境完整演練。操作手冊應以時間順序列出每一步的負責人、指令或控制介面、預期結果、驗證方式、最長等待時間與失敗處置。不要只寫「確認資料正常」;應具體定義要比對哪些資料,例如最新交易時間、主要資料表筆數、抽樣主鍵、彙總金額、外鍵完整性、序號位置,以及重要查詢是否回傳相同結果。
切換當天可先停止非必要批次、ETL 與第三方寫入,再讓核心應用進入維護或唯讀模式。確認連線已排空後,記錄來源端最後的交易日誌位置或複寫檢查點,等待目標追平。應用程式改連線後,先由內部驗證帳號執行低風險讀寫測試,再逐步恢復背景工作與外部流量。連線池可能保留舊連線,因此不能只修改環境變數;還要確認服務重啟、密碼管理、網路路由、防火牆與 DNS 快取都已生效。
- 切換前:凍結結構變更、確認備份可還原、檢查複寫延遲並通知相關團隊。
- 切換中:停止寫入、記錄最終檢查點、等待同步完成、更新連線並執行冒煙測試。
- 切換後:監控錯誤率、鎖定等待、連線數、慢查詢、複寫狀態與關鍵業務交易。
- 證據留存:保存時間戳、查核結果、變更紀錄與批准決策,方便追蹤後續問題。
在不可逆之前設定回復門檻
回復方案必須在切換前完成,不能等異常發生才討論。團隊應預先定義觸發條件,例如核心寫入失敗、資料驗證不一致、延遲超出服務需求,或關鍵整合無法連線。也要設定最晚回復時間:一旦雲端資料庫開始接受新寫入,直接切回地端可能遺失這段期間的交易,回復會從單純改連線變成反向同步與資料合併。
最安全的做法通常是在確認前,讓地端保留但禁止應用程式寫入,並保存最終檢查點與完整備份。若切換失敗且雲端尚未產生有效交易,可迅速恢復舊連線;若已產生新資料,就必須依預先設計的反向複寫、事件重播或人工補帳流程處理。任何無法在窗口內可靠執行的回復方式,都不算真正的回復計畫。
切換完成後不要立即拆除地端環境。先觀察完整的業務週期,確認備份、監控、權限、稽核、批次與災難復原均可正常運作,再安排退役。資料庫上雲的完成標準不是新端點能連線,而是日常維運與異常復原都已被驗證;涉及多套企業系統時,也可由熟悉應用、網路與資料層的整合團隊協助統一切換節奏與驗收條件。