none
「サブスクライバーへの新しい範囲の割り当てに使用できる範囲が不足しています。」というエラーを解決したいです。 RRS feed

  • 質問

  • [環境]

    SQL Server2008 R2 Standard

    マージパブリケーションでサブスクリプションを新規作成し、サブスクライバで同期をとろうとすると、

    次のようなエラーがレプリケーションモニタにて表示されます。

    エラー メッセージ:
    パブリッシャーで、サブスクリプションの ID 範囲の新しいセットを割り当てることができませんでした。これは、パブリッシャーまたは再パブリッシュしているサブスクライバーが、独自のサブスクライバーに割り当てる ID 範囲を使い果たしたか、または ID 列のデータ型が追加で ID 範囲を割り当てることをサポートしていない場合に発生します。再パブリッシュしているサブスクライバーが ID 範囲を使い果たした場合、再パブリッシュしているサブスクライバーを同期して、追加の ID 範囲を取得してから、同期を再開してください。パブリッシャーによって ID 範囲が使い果たされる場合は、データ型のサイズが必要な ID 範囲をサポートしていることを確認してください。 (ソース: MSSQL_REPL, エラー番号: MSSQL_REPL-2147199417)
    ヘルプの表示: http://help/MSSQL_REPL-2147199417
    サブスクライバーへの新しい範囲の割り当てに使用できる範囲が不足しています。 (ソース: MSSQLServer, エラー番号: 20668)
    ヘルプの表示: http://help/20668
    新しい ID 範囲を割り当てられませんでした。 (ソース: MSSQLServer, エラー番号: 21197)
    ヘルプの表示: http://help/21197

    サブスクライバーへの割り当てに使用しているIDがあり、このIDを使い切ってしまったから

    エラーが表示されているのだろうと予想できるのですが、具体的にどのような操作をすれば

    改善できるのかがわかりません。

    上記エラーについて対策をご存知の方がいらっしゃれば、

    ご教授いただけると幸いでございます。

    2015年5月21日 8:32

回答

  • Microsoftのサポートに連絡をしてみました。

    あるアーティクルにIDENTITY指定しているフィールドがあったのですが、このフィールドのデータ型がsmallintでした。

    このフィールドのデータ型をINT型に変更することで解決するとのことでした。

    スナップショットを再作成する必要がありますので、運用との兼ね合いをみながら実行してみようと思います。

    ご回答いただきまして、誠にありがとうございました。

    • 回答としてマーク 星 睦美 2015年6月2日 2:42
    2015年5月29日 1:19

すべての返信

  • SQL Server 2008 R2 の RTM ですかね。
    とりあえず最新の SP を適用するのが王道になるかと思います。
    SP3 が最新になりますので、そちらを適用して状況を確認してみてください。
    https://support.microsoft.com/ja-jp/kb/2979597

    ちなみに 2005 で以下のように類似の不具合があり SP2 CU4 で修正されていますので、そういう意味でも最新の SP を適用されて様子を見るほうが良いかと思われます。
    https://support.microsoft.com/ja-jp/kb/941989


    MCITP(Database Developer/Database Administrator)

    • 回答の候補に設定 星 睦美 2015年5月28日 7:57
    2015年5月25日 6:18
  • Microsoftのサポートに連絡をしてみました。

    あるアーティクルにIDENTITY指定しているフィールドがあったのですが、このフィールドのデータ型がsmallintでした。

    このフィールドのデータ型をINT型に変更することで解決するとのことでした。

    スナップショットを再作成する必要がありますので、運用との兼ね合いをみながら実行してみようと思います。

    ご回答いただきまして、誠にありがとうございました。

    • 回答としてマーク 星 睦美 2015年6月2日 2:42
    2015年5月29日 1:19