Sql-Server
具有 HA 集群的 Sql Server 2017 上的 CDC 停止工作
我目前正在使用在 Windows Server 2016 上執行的 Sql Server 2017 (14.0.3294.2) 作為 HA 集群,一個主節點和兩個從節點。
幾天前,主伺服器重新啟動,我認為執行此操作的人執行了一些操作,使主伺服器再次成為主伺服器。從那以後,CDC停止了工作。查詢 cdc 表並不能提供有關狀態的線索。CDC 作業已啟用。
我發現了這篇文章:https ://stackoverflow.com/questions/23744083/cdc-is-enabled-but-cdc-dbotable-name-ct-table-is-not-being-populated但是,我很不願意在這種情況下使用解決方案。
CDC 作業日誌中的最後一個錯誤是(在主系統重新啟動後):
作為使用者執行:使用者名。無法更新數據庫“DatabaseName”,因為該數據庫是只讀的。
$$ SQLSTATE 25000 $$(錯誤 3906)。注意:該步驟已重試請求的次數 (10),但未成功。步驟失敗。
有關如何使 CDC 再次工作的任何建議?
謝謝
似乎問題是由數據庫不是主要的事實產生的。實際上它是只讀狀態。嘗試故障回復相關 AG 組。
關於 cdc 作業,您需要在 AG 集群的每個節點中都有它。看看如何在 alwayson 環境中管理 cdc:
我所要做的就是啟動在主伺服器上執行的作業
EXEC msdb.dbo.sp_start_job 'cdc.DbName_capture';
好消息是它趕上了自工作失敗以來所做的所有更改。