マージ レプリケーションのバックアップと復元の方式Strategies for Backing Up and Restoring Merge Replication

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

マージ レプリケーションでは、次のデータベースを定期的にバックアップします。For merge replication, back up the following databases regularly:

  • パブリッシャーにあるパブリケーション データベースThe publication database at the Publisher

  • ディストリビューターにあるディストリビューション データベースThe distribution database at the Distributor

  • 各サブスクライバーにあるサブスクリプション データベースThe subscription database at each Subscriber

  • パブリッシャー、ディストリビューター、およびすべてのサブスクライバーにある master および msdb システム データベース。The master and msdb system databases at the Publisher, Distributor and all Subscribers. これらのデータベースは、相互に関連するレプリケーション データベースとして、同時にバックアップする必要があります。These databases should be backed up at the same time as each other and the relevant replication database. たとえば、パブリッシャーでパブリケーション データベースをバックアップするときに、 master および msdb データベースも同時にバックアップします。For example, back up the master and msdb databases at the Publisher at the same time you back up the publication database. パブリケーション データベースを復元するときは、 master および msdb データベースのレプリケーションの構成と設定が、パブリケーション データベースと一致していることを確認します。If the publication database is restored, ensure that the master and msdb database are consistent with the publication database in terms of replication configuration and settings.

定期的なログ バックアップを実行する場合は、レプリケーション関連の変更をログ バックアップでキャプチャする必要があります。If you perform regular log backups, any replication-related changes should be captured in the log backups. ログ バックアップを実行しない場合は、レプリケーションに関連する設定を変更するたびに、バックアップを実行する必要があります。If you don't perform log backups, a backup should be performed whenever a setting relevant to replication is changed. 詳細については、「 Common Actions Requiring an Updated Backup」を参照してください。For more information, see Common Actions Requiring an Updated Backup.

以下で詳しく説明するパブリケーション データベースのバックアップと復元の方法のいずれかを選択し、ディストリビューション データベースとサブスクリプション データベースに対する推奨事項に従ってください。Choose one of the approaches detailed below for backing up and restoring the publication database, and then follow the recommendations listed for the distribution database and subscription databases.

パブリケーション データベースのバックアップと復元Backing Up and Restoring the Publication Database

マージ パブリケーション データベースの復元方法は 2 とおりあります。There are two approaches to restoring a merge publication database. バックアップからパブリケーション データベースを復元した後に、次のいずれかを実行する必要があります。After restoring the publication database from a backup, you should either:

  • パブリケーション データベースとサブスクリプション データベースを同期する。Synchronize the publication database with a subscription database.

  • パブリケーション データベースにあるパブリケーションへのすべてのサブスクリプションを再初期化する。Reinitialize all subscriptions to the publications in the publication database.

これらのいずれかの方法を使用すると、復元の実行後にパブリッシャーとすべてのサブスクライバーが同期されます。Using either of these methods ensures that after a restore is performed, the Publisher and all Subscribers are synchronized.

注意

ID 列を含むテーブルを使用している場合は、復元後、正しい ID 範囲を割り当てる必要があります。If any tables contain identity columns, you must ensure the correct identity ranges are assigned after a restore. 詳細については、「Replicate Identity Columns」 (ID 列のレプリケート) を参照してください。For more information, see Replicate Identity Columns.

パブリケーション データベースの同期Synchronizing the Publication Database

パブリケーション データベースとサブスクリプション データベースを同期すると、パブリケーション データベースで以前に変更され、復元されたバックアップに表示されていない変更を 1 つ以上のサブスクリプション データベースからアップロードできます。Synchronizing a publication database with a subscription database allows you to upload from one or more subscription databases those changes made previously in the publication database, but not represented in the restored backup. アップロードできるデータは、パブリケーションのフィルター選択方法によって次のように異なります。The data that can be uploaded depends on the way in which a publication is filtered:

  • パブリケーションがフィルター選択されていない場合は、最新のサブスクライバーと同期することでパブリケーション データベースを最新の状態に更新できます。If the publication is not filtered, you should be able to bring the publication database up-to-date by synchronizing with the most up-to-date Subscriber.

  • パブリケーションがフィルター選択されている場合は、パブリケーションを最新の状態に更新できない場合があります。If the publication is filtered, you might not be able to bring the publication database up-to-date. たとえば、各サブスクリプションが 1 つの地域 (北、東、南、西のいずれか) の顧客データのみを受信できるようにパーティション分割されているテーブルがあるとします。Consider a table that is partitioned such that each subscription receives customer data only for a single region: North, East, South, and West. データの各パーティションに 1 つ以上のサブスクライバーがある場合、各パーティションのサブスクライバーと同期することにより、パブリケーション データベースを最新の状態に更新できます。If there is at least one Subscriber for each partition of data, synchronizing with a Subscriber for each partition should bring the publication database up-to-date. ただし、たとえば、西パーティションのデータがすべてのサブスクライバーにレプリケートされていない場合は、パブリッシャーでこのデータを最新の状態に更新することはできません。However, if data in the West partition, for example, was not replicated to any Subscribers, this data at the Publisher cannot be brought up-to-date.

重要

パブリケーション データベースとサブスクリプション データベースを同期することによって、復元対象のパブリッシュされたテーブルを、バックアップから復元されたパブリッシュされていないテーブルよりも新しい状態にすることができます。Synchronizing a publication database with a subscription database can result in published tables being restored to a point in time that is more recent than the point in time of other non-published tables restored from the backup.

MicrosoftMicrosoft SQL ServerSQL Server よりも前のバージョンの MicrosoftMicrosoft SQL Server 2005 (9.x)SQL Server 2005 (9.x) を実行しているサブスクライバーと同期する場合は、サブスクリプションを匿名にすることはできません。このサブスクリプションは、クライアント サブスクリプションまたはサーバー サブスクリプション (前のリリースではローカル サブスクリプションとグローバル サブスクリプションと呼ばれていました) にする必要があります。If you synchronize with a Subscriber that is running a version of MicrosoftMicrosoft SQL ServerSQL Server prior to MicrosoftMicrosoft SQL Server 2005 (9.x)SQL Server 2005 (9.x), the subscription cannot be anonymous; it must be a client subscription or server subscription (referred to as local subscriptions and global subscriptions in previous releases).

サブスクリプションを同期するには、「 Synchronize a Push Subscription 」および「 Synchronize a Pull Subscription」を参照してください。To synchronize a subscription, see Synchronize a Push Subscription and Synchronize a Pull Subscription.

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

すべてのサブスクリプションを再初期化すると、すべてのサブスクライバーを、復元されたパブリケーション データベースと一貫性のある状態に保つことができます。Reinitializing all subscriptions ensures all Subscribers are in a state consistent with the restored publication database. 特定のパブリケーション データベースのバックアップで再現される、以前の状態にトポロジ全体を戻す場合は、この方法を使用する必要があります。This approach should be used if you want to return an entire topology to the previous state represented by a given publication database backup. たとえば、誤って実行したバッチ操作から復旧するメカニズムとして、パブリケーション データベースをより古い時点に復元する場合に、すべてのサブスクリプションを再初期化することができます。For example, you might want to reinitialize all subscriptions if you are restoring a publication database to an earlier point in time as a mechanism to recover from an erroneously performed batch operation.

このオプションを選択する場合には、パブリケーション データベースを復元した直後に、再初期化されたサブスクライバーに配信するための新しいスナップショットを生成します。If you choose this option, generate a new snapshot for delivery to reinitialized Subscribers immediately after restoring your publication database.

サブスクリプションを再初期化するには、「 Reinitialize a Subscription」を参照してください。To reinitialize a subscription, see Reinitialize a Subscription.

スナップショットを作成および適用するには、「 Create 」および「 Apply the Initial Snapshot 」および「 Create a Snapshot for a Merge Publication with Parameterized Filters」を参照してください。To create and apply a snapshot, see Create and Apply the Initial Snapshot and Create a Snapshot for a Merge Publication with Parameterized Filters.

ディストリビューション データベースのバックアップと復元Backing Up and Restoring the Distribution Database

マージ レプリケーションでは、ディストリビューション データベースを定期的にバックアップする必要があります。この場合、使用されるバックアップがディストリビューターを使用するすべてのパブリケーションの最短の保有期間よりも古くない限り、特に注意することなく復元できます。With merge replication, the distribution database should be backed up regularly, and can be restored without any special considerations as long as the backup used is no older than the shortest retention period of all publications that use the Distributor. たとえば、保有期間がそれぞれ 10、20、および 30 日に設定されている 3 つのパブリケーションがある場合は、10 日より長く経過したバックアップはデータベースの復元に使用できません。For example, if there are three publications with retention periods of 10, 20, and 30 days, respectively, the backup used to restore the database should not be more than 10 days old. マージ レプリケーションでは、ディストリビューション データベースの役割が制限されています。変更の追跡に使用されるすべてのデータは保存されず、トランザクション レプリケーションのような、サブスクリプション データベースの転送先となるマージ レプリケーションの変更の一時的な保存場所も用意されません。The distribution database has a limited role in merge replication: it does not store any data used in change tracking and it does not provide temporary storage of merge replication changes to be forwarded to subscription databases (as it does in transactional replication).

サブスクリプション データベースのバックアップと復元Backing Up and Restoring a Subscription Database

サブスクリプション データベースを正常に復元するためには、サブスクライバーとパブリッシャーを同期してから、サブスクリプション データベースをバックアップする必要があります。また、サブスクリプション データベースの復元後にも同期を行う必要があります。To ensure successful recovery of a subscription database, Subscribers should synchronize with the Publisher before the subscription database is backed up; they should also synchronize after the subscription database is restored:

  • サブスクリプション データベースのバックアップの前にパブリッシャーと同期することにより、サブスクライバーをバックアップから復元した場合に、サブスクリプションをパブリケーションの保有期間内の状態に保つことができます。Synchronizing with the Publisher before a subscription database backup helps ensure that if a Subscriber is restored from backup, the subscription is still within the publication retention period. たとえば、保有期間が 10 日間に設定されているパブリケーションがあるとします。For example, assume a publication with a retention period of 10 days. 最後の同期が 8 日前で、現在バックアップが実行されています。The last synchronization was 8 days ago, and now the backup is performed. 4 日後にバックアップが復元されると、最後の同期は 12 日前に行われたことになり、保有期間は過ぎてしまいます。If the backup is restored 4 days later, the last synchronization will have occurred 12 days ago, which is past the retention period. この場合は、サブスクライバーを再初期化する必要があります。In this case, you would have to reinitialize the Subscriber. バックアップの前にサブスクライバーを同期しておくと、サブスクリプション データベースを保有期間内の状態に保つことができます。If the Subscriber had synchronized before the backup, the subscription database would be within the retention period.

    サブスクライバーがサブスクライブするすべてのパブリケーションの最短の保有期間よりも古いバックアップは使用できません。The backup should be no older than the shortest retention period of all publications to which the Subscriber subscribes. たとえば、保有期間がそれぞれ 10、20、および 30 日に設定されている 3 つのパブリケーションをサブスクライバーがサブスクライブする場合、10 日より長く経過したバックアップはデータベースの復元に使用できません。For example, if a Subscriber subscribes to three publications with retention periods of 10, 20, and 30 days, respectively, the backup used to restore the database should not be more than 10 days old.

  • 復元後にサブスクリプション データベースとそれぞれのパブリケーションを同期すると、パブリッシャーのすべての変更を含む最新の状態にサブスクライバーを保つことができます。Synchronizing the subscription database with each of its publications following a restore ensures that the Subscriber is up to date with all changes at the Publisher.

パブリケーションの保有期間を設定する場合は、「サブスクリプションの有効期限の設定」を参照してください。To set the publication retention period, see Set the Expiration Period for Subscriptions.

サブスクリプションを同期するには、「 Synchronize a Push Subscription 」および「 Synchronize a Pull Subscription」を参照してください。To synchronize a subscription, see Synchronize a Push Subscription and Synchronize a Pull Subscription.

再パブリッシュ データベースのバックアップと復元Backing Up and Restoring a Republishing Database

あるデータベースがパブリッシャーからのデータをサブスクライブしてから、同じデータを別のサブスクリプション データベースにパブリッシュするとき、このデータベースのことを再パブリッシュ データベースと言います。When a database subscribes to data from a Publisher and in turn publishes that same data to other subscription databases, it is referred to as a republishing database. 再パブリッシュ データベースを復元する場合は、このトピックの「パブリケーション データベースのバックアップと復元」および「サブスクリプション データベースのバックアップと復元」で説明されているガイドラインに従ってください。When restoring a republishing database, follow the guidelines described in "Backing Up and Restoring a Publication Database" and "Backing Up and Restoring a Subscription Database" in this topic.

参照See Also

SQL Server データベースのバックアップと復元 Back Up and Restore of SQL Server Databases
レプリケートされたデータベースのバックアップと復元Back Up and Restore Replicated Databases