次の方法で共有


マージ レプリケーションのバックアップと復元の戦略

マージ レプリケーションの場合は、次のデータベースを定期的にバックアップします。

  • パブリッシャー側のパブリケーション データベース
  • ディストリビューターのディストリビューション データベース
  • 各サブスクライバーのサブスクリプション データベース
  • パブリッシャー、ディストリビューター、およびすべてのサブスクライバーの master および msdb システム データベース。 これらのデータベースは、相互および関連するレプリケーション データベースと同時にバックアップする必要があります。 たとえば、パブリケーション データベースのバックアップと同時に、パブリッシャーで マスター データベースと msdb データベースをバックアップします。 パブリケーション データベースが復元される場合は、レプリケーションの構成と設定の観点から 、master データベースと msdb データベースがパブリケーション データベースと一致していることを確認します。

定期的なログ バックアップを実行する場合は、レプリケーション関連の変更をログ バックアップにキャプチャする必要があります。 ログ バックアップを実行しない場合は、レプリケーションに関連する設定が変更されるたびにバックアップを実行する必要があります。 詳細については、「 更新されたバックアップを必要とする一般的なアクション」を参照してください。

パブリケーション データベースのバックアップと復元に関して以下で詳しく説明する方法のいずれかを選択し、ディストリビューション データベースとサブスクリプション データベースに関する推奨事項に従います。

パブリケーション データベースのバックアップと復元

マージ パブリケーション データベースを復元するには、2 つの方法があります。 バックアップからパブリケーション データベースを復元した後は、次のいずれかを行う必要があります。

  • パブリケーション データベースをサブスクリプション データベースと同期します。

  • パブリケーション データベース内のパブリケーションに対するすべてのサブスクリプションを再初期化します。

これらの方法のいずれかを使用すると、復元が実行された後、パブリッシャーとすべてのサブスクライバーが確実に同期されます。

テーブルに ID 列が含まれている場合は、復元後に正しい ID 範囲が割り当てられていることを確認する必要があります。 詳細については、「 ID 列のレプリケート」を参照してください。

パブリケーション データベースの同期

パブリケーション データベースをサブスクリプション データベースと同期すると、1 つ以上のサブスクリプション データベースから、以前にパブリケーション データベースで行われた変更をアップロードできますが、復元されたバックアップには反映されません。 アップロードできるデータは、パブリケーションのフィルター選択方法によって次のように異なります。

  • パブリケーションがフィルター選択されていない場合は、最新のサブスクライバーと同期することでパブリケーション データベースを最新の状態に更新できます。

  • パブリケーションがフィルター選択されている場合は、パブリケーションを最新の状態に更新できない場合があります。 各サブスクリプションが 1 つの地域の顧客データのみを受信できるようにパーティション分割されているテーブルがあるとします。北、東、南、西のいずれかです。 データの各パーティションに 1 つ以上のサブスクライバーがある場合、各パーティションのサブスクライバーと同期することにより、パブリケーション データベースを最新の状態に更新できます。 ただし、たとえば、西パーティションのデータがすべてのサブスクライバーにレプリケートされていない場合は、パブリッシャーでこのデータを最新の状態に更新することはできません。

重要

パブリケーション データベースをサブスクリプション データベースと同期すると、パブリッシュされたテーブルが、バックアップから復元された他のパブリッシュされていないテーブルの時点よりも新しい時点に復元される可能性があります。

Microsoft SQL Server 2005 より前のバージョンの Microsoft SQL Server を実行しているサブスクライバーと同期する場合、サブスクリプションを匿名にすることはできません。クライアント サブスクリプションまたはサーバー サブスクリプションである必要があります (以前のリリースではローカル サブスクリプションとグローバル サブスクリプションと呼ばれます)。

サブスクリプションを同期するには、「 プッシュ サブスクリプションを同期する」 と「 プル サブスクリプションを同期する」を参照してください

すべてのサブスクリプションの再初期化

すべてのサブスクリプションを再初期化すると、すべてのサブスクライバーが復元されたパブリケーション データベースと一貫性のある状態になります。 この方法は、特定のパブリケーション データベース バックアップによって表される以前の状態にトポロジ全体を返す場合に使用する必要があります。 たとえば、誤って実行されたバッチ操作から復旧するメカニズムとしてパブリケーション データベースを以前の時点に復元する場合は、すべてのサブスクリプションを再初期化できます。

このオプションを選択した場合は、パブリケーション データベースを復元した直後に、再初期化されたサブスクライバーに配信するための新しいスナップショットを生成します。

サブスクリプションを再初期化するには、「サブスクリプションの 再初期化」を参照してください

スナップショットを作成して適用するには、「初期スナップショットの作成と適用」および「パラメーター化されたフィルターを使用したマージ パブリケーションのスナップショットの作成」を参照してください。

ディストリビューション データベースのバックアップと復元

マージ レプリケーションでは、ディストリビューション データベースは定期的にバックアップする必要があり、使用されるバックアップがディストリビューターを使用するすべてのパブリケーションの最短の保持期間を超えない限り、特別な考慮事項なしに復元できます。 たとえば、保有期間がそれぞれ 10 日、20 日、30 日のパブリケーションが 3 つある場合、データベースの復元に使用されるバックアップは 10 日を超えてはなりません。 ディストリビューション データベースには、マージ レプリケーションのロールが制限されています。変更の追跡で使用されるデータは格納されず、マージ レプリケーションの変更をサブスクリプション データベースに転送するための一時的なストレージは提供されません (トランザクション レプリケーションの場合と同様)。

サブスクリプション データベースのバックアップと復元

サブスクリプション データベースの正常な復旧を確実に行うために、サブスクライバーはサブスクリプション データベースをバックアップする前にパブリッシャーと同期する必要があります。サブスクリプション データベースが復元された後も同期する必要があります。

  • サブスクリプション データベース バックアップの前にパブリッシャーと同期すると、サブスクライバーがバックアップから復元された場合でも、サブスクリプションがパブリケーションの保持期間内であることを確認できます。 たとえば、保持期間が 10 日のパブリケーションを想定します。 最後の同期は 8 日前で、バックアップが実行されます。 バックアップが 4 日後に復元された場合、最後の同期は 12 日前 (保持期間を過ぎた) に発生します。 この場合は、サブスクライバーを再初期化する必要があります。 バックアップの前にサブスクライバーが同期していた場合、サブスクリプション データベースは保持期間内になります。

    バックアップは、サブスクライバーがサブスクライブするすべてのパブリケーションの最短の保有期間を超えてはなりません。 たとえば、サブスクライバーが保持期間が 10 日、20 日、30 日の 3 つのパブリケーションをサブスクライブしている場合、データベースの復元に使用されるバックアップは 10 日を超えてはなりません。

  • 復元後にサブスクリプション データベースを各パブリケーションと同期すると、パブリッシャーのすべての変更をサブスクライバーが最新の状態に保つことができます。

パブリケーションの保有期間を設定するには、「 サブスクリプションの有効期限を設定する」を参照してください。

サブスクリプションを同期するには、「 プッシュ サブスクリプションを同期する」 と「 プル サブスクリプションを同期する」を参照してください

再パブリッシュするデータベースのバックアップと復元

データベースがパブリッシャーのデータをサブスクライブし、その同じデータを他のサブスクリプション データベースに発行すると、再パブリッシュ データベースと呼ばれます。 再発行するデータベースを復元する場合は、このトピックの「パブリケーション データベースのバックアップと復元」および「サブスクリプション データベースのバックアップと復元」で説明されているガイドラインに従ってください。

こちらもご覧ください

SQL Server データベースのバックアップと復元
レプリケートされたデータベースのバックアップと復元