トランザクション パブリケーションへのサブスクリプションは通常、スナップショットを使用して初期化されますが、レプリケーション ストアド プロシージャを使用してバックアップからサブスクリプションを初期化できます。 詳細については、「 スナップショットを使用せずにトランザクション サブスクリプションを初期化する」を参照してください。
バックアップからトランザクション サブスクライバーを初期化するには
既存のパブリケーションの場合は、パブリケーション データベースのパブリッシャーで sp_helppublication (Transact-SQL) を実行して、パブリケーションがバックアップから初期化する機能をサポートしていることを確認します。 結果セット内の allow_initialize_from_backup の値に注意してください。
値が 1 の場合、パブリケーションはこの機能をサポートします。
値が 0 の場合は、パブリッシャー側のパブリケーション データベース で sp_changepublication (Transact-SQL) を実行します。 @propertyにallow_initialize_from_backupの値を指定し、
true
に対する@valueの値を指定します。
新しいパブリケーションの場合は、パブリッシャー側のパブリケーション データベースで sp_addpublication (Transact-SQL) を実行します。 allow_initialize_from_backup に対する値として
true
を指定します。 詳細については、「 パブリケーションの作成」を参照してください。警告
サブスクライバー データが不足しないようにするには、
@allow_initialize_from_backup = N'true'
でsp_addpublicationを使用するときは、常に@immediate_sync = N'true'
を使用します。BACKUP (Transact-SQL) ステートメントを使用してパブリケーション データベースのバックアップを作成します。
RESTORE (Transact-SQL) ステートメントを使用してサブスクライバーのバックアップを復元します。
パブリッシャー側のパブリケーション データベースで、ストアド プロシージャ sp_addsubscription (Transact-SQL) を実行します。 次のパラメーターを指定します。
@sync_type - バックアップを使用した初期化の値。
@backupdevicetype - バックアップ デバイスの種類 : 論理 (既定)、 ディスク、または テープ。
@backupdevicename - 復元に使用する論理バックアップ デバイスまたは物理バックアップ デバイス。
論理デバイスの場合は、sp_addumpdeviceがデバイスの 作成に使用 されたときに指定されたバックアップ デバイスの名前を指定します。
物理デバイスの場合は、
DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\BACKUP\Mybackup.dat'
やTAPE = '\\.\TAPE0'
など、完全なパスとファイル名を指定します。(省略可能) @password - バックアップ セットの作成時に指定されたパスワード。
(省略可能) @mediapassword - メディア セットの書式設定時に指定されたパスワード。
(省略可能) @fileidhint - 復元するバックアップ セットの識別子。 たとえば、 1 を指定すると、バックアップ メディアの最初のバックアップ セットが示され、 2 は 2 番目のバックアップ セットを示します。
(テープ デバイスの場合は省略可能) @unload - 復元の完了後にテープをドライブからアンロードする場合は 1 (既定値) を指定し、アンロードしない場合は 0 を指定します。
(省略可能)プル サブスクリプションの場合は、サブスクリプション データベースのサブスクライバーで sp_addpullsubscription (Transact-SQL) と sp_addpullsubscription_agent (Transact-SQL) を実行します。 詳細については、「 プル サブスクリプションの作成」を参照してください。
(省略可能)ディストリビューション エージェントを起動します。 詳細については、「 プル サブスクリプションの同期 」または 「プッシュ サブスクリプションの同期」を参照してください。