本文可協助您解決將舊版 SQL Server 升級至 SQL Server 2012 時所發生的問題。
原始產品版本:SQL Server
原始 KB 編號: 2712929
徵兆
當您嘗試將 SQL Server 從一個主要版本升級到另一個主要版本時(例如,從 SQL Server 2012 升級至 SQL Server 2017),安裝程式似乎會在SQLEngineConfigAction_upgrade步驟期間停止回應。
發生此問題時,會在Detail.txt檔案結尾記錄類似下列的設定資訊:
(01) 2012-05-03 06:18:29 SQLEngine: --SqlEngineSetupPrivate: Setting Security Descriptor D:(<GUID value>) on Directory <Data directory>
(01) 2012-05-03 06:18:29 Slp: Sco: Attempting to set security descriptor for directory <Data Directory>, security descriptor D:( (<GUID value>))
(01) 2012-05-03 06:18:29 Slp: Sco: Attempting to normalize security descriptor D:( (<GUID value>))
(01) 2012-05-03 06:18:29 Slp: Sco: Attempting to replace account with sid in security descriptor D:( (<GUID value>))
(01) 2012-05-03 06:18:29 Slp: ReplaceAccountWithSidInSddl -- SDDL to be processed: D:( (<GUID value>))
(01) 2012-05-03 06:18:29 Slp: ReplaceAccountWithSidInSddl -- SDDL to be returned: D:( (<GUID value>))
(01) 2012-05-03 06:18:29 Slp: Sco: Directory <Data Directory>is a volume mount point. VolumeName is \\?\Volume{<VolumeID> }\
(01) 2012-05-03 08:27:50 Slp: Sco: Add DACL to underlying volume '\\?\Volume{<VolumeID }\' for directory '<Data directory>’from SDDL 'D:((<GUID value>))'
注意
Detail.txt檔案位於資料夾中:\Program Files\Microsoft SQL Server\nnn\Setup Bootstrap\Log\timestamp
。
原因
如果有許多包含 SQL Server 數據的子資料夾和檔案,就會發生此問題。
注意
如果資料庫使用 FILESTREAM 功能或 FILETABLE 功能整合至 NTFS 檔系統,就更有可能發生此問題。
解決方法
不需要採取任何動作來解決此問題。 若要完成升級,請讓 SQL Server 2012 安裝程式完成。
其他相關資訊
因為 SQL Server 安裝程式會呼叫 SetSecurityInfo
Windows API,因此會發生徵兆一節中所述的問題。 SetSecurityInfo
API 會將任意存取控制清單 (DACL) 套用至包含 SQL Server 資料的子資料夾和檔案。 此程式可能需要很長的時間才能完成。