摘自http://download.microsoft.com/download/e/5/3/e53a74e2-9f13-4736-b263-df72af00a8f0/ReadmeSQLEXP2005Advanced.htm#_3462_setup_issues_238p
3.0 安裝問題
本節詳細介紹 SP1 的安裝問題。具有進階服務的 SQL Server 2005 Express Edition 包含 SQL Server 2005 Service Pack 1 中所包含的所有更新。
注意: |
除非另有說明,這些問題僅適用於安裝新的 SQL Server Express 執行個體的情況。 |
3.1 現有的 SQL Native Client 安裝可能導致安裝失敗
安裝可能失敗並復原,同時顯示以下錯誤訊息:“找不到產品 Microsoft SQL Native Client 的安裝包。請嘗試使用安裝包“sqlncli.msi”的有效副本重新安裝。”若要解決此問題,請使用“添加或刪除程式”卸載 SQL Native Client。
3.2 System Configuration Checker失敗並顯示“效能監控器計數器檢查失敗”訊息
在開始安裝 SQL Server 之前,System Configuration Checker (SCC) 會驗證效能監控器計數器登錄機碼的值。如果 SCC 無法驗證現有的登錄機碼,或者 SCC 無法運行 Lodctr.exe 系統程式,則 SCC 檢查會失敗,並且安裝程式會被阻止。若要完成安裝,您必須手動增加註冊表項。
注意: |
如果註冊表編輯不當,則可能會導致嚴重的問題並可能需要您重新安裝作業系統。Microsoft 不保證可以解決因註冊表編輯不當而導致的問題。在編輯註冊表之前,請備份所有重要資料。有關如何備份、恢複和編輯註冊表的資訊,請參閱 Microsoft 知識庫文章 256986 。 |
若要手動增加計數器登錄機碼,請執行下列操作:
在工作列中,依次單擊“開始”和“運行”,在“運行”文字框中鍵入 regedit.exe,再單擊“確定”。
導航到以下登錄機碼:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]。尋找下列項:
- "Last Counter"=dword:00000ed4 (5276)
- "Last Help"=dword:00000ed5 (5277)
驗證值。上一步 (5276) 中的 Last Counter 值必須與以下登錄機碼內 Perflib\009 中 Counter 項的最大值相等,上一步 (5277) 中的 Last Help 值必須與以下登錄機碼內 Perflib\009 中 Help 項的最大值相等:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]。
如有必要,請修改 \Perflib 項中 Last Counter 和 Last Help 的值。在右窗格中,按右鍵 Last Counter 或 Last Help,選擇“修改”,單擊 Base = Decimal,在“值”資料欄位中設定值,再單擊“確定”。如有必要,請對其他項重複此操作,然後關閉登錄編輯程式。
重新運行 SQL Server Express 安裝程式。
3.3 如果禁用了 Windows Server 2003 的Data Encryption Service,則安裝將失敗,並出現 Windows 徽標要求對話方塊
Windows 密碼編譯服務提供者 (CSP) 是執行身分識別驗證、編碼和Data Encryption Service的代碼,基於 Windows 的應用程式通過 Windows Server 2003 中的 CryptoAPI 訪問這些服務。如果停止或禁用 CSP 服務,則 SQL Server 安裝程式會失敗並顯示“Windows 徽標要求”訊息。
注意: |
在 Windows Server 2003 容錯移轉叢集中運行 SQL Server 安裝程式之前,必須在所有叢集節點上啟動 CSP 服務。 |
若要在 Windows Server 2003 中啟用 Windows CSP 服務,請執行下列操作:
在“控制台”中,開啟“管理工具”,再雙擊“服務”。
在“名稱”列中,按右鍵“Data Encryption Service”,再單擊“啟動”。
關閉“服務”。
運行安裝程式。
3.4 Windows 未完全啟用 MSDTC
由於未在 Windows 中完全配置 Microsoft 分散式交易協調器 (MS DTC),因此,應用程式可能無法在分散式交易中登記 SQL Server Express 資源。此問題會影響使用分散式交易的連結的伺服器、分散式查詢以及遠端預存程序。為了避免出現此類問題,您必須在安裝有 SQL Server Express 的伺服器中完全啟用 MS DTC 服務。
若要完全啟用 MS DTC,請執行下列操作:
在“控制台”中,開啟“管理工具”,再雙擊“元件服務”。
在左窗格的“控制台根目錄”中,單擊“元件服務”,再展開“電腦”。
按右鍵“我的電腦”,再單擊“屬性”。
在 MSDTC 選項卡中,單擊“安全配置”。
在“安全設定”下,選中所有複選框。
驗證是否已將“DTC 登入帳戶”名稱設定為 NT AUTHORITY\NetworkService。
3.5 “強制加密”配置可能導致 SQL Server Express 安裝失敗
如果現有的 SQL Server 用戶端安裝配置為啟用了“強制加密”選項,則安裝程式可能會失敗。若要解決此問題,請在所有 SQL Server 用戶端上禁用此選項。對於 SQL Server 2000 中的 Microsoft 資料訪問組件 (MDAC) 用戶端,請使用 SQL Server 2000 用戶端網路工具 + 生產力。對於 SQL Native Client,請使用“添加或刪除程式”卸載 SQL Native Client。
3.6 安裝 SQL Server 2000 的預設執行個體可能會禁用 SQL Server Express
如果您的電腦已安裝 SQL Server 2000 管理工具和 SQL Server Express 的預設執行個體,則可以使用 SQL Server 安裝程式安裝 SQL Server 2000 的預設執行個體。但是,這樣做會禁用已安裝的 SQL Server Express 執行個體。因此,如果電腦上已安裝 SQL Server 2000 管理工具和 SQL Server Express 的預設執行個體,則不要安裝 SQL Server 2000 的預設執行個體。
3.7 在 Windows 網域控制站上安裝 SQL Server Express
安全記事: |
我們不建議在網域控制站中運行 SQL Server Express。 |
可以在 Windows 網域控制站中安裝 SQL Server Express;但是,SQL Server Express 無法在 Windows Server 2003 網域控制站中像本地服務或網路服務那樣運行。SQL Server 服務帳戶應以 Windows 域使用者帳戶的身份運行。您也可安裝 SQL Server 服務帳戶以本地系統的身份運行,但是不建議使用此選項。
不要在安裝完 SQL Server Express 之後更改伺服器的角色。例如,如果您在成員伺服器中安裝了 SQL Server Express,則不要使用 Dcpromo 工具將該伺服器提升為網域控制站。或者,如果您在網域控制站中安裝了 SQL Server Express,則不要使用 Dcpromo 將該伺服器降級為成員伺服器。如果在安裝完 SQL Server Express 之後更改伺服器的角色,便會導致功能丟失,不支援這樣做。
3.8 維護模式提示需要 Setup.exe 的路徑
如果在維護模式下安裝新的 SQL Server Express 組件,則系統會提示需要 SQL Server Express 安裝介質上的 Setup.exe 的位置。指定該檔案位置時,路徑中一定要包含“Setup.exe”。例如,路徑“D:\”將失敗,而“D:\Setup.exe”將成功。
3.9 排除安裝命令 Shell 指令碼失敗故障
路徑變數中包含括弧時,Setup 命令 shell 指令碼可以產生 Windows 指令碼錯誤。出現該錯誤的原因是命令 shell 指令碼不支援路徑變數中包含的括弧。在將 32 位組件安裝到 64 位元電腦的 Windows (WOW64) 32 位子系統中的 Windows 時可能會出現該錯誤。例如,下列路徑值為“C:\Program Files (x86)\”的指令碼將產生一個錯誤,因為 shell 指令碼解譯器會將擴充的 PATH 變數中的括弧錯誤地解釋為 IF/ELSE 語句的一部分:
|
IF "%SOME_PATH%" == "" ( SET PATH=%PATH%;%PATH_A% ) ELSE ( SET PATH=%PATH%;%PATH_B% ) |
若要解決此問題,請更改該指令碼以刪除括弧。例如:
|
IF "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_A% IF NOT "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_B% |
或者從路徑中刪除包含括弧的 SQL 項。
3.10 現有的 Report Server 資料庫檔案可能導致安裝失敗
通過使用 SAVESYSDB 參數從命令提示字元運行安裝程式來卸載 SQL Server Express 執行個體(該執行個體承載 Reporting Services 執行個體的報表伺服器資料庫)時,報表伺服器資料庫檔案和其他系統資料庫檔案一起保留。預設情況下,這些檔案將命名為 ReportServer$Instancename 和 ReportServer$InstancenameTempdb。如果使用 USESYSDB 安裝參數重新安裝 SQL Server Express,並指定該執行個體承載報表伺服器資料庫,則安裝程式將由於這些資料庫檔案已經存在,而無法重新建立。
若要避免該問題,請執行下列操作之一:
- 在卸載之前使用 SAVESYSDB 刪除報表伺服器資料庫。
- 使用 SAVESYSDB 安裝參數時,不要與 SQL Server 同時安裝 Reporting Services。
- 在安裝 Reporting Services 時,使用 RSDATABASENAME 安裝參數指定報表伺服器資料的新名稱。
3.11 從 MSDE 2000 升級時的資料庫相容層級設定
本問題僅適用於將 MSDE 2000 執行個體升級到具有進階服務的 SQL Server Express 的情況。
將 MSDE 2000 執行個體升級到具有進階服務 SQL Server Express 時,資料庫相容層級仍保留為 80,以便能與現有 MSDE 2000 應用程式向後相容。這種向後相容層級會禁用某些具有進階服務的 SQL Server Express 的新功能。有關詳細資料,請參閱 SQL Server 2005 聯機叢書中的“sp_dbcmptlevel”參考主題。
3.12 如果系統資料庫目錄中存在單引號,則安裝可能失敗
本問題僅適用於將 SQL Server Express 執行個體升級到具有進階服務的 SQL Server Express 的情況。
將 SQL Server Express 執行個體升級到具有進階服務的 SQL Server Express 時,如果安裝系統資料庫的名稱中存在單引號,則安裝可能失敗。如果安裝失敗,則必須將系統資料庫移至名稱中沒有單引號的目錄。有關移動系統資料庫的詳細資料,請參閱 SQL Server 2005 聯機叢書中的“移動系統資料庫”。
3.13 對 ALTER DATABASE 的限制可能導致升級失敗
本問題僅適用於將 SQL Server Express 執行個體升級到具有進階服務的 SQL Server Express 的情況。
將 SQL Server Express 執行個體升級到具有進階服務的 SQL Server Express 時,安裝程式將升級系統資料庫。如果已對 ALTER DATABASE 文法實施了限制,則此升級可能失敗。對 ALTER DATABASE 的限制可能包括以下內容:
- 顯式拒絕 ALTER DATABASE 語句。
- 針對 ALTER DATABASE 的資料定義語言 (Data Definition Language) (DDL) 觸發器復原包含 ALTER DATABASE 語句的事務。
如果存在 ALTER DATABASE 限制,則安裝程式無法升級系統資料庫。您必須禁用這些限制,然後重新運行安裝程式。
3.14 不支援升級到具有進階服務的 SQL Server Express 的最終發布版本
具有進階服務的 SQL Server Express 的預發布版本無法升級到最終發布版本。安裝最終發布版本之前,必須卸載具有進階服務的 SQL Server Express 的預發布版本。
注意: |
如果電腦中已安裝 Visual Studio 2005,則在卸載此電腦上具有進階服務的 SQL Server Express 時,必須先修複 Windows 註冊表,然後才能使用 Visual Studio DataSet 設計工具。有關詳細資料,請參閱知識庫文章 917635 。 |
3.15 使用者執行個體正在運行時,SQL Server Express 無法升級。
使用者執行個體正在運行時,臨時資料檔案夾中的多個資料庫檔案將被鎖,並且無法進行任何升級。若要升級 SQL Server Express 安裝,必須手動關閉正在啟動並執行使用者執行個體。
手動關閉使用者執行個體:
串連到 SQL Server Express 的父級執行個體,然後通過運行下列語句禁用使用者執行個體:
|
EXEC sp_configure ‘user instances enabled’,0 RECONFIGURE |
運行下列語句,確定所有活動使用者執行個體的管道名稱:
|
SELECT owning_principal_name, instance_pipe_name FROM sys.dm_os_child_instances WHERE heart_beat = ‘alive’ |
使用 instance_pipe_name 串連到每個使用者執行個體,然後運行下列語句手動關閉執行個體:
應用程式更新。
運行下列語句,重新啟用使用者執行個體:
|
EXEC sp_configure ‘user instances enabled’, 1 RECONFIGURE |
3.16 使用帶有使用者執行個體的 SQL Server 身分識別驗證時,升級可能會失敗
本問題僅適用於將 SQL Server Express 執行個體升級到具有進階服務的 SQL Server Express 的情況。
當安裝了具有進階的 SQL Server Express 來升級啟用了使用者執行個體的 SQL Server Express 執行個體時,必須使用 Windows 身分識別驗證。如果指定了 SQL Server 身分識別驗證,則升級可能失敗。