我使用 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
首先,您的机器是否至少安装了 Service Pack 3 补丁?此错误通常是由 Service Pack 2 累积更新 4 修复的错误引发的。这可能是一个开始的地方。
如果你们都修好了,接下来我会检查你的身份列的数据类型。例如,如果它们当前是 INT,并且发布者正在尝试分配超出最大 INT 值 (2,147,483,647) 的范围,则会收到该错误。您可以通过将身份字段更改为 BIGINT 来解决它。如果有 100 个订阅者,您的发布者必须分配大量范围,所以这很可能发生。
希望这可以帮助。