サブスクリプションを手動で初期化する方法 (レプリケーション Transact-SQL プログラミング)

サブスクリプションを初期化する場合、一般には、初期スナップショットが使用されます。ただし、スキーマおよび初期データがサブスクライバ側に既に存在していれば、パブリケーションのサブスクリプションをスナップショットを使用せずに初期化できます。

ms147897.note(ja-jp,SQL.90).gif重要 :
データとスキーマをサブスクライバにコピーしてからサブスクリプションが手動で初期化されるまでの間に、トランザクション レプリケーションを使ってパブリッシュされたデータベース上で処理が実行されると、この処理による変更がサブスクライバにレプリケートされない場合があります。

サブスクリプションは、レプリケーションのストアド プロシージャを使用して手動で初期化できます。

トランザクション パブリケーションのプル サブスクリプションを手動で初期化するには

  1. スキーマとデータがサブスクリプション データベースに存在することを確認します。詳細については、「スナップショットを使用しないトランザクション サブスクリプションの初期化」を参照してください。

  2. パブリッシャのパブリケーション データベースで sp_addsubscription を実行します。@publication@subscriber を指定し、@destination_db@subscription_type@sync_type に、それぞれ、パブリッシュされたデータを格納するサブスクライバ側データベースの名前、pullreplication support only を指定します。詳細については、「プル サブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  3. サブスクライバで、sp_addpullsubscription を実行します。サブスクリプションの更新については、「トランザクション パブリケーションに対して更新可能なサブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  4. サブスクライバで、sp_addpullsubscription_agent を実行します。詳細については、「プル サブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  5. ディストリビューション エージェントを起動して、パブリッシャからレプリケーション オブジェクトを転送し、最新の変更をダウンロードします。詳細については、「プル サブスクリプションを同期する方法 (レプリケーション プログラミング)」を参照してください。

トランザクション パブリケーションのプッシュ サブスクリプションを手動で初期化するには

  1. スキーマとデータがサブスクリプション データベースに存在することを確認します。詳細については、「スナップショットを使用しないトランザクション サブスクリプションの初期化」を参照してください。

  2. パブリッシャのパブリケーション データベースで sp_addsubscription を実行します。@destination_db@subscription_type@sync_type に、それぞれ、パブリッシュされたデータを格納するサブスクライバ側データベースの名前、pushreplication support only を指定します。サブスクリプションの更新については、「トランザクション パブリケーションに対して更新可能なサブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  3. パブリッシャのパブリケーション データベースで sp_addpushsubscription_agent を実行します。詳細については、「プッシュ サブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  4. ディストリビューション エージェントを起動して、パブリッシャからレプリケーション オブジェクトを転送し、最新の変更をダウンロードします。詳細については、「プッシュ サブスクリプションを同期する方法 (レプリケーション プログラミング)」を参照してください。

マージ パブリケーションのプル サブスクリプションを手動で初期化するには

  1. スキーマとデータがサブスクリプション データベースに存在することを確認します。これは、サブスクライバでパブリケーション データベースのバックアップを復元することによって行います。詳細については、「スナップショットを使用しないマージ サブスクリプションの初期化」を参照してください。

  2. パブリッシャで sp_addmergesubscription を実行します。@publication@subscriber@subscriber_db を指定し、@subscription_typepull を指定します。これにより、プル サブスクリプションが登録されます。

  3. パブリッシュされたデータを格納するサブスクライバのデータベースで sp_addmergepullsubscription を実行します。@sync_type には、none を指定します。

  4. サブスクライバで、sp_addmergepullsubscription_agent を実行します。詳細については、「プル サブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  5. マージ エージェントを起動して、パブリッシャからレプリケーション オブジェクトを転送し、最新の変更をダウンロードします。詳細については、「プル サブスクリプションを同期する方法 (レプリケーション プログラミング)」を参照してください。

マージ パブリケーションのプッシュ サブスクリプションを手動で初期化するには

  1. スキーマとデータがサブスクリプション データベースに存在することを確認します。これは、サブスクライバでパブリケーション データベースのバックアップを復元することによって行います。詳細については、「スナップショットを使用しないマージ サブスクリプションの初期化」を参照してください。

  2. パブリッシャ側のパブリケーション データベースに対し、sp_addmergesubscription を実行します。@subscriber_db@subscription_type@sync_type に、それぞれ、パブリッシュされたデータを格納するサブスクライバ側データベースの名前、pushnone を指定します。

  3. パブリッシャ側のパブリケーション データベースに対し、sp_addmergepushsubscription_agent を実行します。詳細については、「プッシュ サブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  4. マージ エージェントを起動して、パブリッシャからレプリケーション オブジェクトを転送し、最新の変更をダウンロードします。詳細については、「プッシュ サブスクリプションを同期する方法 (レプリケーション プログラミング)」を参照してください。

参照

その他の技術情報

レプリケートされたデータベースのバックアップと復元
サブスクリプションを手動で初期化する方法 (SQL Server Management Studio)
スナップショットを使用しないマージ サブスクリプションの初期化
スナップショットを使用しないトランザクション サブスクリプションの初期化

ヘルプおよび情報

SQL Server 2005 の参考資料の入手