トランザクション サブスクリプションをバックアップから初期化する方法 (レプリケーション Transact-SQL プログラミング)

トランザクション パブリケーションのサブスクリプションは通常、スナップショットを使用して初期化されますが、レプリケーション ストアド プロシージャを使用して、バックアップからサブスクリプションを初期化することもできます。詳細については、「スナップショットを使用しないトランザクション サブスクリプションの初期化」を参照してください。

トランザクション サブスクライバをバックアップから初期化するには

  1. 既存のパブリケーションの場合は、パブリッシャのパブリケーション データベースで sp_helppublication (Transact-SQL) を実行して、バックアップから初期化する機能をパブリケーションがサポートしているかどうかを確認します。結果セットの allow_initialize_from_backup の値を確認します。

    • この値が 1 の場合、パブリケーションはこの機能をサポートしています。

    • この値が 0 の場合は、パブリッシャのパブリケーション データベースで sp_changepublication (Transact-SQL) を実行します。@propertyallow_initialize_from_backup を、@value に true を指定します。

  2. 新しいパブリケーションの場合は、パブリッシャのパブリケーション データベースで sp_addpublication (Transact-SQL) を実行します。allow_initialize_from_backup には、true を指定します。詳細については、「パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  3. BACKUP (Transact-SQL) ステートメントを使用して、パブリケーション データベースのバックアップを作成します。

  4. RESTORE (Transact-SQL) ステートメントを使用し、サブスクライバ上でバックアップを復元します。

  5. パブリッシャ側のパブリケーション データベースに対して、ストアド プロシージャ sp_addsubscription (Transact-SQL) を実行します。次のパラメータを指定します。

    • @sync_type - initialize with backup を指定します。

    • @backupdevicetype - バックアップ デバイスの種類として、logical (既定値)、disktape のいずれかを指定します。

    • @backupdevicename - 復元に使用する論理バックアップ デバイスまたは物理バックアップ デバイスを指定します。

      論理デバイスの場合は、sp_addumpdevice を使ってデバイスを作成する際に指定したバックアップ デバイスの名前を指定します。

      物理デバイスの場合は、「DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\BACKUP\Mybackup.dat'」または「TAPE = '\\.\TAPE0'」のように、完全なパスとファイル名を指定します。

    • (省略可) @password - バックアップ セットの作成時に指定したパスワードを指定します。

    • (省略可) @mediapassword - メディア セットのフォーマット時に指定したパスワードを指定します。

    • (省略可) @fileidhint - 復元するバックアップ セットの識別子を指定します。たとえば、1 はバックアップ メディアの 1 番目のバックアップ セットを示し、2 は 2 番目のバックアップ セットを示します。

    • (テープ デバイスの場合は省略可) @unload - 復元が完了した後にテープをドライブからアンロードする場合は 1 (既定値) を、テープをアンロードしない場合は 0 を指定します。

  6. (省略可) プル サブスクリプションの場合は、サブスクライバのサブスクリプション データベースで sp_addpullsubscription (Transact-SQL) および sp_addpullsubscription_agent (Transact-SQL) を実行します。詳細については、「プル サブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  7. (省略可) ディストリビューション エージェントを起動します。詳細については、「プル サブスクリプションを同期する方法 (レプリケーション プログラミング)」または「プッシュ サブスクリプションを同期する方法 (レプリケーション プログラミング)」を参照してください。