SQL Server 版本升級是不可逆的高風險操作,涉及系統資料庫結構升級、中繼資料遷移、相容性層級變更。嚴格遵循「備份先行、驗證並行、分階段執行、可回滾」原則,將風險降至最低。
升級前八大強制檢查項目
- 作業系統相容性:確認 OS 版本、Service Pack、熱修補符合 SQL 2000 需求 (Win NT 4.0 SP5+ / Win 2000)。
- 磁碟空間:預留安裝檔案、暫存檔、資料庫成長、備份檔空間 (建議剩餘 > 總資料庫大小 2 倍)。
- 資料庫一致性驗證:對每個資料庫 (含系統庫) 執行:
`DBCC CHECKDB` — 邏輯/實體一致性
`DBCC NEWALLOC` — 頁面配置一致性 (SQL 7.0 專用)
`DBCC CHECKCATALOG` — 系統目錄一致性
- 開啟資料庫數上限:`sp_configure 'open databases'` ≥ 現有資料庫總數 (含 master/model/msdb/tempdb)。
- 完整備份所有資料庫:含系統資料庫。條件允許時,整個 SQL Server 目錄 (含資料、記錄、驅動程式) 離線備份。
- 登錄表備份:匯出 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer` 供回滾用。
- 關閉唯讀狀態:`sp_dboption 'dbname', 'read only', 'false'` 或 EM 介面取消勾選。
- 停止所有應用連線:通知業務單位、關閉應用服務、封鎖防火牆連接埠。
升級執行步驟 (Standard Edition 範例)
- 插入安裝媒體,啟動 `autorun.exe` 或 `setup.bat`。
- 選擇:「安裝 SQL Server 2000 元件」→「Standard Edition」→「資料庫伺服器 - Standard Edition」。
- 歡迎頁 → 下一步 → 輸入安裝電腦名稱對話框。

- 授權協議 → 產品金鑰 → 安裝類型選擇:「升級現有安裝」。
- 選擇升級目標實例 (預設/具名)。
- 系統資料庫升級確認:master/model/msdb/tempdb 結構升級需獨佔存取。
- 服務帳號設定:網域帳號/本地系統帳號,設定啟動類型 (自動/手動)。
- 驗證模式:Windows 驗證 / 混合模式 (sa 密碼設定)。
- 錯誤報告/使用狀況回報選項。
- 開始複製檔案、升級腳本執行、系統資料庫轉換 — 此過程不可中斷。
- 完成後驗證:服務啟動、EM 連線、版本確認 (`SELECT @@VERSION`)、應用煙霧測試。
升級後驗證清單
- ☑ `SELECT @@VERSION` 確認 8.00.xxx 版本號。
- ☑ 所有資料庫狀態 ONLINE,無 SUSPECT/RECOVERY_PENDING。
- ☑ 系統資料庫大小合理增長 (master/model/msdb 結構擴充)。
- ☑ 應用連線測試:驗證預存程式、觸發器、連結伺服器、複寫、DTS 套件正常。
- ☑ 效能基準比對:關鍵查詢執行時間、CPU/記憶體/IO 使用率。
- ☑ 相容性層級檢查:`sp_dbcmptlevel` 確認各資料庫適當層級 (80 = SQL 2000)。
回滾應急預案
- 停止 SQL Server 服務。
- 還原系統資料庫備份 (master/model/msdb/tempdb)。
- 還原使用者資料庫備份。
- 匯入登錄表備份 `.reg` 檔。
- 啟動 SQL Server 7.0 服務,驗證應用可用。
- 若無完整備份,唯一選項:重新安裝 SQL 7.0 並從應用層重建資料 (極高成本)。
實務建議
- 升級前在測試環境完整演練,驗證應用相容性 (保留字、系統函數行為變更、DTS 套件升級)。
- 採用「並行執行」策略:新建 SQL 2000 實例,資料同步 (複寫/記錄傳送/備份還原),應用逐步切換,驗證無誤再淘汰舊實例。
- 記錄升級全程日誌 (安裝日誌、錯誤日誌、驗證腳本輸出),納入變更管理檔案。
升級不是終點,而是新版本生命週期的起點。嚴謹的前置檢查、完整的備份、可驗證的回滾方案,是專業 DBA 對業務連續性的莊嚴承諾。