Microsoft 會以可下載的檔案發佈 Microsoft SQL Server 2008 SP2 修正程式。 由於修正是累積的,因此每個新版本都包含所有 Hotfix,以及前一個 SQL Server 2008 SP2 修正版本包含的所有安全性修正程式。
徵狀
請試想下列案例:
-
執行下列其中一項操作
-
安裝 Microsoft SQL Server 2008 Service Pack 2 (SP2) 或較新版本的累積更新套件的累積更新 2
-
將 SQL Server 2008 升級至 SQL Server 2008 Service Pack 3 (SP3)
-
將 SQL Server 2008 R2 升級至 SQL Server 2008 R2 Service Pack 1 (SP1) 或更新版本的 Service Pack
-
-
您可以在使用者資料庫中建立 SQL Server 代理程式工作,而將排程類型設定為在 SQL Server 代理程式啟動時自動開始。
-
重新開機 SQL Server 服務。
在此情境中,SQL Server 代理程式工作失敗。
原因
發生此問題是因為工作開始時,使用者資料庫尚未完成復原。 安裝 SQL Server 2008 SP2 的累積更新 2,或將 SQL Server 2008 升級至 SQL Server 2008 SP3 或將 SQL Server 2008 R2 升級至 SQL Server 2008 R2 SP1 之後,SQL Server 代理程式會于 MSDB 資料庫完成復原後啟動。
請注意,所有資料庫復原之後,SQL Server 代理程式應該會啟動。解決方案
SQL Server 2008 R2 Service Pack 1
此問題的修正程式最初是在累積更新 9 中發行。 若要進一步瞭解如何取得 SQL Server 2008 R2 Service Pack 1 的此累積更新套件,請按一下下列文章編號以在 Microsoft 知識庫中查看文章:
2756574 SQL Server 2008 R2 Service Pack 1Note 的累積更新套件 9 由於此版本是累積的,因此每個新修正程式版本都包含所有 Hotfix 以及前一個 SQL Server 2008 R2 Service Pack 1 修正版本中包含的所有安全性修正程式。 建議您考慮使用包含此 Hotfix 的最新修正程式版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2567616 SQL Server 2008 R2 Service Pack 1 發行後發佈的 SQL Server 2008 R2 版本
SQL Server 2008 Service Pack 3
此問題的修正程式最初是在 SQL Server 2008 Service Pack 3 的累積更新 7 中發行。 若要進一步瞭解如何取得此累積更新套件,請按一下下列文章編號以在 Microsoft 知識庫中查看文章:
2738350 SQL Server 2008 Service Pack 3Note 的累積更新套件 7 由於版本是累積的,因此每個新修正程式版本都包含所有 Hotfix 以及前一個 SQL Server 2008 Service Pack 3 修正版本包含的所有安全性修正程式。 建議您考慮使用包含此 Hotfix 的最新修正程式版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2629969 SQL Server 2008 Service Pack 3 發行後發佈的 SQL Server 2008 版本
SQL Server 2008 Service Pack 2 的累積更新 8
此問題的修正程式最初是在 SQL Server 2008 Service Pack 2 的累積更新 8 中發行。 若要進一步瞭解如何取得 SQL Server 2008 Service Pack 2 的此累積更新套件,請按一下下列文章編號以在 Microsoft 知識庫中查看文章:
2648096 SQL Server 2008 Service Pack 2Note 的累積更新套件 8 由於版本是累積的,因此每個新修正程式版本都包含所有 Hotfix,以及先前 SQL Server 2008 Service Pack 2 修正程式版本包含的所有安全性修正。 建議您考慮使用包含此 Hotfix 的最新修正程式版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 SQL Server 2008 Service Pack 2 發行後發佈的 SQL Server 2008 版本
SQL Server 2008 R2 Service Pack 2
此問題的修正程式最初是在 SQL Server 2008 R2 Service Pack 2 的累積更新 2 中發行。 若要進一步瞭解如何取得此累積更新套件,請按一下下列文章編號以在 Microsoft 知識庫中查看文章:
2740411 SQL Server 2008 R2 Service Pack 2Note 的累積更新套件 2 由於版本是累積的,因此每個新修正程式版本都包含所有 Hotfix 以及前一個 SQL Server 2008 R2 修正版本包含的所有安全性修正。 建議您考慮使用包含此 Hotfix 的最新修正程式版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2730301 SQL Server 2008 R2 Service Pack 2 發行後發佈的 SQL Server 2008 R2 版本
登錄機碼資訊
重要:本節、方法或工作包含可告訴您如何修改註冊表的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為加強保護,請先備份登錄再進行修改。 這樣一來,如果發生問題,您就可以還原登錄。 如需有關如何備份和還原登錄的詳細資訊,請按下列文件編號,檢視「Microsoft 知識庫」中的文章:
322756 如何在 Windows 中備份及還原註冊表:當您申請此 Hotfix 之後,您必須先重新開機受影響實例的 SQL Server 代理程式服務。 服務重新開機時,會建立一個新的 RecoveredDatabasesForAgentStartup 登錄機碼。 此登錄鍵會定義 SQL Server 代理程式是否要等到使用者資料庫復原完成之後,再啟動 SQL Server 代理程式工作。 若要讓我們針對您設定此登錄機碼,請前往「為我修正」 一節。 如果您想要自己設定此登錄機碼,請前往「讓我自己修正」一 節。
為我修正此問題
若要自動設定此登錄金鑰,請按一下 [ 修正它: 按鈕 或連結。 接著, 按一下 [ 檔案下載精靈 中執行,並遵循修正精靈中的步驟操作。
筆記
-
執行此修正程式解決方案之前,您必須安裝 Microsoft 知識庫 (KB) 2648096 中所描述的 hotfix。 然後,您必須重新開機受影響實例的 SQL Server 代理程式服務。
-
此精靈可能只提供英文版本。 不過,自動修正程式也適用於 Windows 的其他語言版本。
-
如果您不在發生問題的電腦上,則可將 Fix it 解決方案儲存至快閃磁碟機或 CD,然後在發生問題的電腦上執行。
此問題是否修正?」一節。
接著,請前往「讓我自行修正此問題
若要設定 RecoveredDatabasesForAgentStartup 註冊表金鑰,請遵循下列步驟:
-
依序按一下 [開始]、[執行],在 [開啟] 方塊中輸入 regedit,然後按一下 [確定]。
-
找出並按一下下列登錄子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.instance\SQLServerAgent\
-
在 [ 詳細資料窗格 > 中,以滑鼠右鍵按一下 RecoveredDatabasesForAgentStartup,然後按一下 [ 修改。
-
在 值資料 方塊中,輸入 ALL。
注意:RecoveredDatabasesForAgentStartup 登錄機碼的預設值為 MSDB。 -
關閉登錄編輯程式。
注意:如果您將 RecoveredDatabasesForAgentStartup 登錄專案的值設為非 MSDB 或 ALL 的值,警告訊息會記錄在 SQL Server 代理程式記錄中,而 SQL Server 代理程式只會等待 MSDB 資料庫。
這樣是否已修正問題?
狀態
Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。
因應措施
若要解決此問題,請新增步驟至 SQL Server 代理程式工作,檢查目標資料庫是否在線上。 此步驟應該是第一個步驟。
注意:您可以查詢 sys.database 系統資料表中的資料行狀態,以檢查資料庫狀態。