徵兆
請試想下列案例:
-
你有一個 2008 SQL Server R2 Microsoft實例,它承載了 UCP) (使用者控制點。
-
你在實例上安裝 SQL Server 2008 R2 的累積更新套件 1。
在這種情況下,安裝成功了。 然而,SQL Server 服務無法啟動。 此外,以下錯誤訊息會記錄在 SQL Server 錯誤日誌檔案中:
<日期> <時間> spid7s 執行 [sysutility_mdw].sysutility_ucp_core.sp_initialize_mdw_internal<日期><時間> spid7s SQL Server阻擋對元件「Agent XPs」程序「sys.xp_qv」的存取,因為該元件在該伺服器的安全設定中已被關閉。 系統管理員可透過使用 sp_configure 啟用「代理 XP」。 欲了解更多關於啟用「代理 XPs」的資訊,請參閱 SQL Server Books Online 中的「Surface Area Configuration」。<日期><時間> spid7s 錯誤:15281,嚴重度:16,狀態:1。<日期><時間> spid7s SQL Server阻擋了對元件「Agent XPs」程序「sys.xp_qv」的存取,因為該元件在該伺服器的安全設定中被關閉。 系統管理員可透過使用 sp_configure 啟用「代理 XP」。 欲了解更多關於啟用「代理 XPs」的資訊,請參閱 SQL Server Books Online 中的「Surface Area Configuration」。<日期><時間> spid7s 誤差:912,嚴重程度:21,狀態:2。<日期><時間> spid7s 腳本層級升級失敗,因為升級步驟「sqlagent100_msdb_upgrade.sql」遇到錯誤 15281,狀態 1,嚴重度 16。 這是嚴重的錯誤狀況,可能會干擾正常運作,資料庫將被關閉。 如果錯誤發生在升級「主」資料庫時,整個 SQL Server 實例將無法啟動。 檢查先前的錯誤日誌條目是否有錯誤,採取適當的修正措施,並重新啟動資料庫,讓腳本升級步驟順利完成。<日期><時間> spid7s 錯誤:3417,嚴重度:21,狀態:3。<日期><時間> spid7s 無法恢復主資料庫。 SQL Server 無法執行。 從完整備份還原主備份、修復或重建。 欲了解更多如何重建主資料庫的資訊,請參閱 SQL Server Books Online。<日期><時間> spid7s SQL 追蹤因伺服器關閉而停止。 追蹤識別碼 = 「1」。 這只是一則資訊訊息;不需要使用者操作。
此問題也可能發生在你將SQL Server 2008 R2 版本候選實例 (RC) (該 RC 承載 UCP 的 2008 SQL Server R2 版本時。
原因
此問題發生於 SQL Server 2008 R2 執行 msdb 資料庫升級腳本時,未啟用 Agent XPs 選項。這個腳本會在 SQL Server 服務啟動時執行。 腳本執行一個與 UCP 相關的儲存程序。 此外,儲存程序還要求啟用 Agent XPs 選項。
解決方案
累積更新資訊
這個問題的修正最早是在累積更新 2 中釋出的。 欲了解更多如何取得 SQL Server 2008 R2 累積更新套件的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
2072493 SQL Server 2008 R2 累積更新套件 2 備註 由於建置是累積式,每個新修正版本都包含先前 SQL Server 2008 R2 修正版本中所有的熱修正與安全修正。 我們建議您考慮套用包含此熱修正的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 SQL Server 2008 R2 版本是在 SQL Server 2008 R2 發布後釋出的
因應措施
注意:如果你還沒安裝累積更新套件 1,應該依照「解決」部分安裝累積更新套件 2。 此問題不存在於 SQL Server 2008 R2 的累積更新套件 2 及更新版本中。如果您在安裝累積更新套件 1 後遇到此問題,請依照以下步驟來解決:
-
在 SQL Server 2008 R2 實例上啟用追蹤旗標 902。 如果要執行這項操作,請依照下列步驟執行:
-
開啟 SQL Server Configuration Manager。
-
在 SQL Server 組態管理員中,點選 SQL Server 服務。
-
雙擊 SQL Serverservice。
-
在 SQL Server 屬性對話框中,點選進階標籤。
-
點擊 進階 標籤,找到 啟動參數 項目。
-
在現有字串值末加上 ;-T902,然後點擊 確定。
-
-
右鍵點擊 SQL Serverservice,然後點 選開始。
-
如果 SQL Server Agent 服務正在執行,請右鍵點擊 SQL Server Agent 服務,然後點擊停止。
-
打開 SQL Server Management Studio,然後連接到 SQL Server 2008 R2 的實例。
-
執行以下語句:
執行sp_configure「進階表演」1人; 重新配置; EXEC sp_configure「允許更新」,0; 重新配置; 執行sp_configure「特工經驗值」1人; 重新配置; 走吧
-
在 SQL Server 組態管理員中,右鍵點擊 SQL Serverservice,然後點選停止。
-
移除 SQL Server 2008 R2 實例上的追蹤旗標 902。 要做到這點,請刪除你在步驟 1f 中更新的字串值中的 ;-T902。
-
右鍵點擊 SQL Serverservice,然後點 選開始。
-
右鍵點擊 SQL Server Agent 服務,然後點選開始。
-
在 SQL Server Management Studio 中,重新連接 SQL Server 2008 R2 實例。
-
在物件總管中,展開管理,右鍵點擊資料收集,然後點選啟用資料收集。注意:若資料收集已啟用,啟用資料收集項目將無法使用。
注意:當您在 SQL Server Management Studio 中連接 SQL Server 2008 R2 實例時,可能會收到以下錯誤訊息:
錯誤:18401登入失敗,使用者 '<登入名稱>'。 原因:伺服器處於腳本升級模式。 目前只有管理員能連線。
此錯誤訊息表示 SQL Server 2008 R2 正在完成累積更新套件 1 的安裝。 如果你收到這個錯誤訊息,請等幾分鐘,然後再重新連接到 SQL Server 2008 R2 的實例。
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
參考資料
欲了解 SQL Server 的增量服務模型,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
935897 SQL Server 團隊提供增量式服務模型,以提供針對回報問題的熱修正。欲了解更多關於 SQL Server 更新命名結構的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
822499 Microsoft SQL Server 軟體更新套件的命名結構 欲了解更多軟體更新術語,請點擊以下文章編號以瀏覽Microsoft知識庫中的文章:
824684 用來描述軟體更新的標準術語Microsoft描述