應用複製的命令時在訂閱伺服器上找

2021-06-20 05:24:36 字數 1159 閱讀 1362

在sql server的複製中出現在錯誤「應用複製的命令時在訂閱伺服器上找不到該行」,換上以前的做法就是刪除掉這個複製,然後再新建乙個複製,但是這次,我突然想baidu一下,看看別人是怎麼處理這個問題的,然後發現找到的文章都是從msdn上抄下來的,因此我決定把我的做法寫下來。

首先查msdn,確定這個錯誤的id為20598,這個下面會用到;確定了錯誤id之後,有兩種方法可以跳過這個錯誤

第一種是使用「右鍵-》複製-》分發伺服器屬性-》預設配置檔案-》然後新建乙個新的配置檔案,」這樣子就可以讓分發的所有複製都使用新的配置檔案,一般用來修改一些公共的引數。

第二種是開啟複製監視器,然後雙擊你要修改的那個複製,在「操作」選單下有個**配置檔案,開啟它後新建乙個配置檔案,然後使用這個配置檔案,這種方法用來修改單個的複製的引數。

新建後修改-skiperrors這一項,點「值」欄後輸入剛剛查到的id號,就是20598,點確定,然後勾上你剛剛新建的這個配置檔案。

重啟**,開啟複製監視器,你會發現它已經跳過了這個錯誤。

如果是對等資料複製的話,要慎用,因為可能導致兩個資料庫的資料不一致,請先查明原因,然後再決定是否要跳過這個錯誤。 

於事務性複製,有兩種方法可以跳過在分發過程中遇到的錯誤:

分發**的 -skiperrors 引數,可用來跳過某種型別的錯誤。有錯誤的事務將不提交,但後續的事務將提交。

sp_setsubscriptionxactseqno 儲存過程,可用來跳過乙個或多個導致錯誤的事務。非sql server 的訂閱伺服器沒有此選項。

重要事項:

在典型的複製處理中,應該不會遇到任何需要跳過的錯誤。跳過錯誤時要謹慎,要了解發生錯誤的條件、錯誤的起因以及需要跳過錯誤或特定事務而不解決的理由。如果在訂閱伺服器上跳過發布伺服器上提交的事務,則這兩個節點就不會完全同步,這會導致其他錯誤。

-skiperrors 引數:

預設情況下,發布**遇到錯誤時就會停止。如果使用 -skiperrors 引數,並指定了預期的或不想讓其干擾複製的錯誤,則**就會記錄錯誤資訊,然後繼續執行。例如,如果要指定分發**,使其記錄重複鍵違規但繼續處理後續事務,就需要指定**跳過錯誤 2601(不能在具有唯一索引 』%.*ls』 的物件 』%.*ls』 中插入重複鍵的行。)和 2627(違反了 %ls 約束 』%.*ls』。不能在物件 』%.*ls』 中插入重複鍵): -skiperrors 2601;2627

應用複製的命令時在訂閱伺服器上找不到改行

問題 原因主從資料在同步的時候 從資料庫表資料與主資料庫表資料不一致 就是說從資料庫表同步後 又被單獨使用改變了 我選擇的是重新建立訂閱 刪除了從資料庫的訂閱 重新建立後會 重新同步 這裡涉及到乙個問題 直接刪除 本地訂閱是不行了 還需要在主資料庫中刪除 訂閱資訊 1 主資料庫中本地發布 同步選項中...

伺服器上的 Git 在伺服器上搭建 Git

現在我們將討論如何在你自己的伺服器上搭建 git 服務來執行這些協議。note 這裡我們將要演示在 linux 伺服器上進行一次基本且簡化的安裝所需的命令與步驟,當然在 mac 或 windows 伺服器上同樣可以執行這些服務。事實上,在你的計算機基礎架構中建立乙個生產環境伺服器,將不可避免的使用到...

伺服器上的 Git 在伺服器上搭建 Git

現在我們將討論如何在你自己的伺服器上搭建 git 服務來執行這些協議。note 這裡我們將要演示在 linux 伺服器上進行一次基本且簡化的安裝所需的命令與步驟,當然在 mac 或 windows 伺服器上同樣可以執行這些服務。事實上,在你的計算機基礎架構中建立乙個生產環境伺服器,將不可避免的使用到...