前些天部署了一套事務複製環境,訂閱端只需要最近五年的資料。
複製採用的是備份檔案初始化,複製搭好後用了乙個指令碼在訂閱端刪除五年前的資料。
導致堆積了大量的未分發命令。
解決方案1):
根據在分發資料庫上執行:
sp_helpsubscriptionerrors [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @subscriber = ] 'subscriber'
, [ @subscriber_db = ] 'subscriber_db'
找到返回值中最大的xact_seqno
之後在訂閱端資料庫上執行:
sp_setsubscriptionxactseqno [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @xact_seqno = ] xact_seqno
但是,如果再次出現同樣的問題,還得重複同樣的步驟來忽略錯誤。
解決方案2):
通過在分發**配置檔案中設定continue on data consistencyerrors,直接跳過事務複製中的錯誤。(因為我根本就不關心5年前的資料的變更)
事務複製中的msrepl ccs
在事務複製裡,如果乙個article被更新,distributionagent會呼叫相應的儲存過程將資料更新到訂閱端。這些儲存過程分別是 sp msins dbotablename sp msdel dbotablename 和 sp msupd dbotablename 分別對應插入,刪除和更新操...
鎖在事務中的錯誤使用
鎖在事務中的錯誤使用 錯誤示例 override transactional rollbackfor exception.class public item add itemdto dto throws exception else return item finally 事務的範圍大於鎖的範圍,鎖...
快照複製,事務複製,合併複製的區別
簡單來說 1.快照複製和事務複製是單向的 2005及以後的版本中加入了訂閱端可更新的事務複製 2.合併複製是雙向的。1.快照複製對錶結構沒有要求 2.事務複製要求表有主鍵 3.合併複製要求表有 rowguid 列 快照複製 1 概念 快照複製是完全按照資料和資料庫物件出現時的狀態來複製和分發它們的過...