トランザクション レプリケーションの連携バックアップの有効化

適用対象: SQL Server

データベースでトランザクション レプリケーションを有効にする場合、ディストリビューション データベースに配布する前にすべてのトランザクションをバックアップするように指定できます。 また、ディストリビューション データベースの連携バックアップを有効にして、ディストリビューターに反映されたトランザクションがバックアップされるまで、パブリケーション データベースのトランザクション ログが切り捨てられないようにすることができます。 詳細については、「 スナップショット レプリケーションおよびトランザクション レプリケーションのバックアップと復元の方式」を参照してください。

Note

パブリッシャー データベースが可用性グループの一部であり、The process could not execute 'sp_repldone/sp_replcounters' on 'machinename\instance', Possible inconsistent state in the distribution database, Get help: http://help/MSSQL_REPL20011 (Source: MSSQLServer, Error number: 18846) というエラーが発生する可能性がある場合、ディストリビューション データベースで sync with backup オプションは使用できません。

トランザクション レプリケーションでパブリッシュされたデータベースの連携バックアップを有効にするには

  1. パブリッシャーで、SELECT DATABASEPROPERTYEX(DB_NAME(),'IsSyncWithBackup') DATABASEPROPERTYEX (Transact-SQL) 関数を使用すると、パブリケーション データベースの IsSyncWithBackup プロパティが返されます。 この関数が 1を返した場合、連携バックアップはパブリッシュされたデータベースに対して既に有効になっています。

  2. ステップ 1 の関数が 0 を返した場合、パブリッシャー側のパブリケーション データベースに対して sp_replicationdboption (Transact-SQL) を実行します。 @optnamesync with backupを指定し、 @valuetrueを指定します。

    Note

    sync with backup オプションを falseに変更すると、ログ リーダー エージェントが実行された後で、または一定の間隔で (ログ リーダー エージェントが継続的に実行されている場合)、パブリケーション データベースの切り捨てのポイントが更新されます。 最長間隔は、 –MessageInterval エージェント パラメーター (既定値は 30 秒) によって制御されます。

ディストリビューション データベースの連携バックアップを有効にするには

  1. ディストリビューターで、DATABASEPROPERTYEX (Transact-SQL) 関数を使用すると、ディストリビューション データベースの IsSyncWithBackup プロパティが返されます。 この関数が 1を返した場合、ディストリビューション データベースの連携バックアップは既に有効になっています。

  2. ステップ 1 の関数が 0 を返した場合、ディストリビューター側のディストリビューション データベースに対して sp_replicationdboption (Transact-SQL) を実行します。 @optnamesync with backup を指定し、 @valuetrueを指定します。

連携バックアップを無効にするには

  1. パブリッシャーのパブリケーション データベースで、またはディストリビューターのディストリビューション データベースで、sp_replicationdboption (Transact-SQL) を実行します。 @optnamesync with backup を指定し、 @valuefalseを指定します。

A. 現在のデータベースの IsSyncWithBackup プロパティを取得する

この例の場合、現在のデータベースの IsSyncWithBackup プロパティが返されます。

SELECT DATABASEPROPERTYEX(DB_NAME(),'IsSyncWithBackup')`

B. 特定のデータベースの IsSyncWithBackup プロパティを取得する

この例の場合、データベース NameOfDatabaseToCheckIsSyncWithBackup プロパティが返されます。

SELECT DATABASEPROPERTYEX('NameOfDatabaseToCheck','IsSyncWithBackup')`