已知 SQL Server 2012 設定和移轉問題

本文說明 2012 SQL Server 設定和移轉問題。

原始產品版本: SQL S
原始 KB 編號: 2681562

SQL Server 2012 特定的安裝和移轉問題

SQL Server 2012 年未啟用 .NET Framework 3.5 時可能發生的安裝問題

問題 1 - 不完整的 SQL 故障轉移叢集或獨立安裝

徵狀

在尚未安裝 .NET Framework 3.5 的伺服器或因特網存取受限的伺服器上,SQL Server 2012 安裝程式不會安裝相依於 .NET Framework 3.5 的元件。 因此,SQL Server 2012 安裝可能不完整。

注意事項

Windows 8.1 或 Windows Server 2012 R2 將不會讓您繼續安裝。

未啟用 .NET Framework 時,可能會在 2012 SQL Server 安裝期間顯示類似下列的錯誤訊息。

SQL Server 2012 安裝程式錯誤訊息的螢幕快照:啟用 Windows 功能時發生錯誤。

預防

若要避免此問題,請先在叢集的所有節點或獨立伺服器上啟用 .NET Framework 3.5,再安裝 SQL Server 2012。

解決方案

若要在獨立伺服器上解決此問題,請啟用 .NET Framework 3.5,然後再次執行安裝程式以新增其他功能。

若要在叢集環境中解決此問題,請卸載不完整的 SQL Server 2012 實例、啟用 .NET Framework 3.5,然後重新安裝 SQL Server 2012。

注意事項

在叢集環境中,您無法再次執行 SQL Server 2012 安裝程式來新增略過的功能。

若要在獨立伺服器上解決此問題,請啟用 .NET Framework 3.5,然後再次執行 SQL Server 安裝程式。

問題 2 - 系統不正確地提示使用者下載並安裝 .NET Framework 3.5

徵狀

當使用者嘗試安裝 CU1 或 CU2 時,系統可能會錯誤地提示他們下載並安裝 .NET Framework 3.5。 即使安裝的元件不相依於 .NET Framework 3.5,還是可能會發生此問題。

在此情況下,您可能會收到類似下列的錯誤訊息。

.Net Framework 3.5 安裝錯誤訊息的螢幕快照:無法安裝下列功能。

原因

這是 SQL Server 2012 CU1 和 CU2 中的已知問題。

注意事項

此問題已在 SQL Server 2012 和更新版本的累積更新 3 中修正。

預防

若要避免此問題,請執行下列其中一項:

  • 啟用 .NET Framework 3.5、套用 CU1 更新套件或 CU2 更新套件,然後停用 .NET Framework 3.5。

    注意事項

    只有在您的安裝未包含相依於 .NET Framework 3.5 的元件時,才應該停用 .NET Framework 3.5。

  • 從包含 SQL Server 2012 和 CU3 或更新版本的滑流安裝套件安裝 SQL Server 2012。

  • 套用累積更新 3 或更新版本。 如需詳細資訊,請參閱 2012 年 SQL Server 發行之後發行的 SQL Server 2012 組建。

問題 3 - Windows 應用程式相容性模式警示會在無訊息安裝期間顯示

徵狀

在 Windows 8.1、Windows 8、Windows Server 2012 R2、Windows Server 2012、Windows 10 和 Windows Server 2016 中,.NET Framework 是功能隨選 (FOD) 元件。 此外,Windows 10、Windows 8.1 和 Windows 8 系統原則和 Windows Server 2016、Windows Server 2012 R2 和 Windows Server 2012 系統原則會要求使用者在何時收到警示已啟用FOD元件。

注意事項

根據預設,Windows 8 和 Windows Server 2012 中會啟用 .NET Framework 4.0。 此外,Windows 8.1 和 Windows Server 2012 R2 中已啟用 .NET Framework 4.5,而 Windows 10 和 Window Server 2016 中已啟用 .NET Framework 4.6。 不過,.NET Framework 3.5 已停用。

因此,在無訊息安裝期間,可能會顯示提示使用者下載並安裝 .NET Framework 3.5 的程式相容性模式警告。 無法隱藏這些程式相容性警示。 警告的螢幕快照如下所示:

Windows Server 2012 R2 和 Windows Server 2012 - 完整伺服器

完整伺服器上 .Net Framework 3.5 安裝錯誤訊息的螢幕快照:無法安裝下列功能。

Windows Server 2012 R2 和 Windows Server 2012 - Server Core

無法透過 Windows 功能錯誤自動安裝角色和功能的螢幕快照。

預防

若要避免這個問題,用戶可以在執行無訊息安裝之前啟用 .NET Framework 3.5。

其他 SQL Server 2012 設定問題

問題 1:當您嘗試安裝 SQL Server 2012 的第二個實例時,可能會產生 .NET Framework 未處理的例外狀況

徵狀

請試想下列案例:

  • 您會安裝 SQL Server 2012 的實例。
  • 當您安裝 SQL Server 2012 的實例時,會建立 .NET Framework 4.0 用戶組態檔。 此外,.NET Framework 3.5 會在安裝期間啟用。
  • 您嘗試安裝第二個 SQL Server 2012 實例。

在此案例中,可能會產生未處理的例外狀況。 您可能會收到類似下列的錯誤訊息:

為 userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings 建立組態區段處理程式時發生錯誤:無法載入檔案或元件系統、Version=4.0.0.0、Culture=neutral、PublicKeyToken=xxxxx 或其相依性之一。 系統找不到指定的檔案。 (C:\Users\Administrator\AppData\Local\Microsoft_Corporation\LandingPage.exe_StrongName_ ryspccglaxmt4nhllj5z3thycltsvyyx\11.0.0.0\user.config)

原因

在 Windows 8 和 Windows Server 2012 中,發生此問題是因為預設會在 Windows 8 和 Windows Server 2012 中啟用 .NET Framework 4.0。 因此,當您安裝 SQL Server 2012 時,會建立 .NET Framework 4.0 用戶組態檔。 此外,.NET Framework 3.5 會在安裝期間啟用。

當您嘗試安裝 SQL Server 2012 的第二個實例時,安裝會使用 .NET Framework 2.0,因為已安裝 .NET Framework 3.5。 這與使用者組態檔中的設定衝突,導致未處理的例外狀況。

在 Windows 8.1 和 Windows Server 2012 R2 中,發生此問題是因為 Windows 8.1 和 Windows Server 2012 R2 中預設會啟用 .NET Framework 4.5。 因此,當您安裝 SQL Server 2012 時,會建立 .NET Framework 4.5 用戶組態檔。 此外,.NET Framework 3.5 會在安裝期間啟用。

當您嘗試安裝 SQL Server 2012 的第二個實例時,安裝會使用 .NET Framework 2.0,因為已安裝 .NET Framework 3.5。 這與使用者組態中的設定發生衝突會導致未處理的例外狀況。

在 Windows 10 和 Windows Server 2016 中,發生此問題是因為預設會啟用 .NET Framework 4.6。 因此,當您安裝 SQL Server 2012 時,會建立 .NET Framework 4.6 用戶組態檔。 此外,.NET Framework 3.5 會在安裝期間啟用。

當您嘗試安裝 SQL Server 2012 的第二個實例時,安裝會使用 .NET Framework 2.0,因為已安裝 .NET Framework 3.5。 這與使用者組態檔中的設定衝突,導致未處理的例外狀況。

預防

若要避免此問題,請先刪除下列資料夾中的 User.config 檔案,再安裝 SQL Server 2012 的第二個實例:

%userprofile%\AppData\Local\Microsoft_Corporation\LandingPage.exe_StrongName_ryspccglaxmt4nhllj5z3thycltsvyyx\11.0.0.0

解決方案

注意事項

此問題已在 Microsoft SQL Server 2012 Service Pack 1 (SP1) 中修正。

如果第一個實例已安裝 Service Pack 1,您就不應該遇到此問題。 如果您無法在第一個實例上安裝 Service Pack 1,請執行下列其中一項:

  • 從包含 SQL Server 2012 和 Microsoft SQL Server 2012 Service Pack 1 的滑流安裝套件安裝第二個 SQL Server 2012 實例。 安裝新實例之後,您必須套用 SQL Server 2012 Service Pack 4 或更新版本的更新。 如需詳細資訊,請參閱 如何獲取 SQL Server 2012 的最新 Service Pack

  • 使用 SQL Server 2012 SP4 檔案預先修補,然後安裝 SQL Server 2012:

    • 在未安裝 SQL Server 2012 RTM 的電腦上:

      1. 下載並安裝 SQL Server 2012 SP4

      2. 在 [ 授權條款] 畫面上,按兩下 [ 我接受授權條款 ] 複選框,然後選取 [ 下一步]

        注意事項

        安裝程式檔案會隨即安裝,且安裝精靈會自動關閉。

      3. 確認安裝。 若要這樣做,請啟動 [新增或移除程式] ,並確認已列出下列專案:

        • Microsoft SQL Server 2012 安裝程式 11.0.7001.0 版
        • Microsoft Visual C++的兩個專案。
    • 在具有現有 SQL Server 2012 RTM 實例的電腦上:

      1. 下載並安裝 SQL Server 2012 SP4

      2. 將SP4檔案解壓縮到本機資料夾。 例如,將SP4檔案解壓縮至 c:\sp4

        注意事項

        在此案例中,您無法執行 SQL Server 2012 SP4 安裝程式。

      3. 在您解壓縮 SP4 檔案的資料夾中,按兩下 [SqlSupport.msi ],然後選取[ 是]

      4. 確認安裝。 若要這樣做,請啟動 [新增或移除程式],並確認已列出 Microsoft SQL Server 2012 安裝程式 11.0.7001.0 版。

        注意事項

        請檢查 [SQL Server 2012 SP4 下載] 頁面上的 [安裝指示] 區段,以判斷伺服器的正確下載。

問題 2:您無法在 Windows Server 2012 R2 或 Windows Server 2012 上安裝已啟用檔案 Stream 共用功能的 SQL Server 2012 故障轉移叢集

徵狀

當您嘗試在 Windows Server 2012 上安裝已啟用共用功能的新 SQL Server 2012 故障轉移叢集FileStream時,可能會收到類似下列的錯誤訊息:

將資源 'SQL Server Filestream share (FILESTREAM) ' 的私用屬性 'Security0x20Descriptor' 設定為值 'System.Byte[]' 時發生錯誤。 錯誤:無法從提供者呼叫叢集程序代碼。 例外狀況訊息:找不到。

原因

發生此問題的原因是 Windows Server 2012 中已卸除安全描述符屬性的支援。

預防

若要避免此問題,請在未啟用共用功能的情況下 FileStream 安裝故障轉移叢集。 安裝完成之後,請啟用 FileStream 共用功能。

解決方案

注意事項

此問題已在 Microsoft SQL Server 2012 Service Pack 1 (SP1) 中修正。

若要解決此問題,請使用 [新增或移除程式] 卸載失敗的叢集實例,然後在未啟用共用功能的情況下 FileStream 安裝故障轉移叢集。 安裝完成之後,請啟用 FileStream 共用功能。

問題 3:SQL Server 2012 安裝期間發生錯誤:「嘗試載入格式不正確的程式」

徵狀

請試想下列案例:

  • 您會安裝 64 位版本的 Windows 10、Windows 8.1 或 Windows 8。
  • 您嘗試在 Windows-on-Windows (WoW) 模式中安裝 SQL Server 2012。
  • SQL Server 2012 安裝包含 Reporting Services。

在此案例中,安裝會失敗。 此外,您會收到類似下列的錯誤訊息:

作業失敗,發生0x8007000B
嘗試載入格式不正確的程式。

作業失敗錯誤訊息的螢幕快照。

預防

若要避免此問題,請先使用 伺服器管理員 安裝 IIS ASP.NET 3.5 元件,再安裝 SQL Server 2012。 如需詳細資訊,請參閱在 Windows 8 或 Windows Server 2012 中卸載 ASP.NET 4.5 之後,ASP.NET 2.0 和 ASP.NET 3.5 無法運作

問題 4:您無法安裝 SQL Server 2012 Enterprise Edition 故障轉移叢集實例

徵狀

請試想下列案例:

  • 您可以執行下列其中一項:

    • 您會建立包含 SQL Server 2012 和 CU1 的傳送安裝套件。
    • 在安裝 SQL Server 2012 之前,請先使用 CU1 預先修補。
  • 您可以使用 UIMODE=EnableUIOnServerCore 選項來安裝 SQL Server 2012。

    在此案例中,安裝會失敗。 您會收到類似下列的錯誤訊息。

    [功能規則] 頁面的螢幕快照,其中顯示 Windows Server Core 支援的功能 () 檢查失敗。

    錯誤的詳細數據如下所示。

    螢幕快照顯示 [規則檢查結果] 對話框中錯誤的詳細數據。

原因

之所以發生此問題,是因為在 DQ 安裝期間會隱含地選取此功能與引擎元件。

注意事項

Server DQ Core 模式不支援此功能。

解決方案

注意事項

此問題已在 SQL Server 2012 RTM CU3 和 SQL Server 2012 Service Pack 1 中修正。

若要解決此問題,請執行下列其中一項:

  • 建立包含 SQL Server 2012 和 CU3 的傳送安裝套件。
  • 執行 CU3 安裝套件,預先修補安裝程式支援檔案。

問題 5:當您嘗試將叢集節點升級至 SQL Server 2012 時的錯誤訊息:「無法儲存資源 'SQL 網络名稱 (<SQL 名稱>) 的一般屬性」

如需此問題及其解決方式的詳細資訊,請參閱當您嘗試將叢集節點升級至 SQL Server 2012 時,發生「無法儲存資源 』SQL 網路名稱 () ' 的一般屬性」錯誤

問題 6:當您使用 OpenSQLFileStream API 時發生錯誤訊息:「System.ComponentModel.Win32Exception (0x80004005) :不支援要求」。

徵狀

請試想下列案例:

  • 您會在執行 Windows Server 2012 的伺服器上安裝 SQL Server 2008 R2 的實例。
  • 您可以將 SQL Server 2008 R2 的實例升級至 SQL Server 2012 Service Pack 1 (SP1) 。
  • 您會使用 OpenSQLFileStream API。

在此情況下會收到類似下列的錯誤訊息:

System.ComponentModel.Win32Exception (0x80004005) :不支援要求。

原因

發生此問題的原因是 SQL Server 2012 升級不正確地刪除下列登錄機碼:

HKEY_LOCALMACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\FsctlAllowList\FSCTL_SQL_FILESTREAM_FETCH_OLD_CONTENT

因應措施

若要解決此問題,請使用登錄 編輯器 重新建立下列登錄機碼:

 HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\FsctlAllowList
 Dword: FSCTL_SQL_FILESTREAM_FETCH_OLD_CONTENT
 Value: 0x92560

另請參閱