我已使用 SQL 2005 发布服务器/分发服务器和大约 100 个 SQL 2005 Express 订阅服务器设置了合并复制。几个月来一切都运行正常,但现在突然每个人都收到以下错误。
我一直在谷歌搜索,但无济于事。有人能提供一些见解吗?我甚至尝试删除用户的订阅。我还尝试运行 -->
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
答案1
首先,您的机器是否至少安装了 Service Pack 3?此错误通常是由 Service Pack 2 Cumulative Update 4 修复的错误引发的。这可能是一个开始的地方。
如果您已全部修复,我接下来会检查您的标识列的数据类型。例如,如果它们当前是 INT,并且发布商试图分配超过最大 INT 值(2,147,483,647)的范围,您将收到该错误。您可以通过将标识字段更改为 BIGINT 来解决此问题。由于有 100 个订阅者,您的发布商必须分配大量范围,因此这种情况很可能发生。
希望这可以帮助。