MSSQL_ENG018752
適用於:SQL Server
Azure SQL 受控執行個體
訊息詳細數據
屬性 | 值 |
---|---|
產品名稱 | SQL Server |
事件識別碼 | 18752 |
事件來源 | MSSQLSERVER |
元件 | SQL Server Database Engine |
符號名稱 | |
訊息文字 | 一次只有一個記錄讀取器代理程式或記錄檔相關程序 (sp_repldone, sp_replcmds, and sp_replshowcmds) 可連接到資料庫。 若您已執行記錄檔相關程序,請卸除執行程序的連接,或者利用該連接執行 sp_replflush 之後,再啟動記錄讀取器代理程式或執行其他記錄檔相關程序。 |
說明
一個以上的目前連線嘗試執行下列任何一項: sp_repldone、 sp_replcmds或 sp_replshowcmds。 sp_repldone (Transact-SQL) 和 sp_replcmds (Transact-SQL) 預存程式是記錄讀取器代理程式用來尋找和更新已發行資料庫中復寫交易的相關信息的預存程式。 預存程式 sp_replshowcmds (Transact-SQL) 可用來針對事務複製的特定類型問題進行疑難解答。
在下列情況下,會引發此錯誤:
如果已發行資料庫的記錄讀取器代理程式正在執行,而第二個記錄讀取器代理程式嘗試針對相同的資料庫執行,則會針對第二個代理程式引發錯誤,並出現在代理程式歷程記錄中。
在出現多個代理程序的情況下,其中一個代理程式可能是孤立程序的結果。
如果已發行資料庫的記錄讀取器代理程式已啟動,且使用者針對相同的資料庫執行sp_repldone、sp_replcmds或sp_replshowcmds,則會在執行預存程式的應用程式中引發錯誤(例如 sqlcmd)。
如果沒有針對已發佈的資料庫執行記錄讀取器代理程式,且使用者 執行sp_repldone、 sp_replcmds或 sp_replshowcmds ,然後不會關閉執行程式的連接,則記錄讀取器代理程式嘗試連線到資料庫時,就會引發錯誤。
使用者動作
下列步驟可協助您針對問題進行疑難解答。 如果有任何步驟可讓記錄讀取器代理程式在沒有錯誤的情況下啟動,就不需要完成其餘步驟。
檢查記錄讀取器代理程式的歷程記錄,找出任何其他可能導致此錯誤的錯誤。 如需在復寫監視器中檢視代理程式狀態和錯誤詳細數據的詳細資訊,請參閱 使用複寫監視器檢視資訊和執行工作。
檢查sp_who (Transact-SQL) 的輸出,以取得連線至已發佈資料庫的特定進程標識號(SPID)。 關閉可能已執行 sp_repldone、 sp_replcmds或 sp_replshowcmds的任何連線。
重新啟動記錄讀取器代理程式。 如需詳細資訊,請參閱啟動和停止複寫代理程式 (SQL Server Management Studio)。
在散發者上重新啟動 SQL Server Agent 服務(使其離線或上線)。 如果排程工作可能已從任何其他 SQL Server 實例執行 sp_repldone、 sp_replcmds或 sp_replshowcmds ,請重新啟動這些實例的 SQL Server Agent。 如需詳細資訊,請參閱 啟動、停止或暫停 SQL Server Agent 服務。
在發行集資料庫的發行者端執行 sp_replflush (Transact-SQL), 然後重新啟動記錄讀取器代理程式。
如果錯誤持續發生,請增加代理程序的記錄,並指定記錄檔的輸出檔。 視錯誤內容而定,這可能會提供錯誤和/或其他錯誤訊息的前置步驟。