sqlserver複寫延遲報”應用複製的命令時在訂閱伺服器上找不到該行“

來源:互聯網
上載者:User

標籤:

最近遇到“應用複製的命令時在訂閱伺服器上找不到該行”問題,報錯如下:

官方給出的建議是重新同步和初始化訂閱,當然,這是一種選擇,但是對於動輒上百G的生產庫,這種方法會消耗大量的資源和時間。可以通過定位出錯資料,選擇跳過,等從庫追平主庫後,修複錯誤資料方式,達到最終主從資料一致。

解決思路1.  找到分發任務的事務序號
  •  如果是複製分發停止了,那麼在錯誤資訊中會顯示事務序號。中是‘0x000311CC00013A7300010000000’
  •  如果複製錯誤資訊在顯示視窗中被覆蓋,比如選擇了跳過錯誤,或者其他錯誤覆蓋了該錯誤,可以在散發者上執行 :
sp_helpsubscriptionerrors [ @publisher = ]‘publisher‘, [ @publisher_db = ]‘publisher_db‘ , [ @publication = ]‘publication‘ , [ @subscriber = ]‘subscriber‘ , [ @subscriber_db = ]‘subscriber_db‘

參數對應值可以通過下面查詢擷取:

  • 擷取publisher和subscriber
select * from MSsubscriber_info

擷取publisher_db和publication

select * from MSpublications

在訂閱伺服器上執行,擷取事務序號

sp_setsubscriptionxactseqno [ @publisher= ]‘publisher‘, [ @publisher_db= ]‘publisher_db‘, [ @publication= ]‘publication‘, [ @xact_seqno= ] xact_seqno

樣本:

 

 

2.  查看出錯命令

擷取事務序號之後,查看事務號對應的具體命令:

sp_browsereplcmds [ [ @xact_seqno_start = ] ‘xact_seqno_start‘ ]    [ , [ @xact_seqno_end = ] ‘xact_seqno_end‘ ]     [ , [ @originator_id = ] ‘originator_id‘ ]    [ , [ @publisher_database_id = ] ‘publisher_database_id‘ ]    [ , [ @article_id = ] ‘article_id‘ ]    [ , [ @command_id= ] command_id ]    [ , [ @agent_id = ] agent_id ][ , [ @compatibility_level = ] compatibility_level ]

前兩個參數是開始事務號和結束事務號,輸入這兩參數即可

command 預設的命名規則是sp_MS+operation+_schemaName+tableName

 

通過樣本知道該動作表示對T_CarPakingRecord表進行update操作,最後的表示的是主鍵。

3.  補救措施

根據上面分析的命令結果,將完整資料插入到從庫中(這裡是補救缺失行錯誤,如果是插入重複則直接刪除即可)

如果認為資料一致性不重要,則可以直接跳過,不推薦這樣。跳過錯誤的命令:

sp_setsubscriptionxactseqno [ @publisher = ] ‘發行伺服器主機名稱‘, [ @publisher_db = ] ‘發行集資料庫‘, [ @publication = ] ‘發布名稱‘, [ @xact_seqno = ] 跳過的事務號

 

 

select*from MSpublications

sqlserver複寫延遲報”應用複製的命令時在訂閱伺服器上找不到該行“

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.