SQL2005パブリッシャー/ディストリビューターと約100のSQL2005Expressサブスクライバーを使用してマージレプリケーションを設定しました。すべてが数か月間正常に機能していましたが、突然、すべての人が以下のエラーを受け取りました。
私はぐるぐる回っていましたが、役に立ちませんでした。誰かがいくつかの洞察を提供できますか?ユーザーのサブスクリプションを削除してみました。私も走ってみました->
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 Cumulative Update4で修正されたバグによってスローされることがよくありました。ここから始めることができます。
パッチが適用されている場合は、次にID列のデータ型を確認します。たとえば、それらが現在INTであり、発行元が最大INT値(2,147,483,647)を超える範囲を割り当てようとしている場合、そのエラーが発生します。 IDフィールドをBIGINTに変更することで解決できます。サブスクライバーが100人の場合、パブリッシャーは多数の範囲を割り当てる必要があるため、これが発生する可能性があります。
お役に立てれば。