前言
SQL Server 2000 引入**命名執行個體**機制,單一伺服器可運行多個獨立執行個體。但多執行個體環境帶來特有的配置、工具、連線、遷移問題。本文針對四大高頻問題提供權威解答。
問題 1:Analysis Services 是否支援多執行個體?
答:不支援。
- 單一伺服器**僅能運行一個** Analysis Services 服務 (SQL 2000 為
MSOLAP 服務)
- **無法**同時運行 OLAP Services 7.0 與 Analysis Services 2000
- 若需多版本共存,需採用**多伺服器**架構或虛擬化隔離
問題 2:多執行個體環境下,管理工具安裝在哪裡?
答:系統磁碟機共用目錄,所有執行個體共用一套工具。
- 路徑:
%ProgramFiles%\Microsoft SQL Server\80\Tools (SQL 2000)
- 工具版本:**隨最後安裝的執行個體升級** (向後相容)
- 支援管理:SQL 7.0 伺服器、SQL 2000 所有執行個體
- **替換行為**:安裝 SQL 2000 工具會覆蓋 SQL 7.0 工具
- **含義**:無法為不同執行個體使用不同版本工具;工具升級影響所有執行個體管理體驗
問題 3:安裝時必須手動配置連接埠號嗎?
答:不必。
- 安裝精靈提供兩種模式:
- **動態連接埠** (預設):啟動時向作業系統申請可用埠,向 SQL Browser 服務註冊
- **靜態連接埠**:手動指定固定埠 (穿透防火牆、舊版用戶端相容)
- **最佳實務**:
- 內部網路、啟用 SQL Browser → 動態埠 (零配置)
- 跨防火牆、舊版 ODBC 驅動、固定 IP 策略 → 靜態埠 (需文檔化管理)
- **SQL Browser 服務** (UDP 1434) 負責解析執行個體名稱 → 實際埠號,**必須啟動** 以支援動態埠連線
問題 4:同一伺服器同時運行 SQL 7.0 與 SQL 2000 時,能否共用使用者資料庫?
答:不能。
- **檔案格式不相容**:SQL 7.0/2000 重寫儲存引擎,資料/記錄檔結構不同
- **單向升級**:SQL 7.0 資料庫附加/還原至 SQL 2000 → **自動升級**為 2000 格式,**不可逆**
- **無降級路徑**:無任何工具/指令可將 2000 格式轉回 7.0
- **共存策略**:
- 資料層面同步:複寫 / DTS / BCP / 連結伺服器 定期同步
- 應用層面隔離:不同連線字串指向不同執行個體
- 遷移截止日:規劃 7.0 應用全面遷移至 2000,淘汰 7.0 執行個體
延伸:多執行個體運維黃金法則
- 命名規範:
HOSTNAME\INSTANCE_PURPOSE_ENV (如 PROD-SQL-01\ERP_PROD, PROD-SQL-01\DW_STAGE)
- 資源治理:
sp_configure 'max server memory' **每個執行個體單獨設定**,總和 ≤ 物理記憶體 - OS 預留 (4~8 GB)
- 服務帳號隔離:每個執行個體使用**獨立網域服務帳號** (最小權限、審計清晰、密碼輪換互不影響)
- 備份排程錯峰:避免同時備份佔滿 I/O 頻寬、磁碟輸送量
- 修補策略:先修補非生產執行個體驗證,再滾動更新生產執行個體 (始終保持至少一個可用)
- 監控視圖:建立中央監控資料庫,收集所有執行個體
sys.dm_os_performance_counters, sys.dm_exec_requests 等 DMV 數據
總結
多執行個體是**資源整合與隔離的平衡術**。核心認知:**AS 不支援多實例、工具強制共用、連接埠動態為主、跨版本資料庫不可共用**。建立標準化命名、資源配額、服務帳號、備份排程、修補流程、監控視圖「六大治理體系」,讓多執行個體環境從「管理負擔」轉化為「資源彈性資產」。