升級前務必確認目標版本支援目前使用的功能(如資料庫鏡像、CDC、資料壓縮、透明資料加密等)。參考《SQL Server 2008 升級顧問》掃描實例,產生相容性報告。
| 項目 | 說明 | 風險若忽略 |
|---|---|---|
| 完整備份所有資料庫 | 含系統庫。驗證備份可還原。 | 升級失敗無法回滾 |
| DBCC CHECKDB | 確保無邏輯/物理損毀。 | 升級過程中止或資料遺失 |
| 磁碟空間評估 | 資料/記錄檔成長、tempdb、備份暫存。 | 升級中斷、資料庫損毀 |
| 系統資料庫自動成長 | master/model/msdb/tempdb 設為自動成長且空間足夠。 | 升級腳本寫入失敗 |
| 登入同步 | master 內登入、伺服器角色、預設資料庫。 | 還原後孤立使用者 |
| 停用啟動預存程序 | `sp_configure 'scan for startup procs', 0` 或個別停用。 | 升級重啟服務時阻塞 |
| 停止複寫、確保記錄檔無積壓 | 發行集/訂閱集停用,Log Reader 追趕完。 | 升級後複寫損毀 |
| 最大工作執行緒歸零 | `sp_configure 'max worker threads', 0` 讓引擎自動計算。 | 執行緒耗盡導致升級卡住 |
| 關閉所有應用程式連線 | 排程停機視窗,通知業務單位。 | 升級鎖衝突、失敗 |
| 64 位元升級順序 | 先升級 Analysis Services,再升級 Database Engine。 | 元件版本不符 |
| 資料庫 | 升級後預設相容等級 | 說明 |
|---|---|---|
| tempdb, model, msdb, Resource | 100 (SQL 2008) | 固定 |
| master | 保留原等級(若 <80 則設 80) | 影響系統目錄行為 |
| 使用者資料庫 | 80/90 保留;≤70 → 80 | 80=SQL 2000, 90=SQL 2005, 100=SQL 2008 |
新建資料庫繼承 `model` 等級(100)。如需舊語法相容,可 `ALTER DATABASE SET COMPATIBILITY_LEVEL = 90`。
採用滾動升級:被動節點先升級 → 容錯移轉 → 原主動節點升級。需準備共用磁碟、網路名稱、IP 位址資源。詳細步驟參考《SQL Server 2008 容錯移轉叢集升級指南》。
升級非終點,而是新維運週期的起點。嚴守檢查清單、選擇側邊遷移、保留完整回滾方案,才能將風險降至最低。