我剛剛爲我的訂戶數據庫設置了自定義複製,如another post here中所述。基本上,當發佈者向訂閱者推送新記錄時,存儲過程還會將複製時間插入到表中的額外列中,並將新記錄插入到日誌表中。由自定義複製存儲過程插入時未複製記錄
嘗試將日誌表複製回主發佈數據庫時發生問題。這是我所做的:
- 在日誌表所在的數據庫中,我設置了一個新的事務複製,並將其設置爲創建快照。
- 創建發佈後,我創建一個新的推送訂閱,並將其設置爲立即初始化。
- 創建訂閱後,我檢查了同步狀態並確認快照已成功應用。
現在這裏是怪異的部分:如果我手動添加記錄到日誌表使用SQL Server Management Studio,記錄將被複制罰款。如果記錄是由自定義複製存儲過程添加的,則不會。該狀態將始終顯示「沒有複製交易可用」。
我不知道爲什麼發佈的行爲是這樣的:我真的不明白它是如何以不同方式處理自定義複製存儲過程插入的數據。
有人可以解釋我可能做了什麼錯嗎?
更新:幾個月前,我終於有了這個問題的答案,只是我從來沒有得到解決這個問題。我們必須向Microsoft致電支持電話,但我們得到了一個可行的解決方案。
答:要解決此問題,添加訂閱, 你需要運行該腳本像下面時:
sp_addsubscription @publication = 'TEST', ..., @loopback_detection = 'false'
到解決方案的關鍵是上面所示的最後一個參數。默認情況下,生成的訂閱腳本將不具有此參數。