Share via


[アーティクルのプロパティ - <Article>]

[アーティクルのプロパティ] ダイアログ ボックスは、パブリケーションの新規作成ウィザードおよび [パブリケーションのプロパティ] ダイアログ ボックスから開くことができます。このダイアログ ボックスでは、すべての種類のアーティクルのプロパティを表示し、設定できます。パブリケーションを作成するときにのみ設定できるプロパティや、パブリケーションにアクティブなサブスクリプションがない場合にのみ設定できるプロパティがあります。設定できないプロパティは読み取り専用として表示されます。

ms186522.note(ja-jp,SQL.90).gifメモ :
パブリケーションの作成後、新しいスナップショットを作成しなければ変更できないプロパティがあります。パブリケーションにサブスクリプションがある場合、すべてのサブスクリプションを再初期化しなければ変更できないプロパティもあります。詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。

[アーティクルのプロパティ] ダイアログ ボックスの各プロパティには、説明が表示されます。プロパティをクリックすると、その説明がダイアログ ボックスの下部に表示されます。このトピックでは、さまざまなプロパティに関する詳細情報について説明します。プロパティは以下のカテゴリに分けられています。

  • すべての Microsoft SQL Server パブリケーションに適用されるプロパティ。
  • SQL Server からのトランザクション パブリケーションに適用されるプロパティ。
  • マージ パブリケーションに適用されるプロパティ。
  • Oracle パブリッシャからのトランザクション パブリケーションとスナップショット パブリケーションに適用されるプロパティ。

すべてのパブリケーションのオプション

  • [テーブル分割構成のコピー][インデックス分割構成のコピー]
    Microsoft SQL Server 2005 では、テーブル分割とインデックス分割の機能が導入されています。これは、レプリケーションによって行フィルタと列フィルタを使用して実現される分割とは関係ありません。[テーブル分割構成のコピー] オプションと [インデックス分割構成のコピー] オプションでは、パーティション分割構成をサブスクライバにコピーするかどうかを指定します。パーティション分割の詳細については、「パーティション テーブルとパーティション インデックス」を参照してください。
  • [データ型の変換]
    サブスクライバにオブジェクトを作成する際に、ユーザー定義のデータ型を基本データ型に変換するかどうかを指定します。ユーザー定義のデータ型には、Microsoft SQL Server 2000 で使用できる別名データ型と、SQL Server 2005 で導入されたユーザー定義 CLR 型があります。このようなデータ型を古いバージョンの SQL Server にレプリケートする場合には、[True] を指定します。これにより、このデータ型をサブスクライバで適切に処理できるようになります。データ型のマッピングの詳細については、「レプリケーション トポロジにおける複数バージョンの SQL Server の使用」を参照してください。
  • [サブスクライバでスキーマを作成]
    SQL Server 2005 で導入されたスキーマは、CREATE SCHEMA ステートメントを使用して定義します。スキーマとは、オブジェクトの所有者です。スキーマは、<Database>.<Schema>.<Object> など、複数の要素で構成される名前で使用されます。DBO 以外のスキーマで所有されるデータベースにオブジェクトがある場合、パブリッシュされるオブジェクトが作成されるように、このようなスキーマをサブスクライバに作成することができます。

    SQL Server 2005 より古いバージョンの SQL Server にデータをレプリケートする場合、次の手順に従います。

    • 古いバージョンでは CREATE SCHEMA がサポートされないため、このオプションを [False] に設定します。
    • 各スキーマについて、そのスキーマと同じ名前を持つユーザーをサブスクリプション データベースに追加します。
  • [XML を NTEXT に変換][MAX データ型を NTEXT と IMAGE に変換]
    名前に示されているようにデータ型を変換するかどうかを指定します。このようなデータ型を古いバージョンの SQL Server 2005 にレプリケートする場合には、[True] を指定します。これにより、このデータ型をサブスクライバで適切に処理できるようになります。データ型のマッピングの詳細については、「レプリケーション トポロジにおける複数バージョンの SQL Server の使用」を参照してください。
  • [対象オブジェクト名]
    サブスクリプション データベースに作成されるオブジェクトの名前です。ピア ツー ピア トランザクション レプリケーションが有効なパブリケーションでは、アーティクルに関するこのオプションは変更できません。
  • [対象オブジェクトの所有者]
    サブスクリプション データベースにオブジェクトを作成する際に使用されるスキーマです。既定では、パブリケーション データベースでオブジェクトが属しているスキーマになりますが、次の例外があります。

    • 互換性レベルが 90 未満のマージ パブリケーションのアーティクルの場合。既定では、所有者名は空白のままなり、サブスクライバにオブジェクトを作成する際に dbo と指定されます。
    • Oracle パブリケーションのアーティクルの場合。既定では、所有者名が dbo と指定されます。
    • キャラクタ モードのスナップショット (SQL Server 以外のバージョンのサブスクライバや SQL Server 2005 Compact Edition サブスクライバで使用されます) を使用するパブリケーションのアーティクルの場合。既定では、所有者は空白のままになります。既定の所有者は、サブスクライバに接続しているディストリビューション エージェントまたはマージ エージェントで使用されるアカウントに関連付けられている所有者になります。

    ピア ツー ピア トランザクション レプリケーションが有効なパブリケーションでは、アーティクルに関するこのオプションは変更できません。

  • [ID 範囲を自動的に管理します]
    既定で、パブリッシャおよび各サブスクライバの ID 列はすべてレプリケーションによって管理されます。特定の ID 値が 1 つのノードでのみ使用されるように、各レプリケーション ノードには幅広い ID 値 ([パブリッシャの範囲サイズ] および [サブスクライバの範囲サイズ] で指定) が割り当てられています。詳細については、「ID 列のレプリケート」を参照してください。

トランザクション パブリケーションのオプション

  • [INSERT、UPDATE、DELETE ストアド プロシージャのコピー]
    このダイアログ ボックスの [ステートメントの配信] セクションで、ストアド プロシージャを使用して変更をサブスクライバに伝達するように指定した場合 (既定)、そのプロシージャを各サブスクライバにコピーするかどうかを選択します。[False] を選択した場合、プロシージャを手作業でコピーしなければ、ディストリビューション エージェントが変更を伝達しようとしても失敗します。
  • [ステートメントの配信]
    このセクションのオプションは、テーブルとしてレプリケートされるインデックス付きビューを含め、すべてのテーブルに適用されます。アプリケーションで別の機能が必要にならない限り、既定のオプションを使用することをお勧めします。既定では、トランザクション レプリケーションは、各サブスクライバにインストールされているストアド プロシージャのセットを使用して、変更をサブスクライバに伝達します。パブリッシャ上のテーブルに対して挿入、更新、または削除が実行されると、その操作はサブスクライバ上のストアド プロシージャに対する呼び出しに変換されます。

    [ステートメントの配信] オプションでは、ストアド プロシージャを使用するかどうか、そして使用する場合にはプロシージャに渡されるパラメータの形式を指定します。[ストアド プロシージャ] オプションでは、レプリケーションによって自動的に作成されるプロシージャか、自分で作成した代用のカスタム プロシージャを使用できます。

    詳細については、「トランザクション アーティクルに変更を反映する方法の指定」を参照してください。

  • [レプリケート]
    このオプションは、ストアド プロシージャにのみ適用されます。ストアド プロシージャの定義 (CREATE PROCEDURE ステートメント) またはその実行をレプリケートするかどうかを指定します。プロシージャの実行をレプリケートする場合、サブスクリプションが開始されたときにプロシージャの定義がサブスクライバにレプリケートされます。プロシージャがパブリッシャ上で実行されると、サブスクライバ上の対応するプロシージャが実行されます。これにより、大規模なバッチ操作を実行する場合のパフォーマンスが大幅に向上します。詳細については、「トランザクション レプリケーションにおけるパブリッシング ストアド プロシージャの実行」を参照してください。

マージ パブリケーションのオプション

マージ パブリケーションの [アーティクルのプロパティ] ダイアログ ボックスには、[プロパティ][競合回避モジュール] という 2 つのタブがあります。

[プロパティ] タブ

  • [同期の方向]
    クライアントのサブスクリプション タイプを使用するサブスクライバから、変更をアップロードできるかどうかを指定します。

    • [双方向] (既定) : 変更をサブスクライバにダウンロードし、パブリッシャにアップロードすることができます。
    • [サブスクライバへのダウンロードのみを実行し、サブスクライバの変更を禁止する] : 変更をサブスクライバにダウンロードできますが、パブリッシャにアップロードすることはできません。トリガにより、サブスクライバで変更が作成されなくなります。
    • [サブスクライバへのダウンロードのみを実行し、サブスクライバの変更を許可する] : 変更をサブスクライバにダウンロードできますが、パブリッシャにアップロードすることはできません。

    詳細については、「ダウンロード専用アーティクルを使用したマージ レプリケーションのパフォーマンス最適化」を参照してください。

  • [パーティションのオプション]
    パラメータ化されたフィルタで作成されるパーティションの種類を指定します。詳細については、「パラメータ化された行フィルタ」の「[パーティションのオプション] の設定」を参照してください。
  • [INSERT 権限の確認][UPDATE 権限の確認][DELETE 権限の確認]
    パブリケーション データベースにパブリッシュされたテーブルに対する INSERT 権限、UPDATE 権限、または DELETE 権限がサブスクライバのログインにあるかどうか、同期中にチェックするかどうかを指定します。マージ レプリケーションではこのような権限を許可する必要がないため、既定では [False] になっています。パブリッシュされたテーブルへのアクセスは、パブリケーション アクセス リスト (PAL) により制御されます。PAL の詳細については、「パブリッシャのセキュリティ確保」を参照してください。

    パブリッシュされたデータに対する特定の変更だけをアップロードするように 1 つ以上のサブスクライバに許可する場合、権限をチェックするように要求できます。たとえば、あるサブスクライバを PAL に追加しながら、パブリケーション データベース内のテーブルに対する権限をそのサブスクライバに与えないことができます。その後で [DELETE 権限の確認] を [True] に設定すると、そのサブスクライバでは挿入と更新のアップロードができますが、削除はできなくなります。

  • [複数列の UPDATE]
    マージ レプリケーションによって更新が実行されると、1 つの UPDATE ステートメントですべての列が更新され、変更のない列は元の値にリセットされます。この操作の代わりに、変更された各列に対して 1 つの UPDATE ステートメントを使用し、複数の UPDATE ステートメントを実行することができます。一般的に、複数列の UPDATE ステートメントを使用する方が効率的ですが、テーブルのトリガが特定の列の更新に応答するように設定されており、更新が発生したときに列がリセットされることによって不適切な処理が行われる場合には、このオプションを [False] に設定するように検討してください。

    ms186522.note(ja-jp,SQL.90).gif重要 :
    このオプションは推奨されません。将来のリリースでは廃止される予定です。

[競合回避モジュール] タブ

  • [既定の競合回避モジュールを使用する]
    既定の競合回避モジュールを選択した場合、使用されるサブスクリプションのタイプに応じて、各サブスクライバに割り当てられている優先度、またはパブリッシャに書き込まれた最初の変更に基づいて競合が回避されます。詳細については、「マージ レプリケーションの競合の検出と解決」を参照してください。
  • [ディストリビュータに登録されたカスタム競合回避モジュールを使用する]
    アーティクル競合回避モジュール (Microsoft が提供しているモジュールまたは自作のモジュール) の使用を選択した場合、リスト ボックスから競合回避モジュールを選択する必要があります。詳細については、「マージ レプリケーションの競合検出および解決の詳細」を参照してください。

    競合回避モジュールに入力が必要な場合、[競合回避モジュールが必要とする情報の入力] テキスト ボックスで指定してください。Microsoft カスタム競合回避モジュールに必要な入力の詳細については、「Microsoft COM ベースの競合回避モジュール」を参照してください。

  • [要求時同期中にサブスクライバが対話的に競合を解決することを許可する]
    サブスクライバでオン デマンド同期が使用されるとき (マージ レプリケーションの既定の動作)、競合を対話的に解決する場合に、このオプションを選択します。オン デマンド同期は、サブスクリプションの新規作成ウィザードの [同期スケジュール] ページで指定します。競合を対話的に解決するには、インタラクティブ競合回避コンポーネントのユーザー インターフェイスを使用します。詳細については、「インタラクティブな競合解決」を参照してください。
  • [マージ前にデジタル署名の確認を要求する]
    Microsoft の提供する COM ベース競合回避モジュールはすべて署名済みです。このオプションを選択すると、同期の際に競合回避モジュールが有効かどうか確認されます。

Oracle パブリケーションのオプション

Oracle パブリケーションの [アーティクルのプロパティ] ダイアログ ボックスには、[プロパティ][データのマッピング] という 2 つのタブがあります。Oracle パブリケーションでは、SQL Server パブリケーションでサポートされるプロパティの一部がサポートされません。詳細については、「Oracle パブリッシャの設計上の注意点および制限」を参照してください。

[プロパティ] タブ

  • [INSERT、UPDATE、DELETE ストアド プロシージャのコピー]
    アーティクルがトランザクション パブリケーションに含まれているとき、このダイアログ ボックスの [ステートメントの配信] セクションで、ストアド プロシージャを使用して変更をサブスクライバに伝達するように指定した場合 (既定)、そのプロシージャを各サブスクライバにコピーするかどうかを選択します。[False] を選択した場合、プロシージャを手作業でコピーしなければ、ディストリビューション エージェントが変更を伝達しようとしても失敗します。
  • [対象オブジェクトの所有者]
    dbo 以外の値を入力した場合、次の操作が行われます。

    • SQL Server 2005 以上が動作しているサブスクライバでは、入力した値と同じ名前のサブスクライバでスキーマが作成されていることを確認する必要があります。詳細については、「CREATE SCHEMA (Transact-SQL)」を参照してください。
    • SQL Server 2005 より前のバージョンが動作しているサブスクライバでは、各スキーマについて、そのスキーマと同じ名前を持つユーザーをサブスクリプション データベースに追加します。
  • [テーブルスペース名]
    レプリケーションの変更の追跡テーブルを作成する、Oracle サーバー インスタンスのテーブルスペースです。詳細については、「Oracle テーブルスペースの管理」を参照してください。
  • [ステートメントの配信]
    このセクションのオプションは、トランザクション パブリケーションのすべてのテーブルに適用されます。アプリケーションで別の機能が必要にならない限り、既定のオプションを使用することをお勧めします。既定では、トランザクション レプリケーションが、各サブスクライバにインストールされているストアド プロシージャのセットを使用して、変更をサブスクライバに伝達します。パブリッシャ上のテーブルに対して挿入、更新、または削除が実行されると、その操作はサブスクライバ上のストアド プロシージャに対する呼び出しに変換されます。

    [ステートメントの配信] オプションでは、ストアド プロシージャを使用するかどうか、そして使用する場合にはプロシージャに渡されるパラメータの形式を指定します。[ストアド プロシージャ] オプションでは、レプリケーションによって自動的に作成されるプロシージャか、自分で作成した代用のカスタム プロシージャを使用できます。

    詳細については、「トランザクション アーティクルに変更を反映する方法の指定」を参照してください。

[データのマッピング] タブ

  • [列名]
    パブリッシャの列の名前です (読み取り専用)。
  • [パブリッシャのデータ型]
    パブリッシャの列の Oracle データ型です (読み取り専用)。このデータ型は、Oracle データベースでのみ直接変更できます。詳細については Oracle のマニュアルを参照してください。
  • [サブスクライバのデータ型]
    データがレプリケートされるときに Oracle データ型がマップされる、SQL Server データ型です。

    • データ型によっては、可能なマッピングが 1 つしかない場合があります。このような場合、プロパティ グリッドの列は読み取り専用になります。
    • データ型によっては、複数のデータ型を選択できる場合があります。アプリケーションで別のマッピングが必要でない限り、既定のマッピングを使用することをお勧めします。詳細については、「Oracle パブリッシャのデータ型マッピング」を参照してください。

参照

その他の技術情報

パブリケーションを作成してアーティクルを定義する方法 (SQL Server Management Studio)
パブリケーションとアーティクルのプロパティを表示および変更する方法 (SQL Server Management Studio)
初期スナップショットを作成および適用する方法 (SQL Server Management Studio)
サブスクリプションを再初期化する方法 (SQL Server Management Studio)
データとデータベース オブジェクトのパブリッシュ
レプリケーションのプロパティ
レプリケーション ウィザード

ヘルプおよび情報

SQL Server 2005 の参考資料の入手