スナップショットを使用しないマージ サブスクリプションの初期化

更新 : 2006 年 7 月 17 日

マージ パブリケーションへのサブスクリプションは、既定ではスナップショットを使用して初期化されます。このスナップショットはスナップショット エージェントによって生成され、マージ エージェントによって適用されます。場合によっては、バックアップなどの別の方法でサブスクリプションを初期化できます。マージ レプリケーションは、フィルタ選択されたパブリケーションとフィルタ選択されていないパブリケーションの両方で、スナップショットを使用しないサブスクリプションの初期化をサポートします。このオプションは、フィルタ選択されていないパブリケーションや静的フィルタでより一般的に使用されます。パラメータ化されたフィルタを使用するパブリケーションは通常、サブスクライバのパーティションのスナップショットを使用して初期化されます。詳細については、「パラメータ化されたフィルタを使用したマージ パブリケーションのスナップショット」を参照してください。

できる限り、スナップショットを使用してサブスクリプションを初期化することをお勧めします。特に次の状況では、スナップショットを使用してサブスクリプションを初期化するようにしてください。

  • パブリッシャで、列レベルの追跡を使用する場合、列フィルタ選択を使用する場合、またはスキーマに変更を加える場合。この場合、スナップショットを使用せずにサブスクリプションを初期化すると、収束できない可能性があります。
  • Web 同期を使用する場合。未使用のスキーマ ファイルはサブスクライバにレプリケートされますが、使用されません。
  • サブスクリプションを再初期化する必要がある場合。
  • 事前計算済みパーティションを使用してパフォーマンスを向上させる必要がある場合。

バックアップまたは別の方法を使用してマージ サブスクリプションを初期化するには、次の手順を使用します。

  1. マージ レプリケーションで使用されるテーブルに uniqueidentifier 列を追加し、rowguid および not null 列属性を設定します。
  2. サブスクライバの初期化に使用するデータベースのバックアップを実行します。
  3. パブリケーションを作成し、そのパブリケーションのスナップショットを生成します。スナップショットのパブリッシュされたテーブルからのスキーマおよびデータを使用しない場合でも、スナップショットは必要です。スナップショットには、レプリケーションに必要なシステム オブジェクトやメタデータが含まれているためです。これらのオブジェクトやメタデータは、初期同期中にサブスクライバにコピーされます。
  4. サブスクライバでバックアップを復元するか、別の方法を使用してデータをコピーします。バックアップを復元する場合は、KEEP_REPLICATION オプションは指定しないでください。このオプションは、復元中にレプリケーションの設定を維持するように設計されています。バックアップはパブリッシャからのものであるため、パブリッシャの設定をデータベースから削除する必要があります。初期同期後には、復元されたデータベースに必要なサブスクライバ設定が含まれます。
  5. サブスクリプションを作成し、サブスクリプションを手動で初期化するように指定します。
ms152488.note(ja-jp,SQL.90).gifメモ :
スナップショットを使用せずにサブスクリプションを初期化する場合、パブリッシャで SQL Server サービスを実行する際に使用されるアカウントには、ディストリビュータのスナップショット フォルダに対する書き込み権限が必要です。権限の詳細については、「レプリケーション エージェントのセキュリティ モデル」を参照してください。

詳細については、以下のトピックを参照してください。

参照

概念

サブスクリプションの初期化
サブスクリプションの再初期化

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容 :
  • スナップショットを使用せずにマージ サブスクリプションを初期化すると期待どおりに動作しない状況について、説明を追加しました。
  • この機能の使用が推奨されないことを示す記述を追加しました。