Null

MsMerge_genhistory 有很多行 pubid = null

  • May 15, 2019

我有一個合併複製,我擔心元數據的清理可能還不夠。我有 60 天的保留期,我可以看到元數據清理作業確實刪除了 msmege_genhistory 中較舊的行,但僅適用於在 pubid 中具有正確 guid 的行。大多數行,大約 160 萬行,在 pubid 中的值為 NULL,我不知道為什麼。有人知道為什麼有這麼多空值嗎?

我發現,由於我使用匿名訂閱者,因此發布將擁有所有更改的所有權,並且不會為其更改設置 pubid。訂閱者添加的唯一行是 artnick = 0 的行。因此,如果訂閱者添加更改,則訂閱者將只有一行,並且它將具有發布的有效 guid,但該行不指向任何更改。相反,該出版物將添加更改,就好像起源於那裡一樣。

元數據清理的問題與空值無關,它是孤立的訂閱。如果匿名訂閱是從我們的一台手持設備創建的並且未同步,則會導致清理排除代。這是在 sql2012 中與 sp2 一起添加的,並且清理會創建一個“活動”的排除代的列表,問題是如果 sysmergesubscriptions 中的訂閱在 last_local_sentgen 中有 null 它將添加 1 和 sentgen 之間的所有代到排除列表和元數據不會被清理。我試圖在我的測試環境中刪除這些訂閱,現在我可以看到清理正在正常執行。我還可以看到,如果訂閱創建超時,也會發生這種情況。

希望這可以幫助某人。

引用自:https://dba.stackexchange.com/questions/186914