從 2005/2008/R2 平滑遷移到 2012:兩大官方工具全流程解析
升級不只是二進制替換,應用程式相容性與效能回歸才是最大風險。微軟提供 Upgrade Assistant(升級助手) 與 Distributed Replay(分散式重播) 兩大工具,構建「擷取 → 基線 → 升級 → 重播 → 對比」閉環驗證流程。
工具定位
| 工具 | 核心功能 | 授權 |
| Upgrade Assistant | 自動化工作負載擷取、基線建立、升級後重播、效能/相容性對比報告 | 免費(需註冊) |
| Upgrade Advisor | 靜態程式碼掃描:棄用語法、行為變更、效能反模式偵測(觸發程序、預存程序、腳本、追蹤檔) | 免費內建 |
| Distributed Replay | 多機器並行重播追蹤檔,模擬真實並發壓力,評估硬體/OS/SQL 版本升級影響 | Enterprise 版授權 |
Upgrade Assistant 標準 6 步驟流程
- 備份與擷取:完整備份資料庫 +
SQL Trace/Extended Events 擷取代表性工作負載(追蹤檔)。
⚠️ 勿在生產環境直接擷取,影響效能且有資料完整性風險,請用備份還原的測試環境。
- 建立基線環境:還原備份到測試機(舊版 SQL)→ 執行 Upgrade Advisor 掃描追蹤檔與資料庫物件 → 修復所有阻擋性問題。
- 重播基線追蹤:在基線環境用擷取的追蹤檔重播,產生 基線追蹤結果(效能指標、錯誤率、執行計畫)。
- 升級 SQL Server:將測試機就地升級或遷移到新版本(2012)。
- 重播升級後追蹤:同一追蹤檔在新版本重播,產生 升級後追蹤結果。
- 對比報告:Assistant 自動對比 基線 vs 升級後 的執行時間、CPU/IO、錯誤、計畫變更,輸出風險清單。
Distributed Replay 進階壓測
- 單機
SQL Profiler 重播無法模擬真實並發;Distributed Replay 可啟動多台 Client 協同重播,真實重現生產並發特徵**。
- 適用場景:硬體升級驗證、OS 升級驗證、相容性層級切換影響、參數嗅探/計畫穩定性測試。
- 需 Enterprise Edition 授權,規劃 Controller + 多 Client 拓撲。
實務建議
- 工作負載代表性 > 完整性:擷取涵蓋核心業務 80% 流量的 2-4 小時追蹤,優於不完整的 24 小時雜訊。
- 升級前先跑 Upgrade Advisor,修復所有「錯誤」等級問題,再進 Assistant 流程。
- 相容性層級階梯式切換:升級後先保持舊相容性層級跑一段 → 驗證穩定 → 切換新層級 → 再跑一輪重播。
- 記錄一切:追蹤檔、腳本、報告、決策紀錄,審計與事後複盤必備。
升級後的隱藏福利
SQL Server 2012 升級後,舊資料庫以舊相容性層級運行,**您擁有充裕時間優化應用程式**,目標是最終切換到新相容性層級並享受新功能(Columnstore、AlwaysOn、CONCAT、THROW 等)。