バックアップからのトランザクション サブスクリプションの初期化
適用対象: SQL Server
トランザクション パブリケーションのサブスクリプションは通常、スナップショットを使用して初期化されますが、レプリケーション ストアド プロシージャを使用して、バックアップからサブスクリプションを初期化することもできます。 詳細については、「 スナップショットを使用しないトランザクション サブスクリプションの初期化を使用して、サブスクリプションを手動で初期化する方法について説明します。
トランザクション サブスクライバーをバックアップから初期化するには
既存のパブリケーションの場合は、パブリッシャーのパブリケーション データベースで sp_helppublication (Transact-SQL) を実行して、バックアップから初期化する機能をパブリケーションがサポートしているかどうかを確認します。 結果セットの allow_initialize_from_backup の値を確認します。
この値が 1の場合、パブリケーションはこの機能をサポートしています。
この値が 0 の場合、パブリッシャー側のパブリケーション データベースに対して sp_changepublication (Transact-SQL) を実行します。
@property
には値 allow_initialize_from_backup を指定し、@value
には値 true を指定します。
新しいパブリケーションの場合、パブリッシャー側のパブリケーション データベースに対して sp_addpublication (Transact-SQL) を実行します。 allow_initialize_from_backup には、 trueを指定します。 詳しくは、「 パブリケーションを作成」をご覧ください。
警告
サブスクライバー データの欠落を回避するために、
@allow_initialize_from_backup = N'true'
と共に sp_addpublication または sp_changepublication を使用するときは、常に@immediate_sync = N'true'
を使用します。BACKUP (Transact-SQL) ステートメントを使用して、パブリケーション データベースのバックアップを作成します。
RESTORE (Transact-SQL) ステートメントを使用し、サブスクライバー上でバックアップを復元します。
パブリッシャー側のパブリケーション データベースに対して、ストアド プロシージャ sp_addsubscription (Transact-SQL) を実行します。 次のパラメーターを指定します。
@sync_type
- 値 "initialize with backup"。@backupdevicetype
- バックアップ デバイスの種類: logical (既定値)、disk、または tape。@backupdevicename
- 復元に使用する論理バックアップ デバイスまたは物理バックアップ デバイス。論理デバイスの場合は、 sp_addumpdevice を使ってデバイスを作成する際に指定したバックアップ デバイスの名前を指定します。
物理デバイスの場合は、「
DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\BACKUP\Mybackup.dat'
」または「TAPE = '\\.\TAPE0'
」のように、完全なパスとファイル名を指定します。(省略可能)
@password
- バックアップ セットの作成時に指定したパスワード。(省略可能)
@mediapassword
- メディア セットのフォーマット時に指定したパスワード。(省略可能)
@fileidhint
- 復元するバックアップ セットの識別子。 たとえば、 1 はバックアップ メディアの 1 番目のバックアップ セットを示し、 2 は 2 番目のバックアップ セットを示します。(テープ デバイスの場合は省略可能)
@unload
- 復元完了後にテープをドライブからアンロードする場合は 1 (既定値) を、テープをアンロードしない場合は 0 を指定します。
(省略可能) プル サブスクリプションの場合は、サブスクライバーのサブスクリプション データベースで sp_addpullsubscription (Transact-SQL) と sp_addpullsubscription_agent (Transact-SQL) を実行します。 詳細については、「 プル サブスクリプションの作成」をご覧ください。
(省略可) ディストリビューション エージェントを起動します。 詳細については、「 Synchronize a Pull Subscription 」または「 Synchronize a Push Subscription」を参照してください。