共用方式為


MSSQL_ENG018752

訊息詳細資料

產品名稱 SQL Server
事件識別碼 18752
事件來源 MSSQLSERVER
元件 SQL Server Database Engine
符號名稱
訊息文字 一次只有一個記錄讀取器代理程式或記錄檔相關程序 (sp_repldone, sp_replcmds, and sp_replshowcmds) 可連接到資料庫。 若您已執行記錄檔相關程序,請卸除執行程序的連接,或者利用該連接執行 sp_replflush 之後,再啟動記錄讀取器代理程式或執行其他記錄檔相關程序。

說明

目前有多個連接嘗試執行下列任一項目: sp_repldonesp_replcmdssp_replshowcmdsSp_repldone (Transact-SQL) sp_replcmds (Transact-SQL) 預存程式是記錄讀取器代理程式用來尋找及更新已發行資料庫中複寫交易的相關資訊的預存程式。 Sp_replshowcmds (Transact-SQL) 預存程式可用來針對異動複寫的特定問題類型進行疑難排解。

此錯誤在下列情況下產生:

  • 如果已發行資料庫的「記錄讀取器代理程式」正在執行,而第二個「記錄讀取器代理程式」嘗試針對相同的資料庫執行,則錯誤就會在第二個代理程式中產生,並且出現在代理程式記錄中。

    若出現多個代理程式的情況,則可能其中一個代理程式是被遺棄處理的結果。

  • 如果已發行資料庫的「記錄讀取器代理程式」已啟動,而使用者針對相同的資料庫執行 sp_repldonesp_replcmdssp_replshowcmds ,則錯誤就會在執行預存程序 (例如 sqlcmd) 的應用程式中產生。

  • 如果已發行資料庫的「記錄讀取器代理程式」未在執行,且使用者執行了 sp_repldonesp_replcmdssp_replshowcmds ,之後也未關閉執行該程序的連接,則當「記錄讀取器代理程式」嘗試連接到資料庫時就會產生錯誤。

使用者動作

下列步驟可以幫助您對此問題進行疑難排解。 如果任一步驟允許「記錄讀取器代理程式」在沒有錯誤的情況下啟動,則無需完成剩餘步驟。

  • 檢查「記錄讀取器代理程式」的記錄,以便尋找可能導致此錯誤的其他任何錯誤。 如需有關在「複寫監視器」中檢視代理程式狀態和錯誤詳細資料的資訊,請參閱使用複寫監視器來檢視資訊及執行工作

  • 檢查 sp_who (Transact-SQL) 的輸出,以瞭解連線至已發行資料庫之 SPID) (SPID 的特定處理序識別碼。 關閉可能已執行 sp_repldonesp_replcmdssp_replshowcmds的任何連接。

  • 重新啟動「記錄讀取器代理程式」。 如需詳細資訊,請參閱啟動和停止複寫代理程式 (SQL Server Management Studio)

  • 重新開機SQL Server Agent服務, (將它離線或在散發者上的叢集中) 上線。 如果排程工作可能已經從任何其他SQL Server實例執行sp_repldonesp_replcmdssp_replshowcmds,請重新開機這些實例的SQL Server Agent。 如需詳細資訊,請參閱啟動、停止或暫停 SQL Server Agent 服務

  • 在發行集資料庫的發行者端執行 sp_replflush (Transact-SQL) ,然後重新開機記錄讀取器代理程式。

  • 若錯誤繼續發生,請增加代理程式的記錄,並指定記錄的輸出檔。 視錯誤內容的不同,可提供導致錯誤的步驟和 (或) 其他錯誤訊息。

另請參閱

錯誤和事件參考 (複寫)
複寫記錄讀取器代理程式