Sql-Server

複製同步失敗;發布者超出身份範圍

  • February 22, 2010

我使用 SQL 2005 發布者/分發者和大約 100 個 SQL 2005 Express 訂閱者設置了合併複製。幾個月來一切都很好,現在突然之間每個人都遇到了以下錯誤。

我一直在Google搜尋,但無濟於事。誰能提供一些見解?我什至嘗試刪除使用者的訂閱。我也試過執行 –>

sp_adjustpublisheridentityrange @publication='MyDB'

無論如何,這是錯誤–>

Error messages:
The Publisher failed to allocate a new set of identity ranges for the subscription. This can occur when a Publisher or a republishing Subscriber has run out of identity ranges to allocate to its own Subscribers or when an identity column data type does not support an additional identity range allocation. If a republishing Subscriber has run out of identity ranges, synchronize the republishing Subscriber to obtain more identity ranges before restarting the synchronization. If a Publisher runs out of identit (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147199417)
Get help: http://help/MSSQL_REPL-2147199417
Not enough range available to allocate a new range for a subscriber. (Source: MSSQLServer, Error number: 20668)
Get help: http://help/20668
Failed to allocate new identity range. (Source: MSSQLServer, Error number: 21197)
Get help: http://help/21197

首先,您的機器是否至少安裝了 Service Pack 3 更新檔?此錯誤通常是由 Service Pack 2 累積更新 4 修復的錯誤引發的。這可能是一個開始的地方。

如果你們都修好了,接下來我會檢查你的身份列的數據類型。例如,如果它們目前是 INT,並且發布者正在嘗試分配超出最大 INT 值 (2,147,483,647) 的範圍,則會收到該錯誤。您可以通過將身份欄位更改為 BIGINT 來解決它。如果有 100 個訂閱者,您的發布者必須分配大量範圍,所以這很可能發生。

希望這可以幫助。

引用自:https://serverfault.com/questions/114421