データベース ミラーリングとログ配布 (SQL Server)Database Mirroring and Log Shipping (SQL Server)

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

特定のデータベースをミラーリングまたはログ配布することができます。また、ミラーリングとログ配布を同時に行うこともできます。A given database can be mirrored or log shipped; it can also be simultaneously mirrored and log shipped. 使用する方法を選択するには、次の点を検討します。To choose what approach to use, consider the following:

  • 必要な配布先サーバーは何台か。How many destination servers do you require?

    配布先データベースが 1 つしか必要でない場合は、データベース ミラーリングをお勧めします。If you require only a single destination database, database mirroring is the recommended solution.

    配布先データベースが複数必要である場合、ログ配布を単独で使用するか、またはデータベース ミラーリングと併用する必要があります。If you require more than one destination database, you need to use log shipping, either alone or with database mirroring. 2 つの操作を組み合わせることで、データベース ミラーリングの利点を得られるだけでなく、ログ配布により複数配布先のサポートが可能になります。Combining these approaches gives you the benefits of database mirroring along with the support for multiple destinations provided by log shipping.

  • 配布先データベースでのログ復元を (論理エラーに対する保護などの目的で) 遅延させる必要があるか。その場合は、ログ配布を単独またはデータベース ミラーリングと合わせて使用します。If you need to delay restoring log on the destination database (typically, to protect against logical errors), use log shipping, alone or with database mirroring.

ここでは、ログ配布とデータベース ミラーリングを組み合わせる場合の考慮事項について説明します。This topic discusses considerations for combining log shipping and database mirroring.

注意

それぞれのテクノロジの概要については、「データベース ミラーリング (SQL Server)」と「ログ配布について (SQL Server)」を参照してください。For introductions to these technologies, see Database Mirroring (SQL Server) and About Log Shipping (SQL Server).

ログ配布とデータベース ミラーリングの組み合わせCombining Log Shipping and Database Mirroring

ログ配布のバックアップ共有が損なわれていない場合、ミラーリング セッションのプリンシパル データベースをログ配布構成のプライマリ データベースとして使用することも (またはその逆を行うことも) できます。The principal database in a mirroring session can also act as the primary database in a log shipping configuration, or vice versa, as the log shipping backup share is intact. データベース ミラーリングのセッションは、同期 (トランザクションの安全性の設定が FULL) と非同期 (トランザクションの安全性の設定が OFF) のいずれの操作モードでも実行できます。The database mirroring session run in any operating mode, whether synchronous (with transaction safety set to FULL) or asynchronous (with transaction safety set to OFF).

注意

データベース ミラーリングを使用するには、常に完全復旧モデルが必要になります。To use database mirroring on a database, the full recovery model is always required.

通常は、ログ配布とデータベース ミラーリングを組み合わせる場合、ログ配布の前にミラーリング セッションを確立します。ただしこの順序は必須ではありません。Typically, when combining log shipping and database mirroring, the mirroring session is established before log shipping, although this is not required. 次に、現在のプリンシパル データベースを、ログ配布のプライマリとして、1 つ以上のリモート セカンダリ データベースと共に構成します ( プリンシパル/プライマリ データベース)。Then the current principal database is configured as the log shipping primary (the principal/primary database), along with one or more remote secondary databases. また、ミラー データベースもログ配布のプライマリ ( ミラー/プライマリ データベース) として構成する必要があります。Also, the mirror database must be configured as a log shipping primary (the mirror/primary database). ログ配布のセカンダリ データベースは、プリンシパル/プライマリ サーバーおよびミラー/プライマリ サーバーのいずれとも異なるサーバー インスタンスに配置するようにします。The log shipping secondary databases should be on different server instances than either the principal/primary server or mirror/primary server.

注意

ログ配布で使用するサーバーすべてについて、大文字と小文字の区別に関する設定を揃えてください。The case sensitivity settings of the servers involved in log shipping should match.

ログ配布セッションでは、プライマリ データベースのバックアップ ジョブによりログ バックアップがバックアップ フォルダーに作成されます。During a log shipping session, backup jobs on the primary database create log backups in a backup folder. このフォルダーから、セカンダリ サーバーのコピー ジョブによりバックアップのコピーが行われます。From there, the backups are copied by the copy jobs of the secondary servers. バックアップ ジョブおよびコピー ジョブが成功するには、ジョブからログ配布のバックアップ フォルダーに対するアクセスが必要です。For the backup jobs and copy jobs to succeed, they must have access to the log shipping backup folder. プライマリ サーバーの可用性を最大にするため、バックアップ フォルダーは独立したホスト コンピューターの共有のバックアップ場所に作成することをお勧めします。To maximize availability of the primary server, we recommend that you establish the backup folder in a shared backup location on a separate host computer. この共有のバックアップ場所 ( バックアップ共有といいます) は、ミラー/プライマリ サーバーを含めたすべてのログ配布サーバーからアクセスできるようにします。Ensure that all the log shipping servers, including the mirror/primary server, can access the shared backup location (known as a backup share).

データベース ミラーリングのフェールオーバー後もログ配布を続行するには、プリンシパル データベースをプライマリにしたときと同一の構成で、ミラー サーバーをプライマリ サーバーとして構成する必要があります。To allow log shipping to continue after database mirroring fails over, you must also configure the mirror server as a primary server, using the same configuration you use for the primary on the principal database. ミラー データベースの復元中は、バックアップ ジョブを行ってミラー データベースにログをバックアップすることができません。The mirror database is in the restoring state, which prevents the backup jobs from backing up the log on the mirror database. したがって、セカンダリ サーバーへのログ バックアップのコピーを進行中のプリンシパル/プライマリ データベースがミラー/プライマリ データベースによって妨害されることはありません。This ensures that the mirror/primary database does not interfere with the principal/primary database whose log backups are currently being copied by secondary servers. 誤った警告が報告されるのを防ぐため、ミラー/プライマリ データベースでのバックアップ ジョブの実行後、log_shipping_monitor_history_detail テーブルにメッセージ ログが書き込まれ、成功のステータスがエージェント ジョブから返されます。To prevent spurious alerts, after the backup job executes on the mirror/primary database, the backup job logs a message to the log_shipping_monitor_history_detail table, and the agent job returns a status of success.

ログ配布セッション中はミラー/プライマリ データベースがアクティブでなくなります。The mirror/primary database is inactive in the log shipping session. ただし、ミラーリングがフェールオーバーした場合は以前のミラー データベースがプリンシパル データベースとしてオンラインになります。However, if mirroring fails over, the former mirror database comes online as the principal database. 同時に、そのデータベースはログ配布プライマリ データベースとしてアクティブになります。At that point, that database also becomes active as the log shipping primary database. そのデータベースにログを配布できなかったログ配布のバックアップ ジョブにより、ログ配布が開始されます。The log shipping backup jobs that were previously unable to ship log on that database, begin shipping log. 逆に、フェールオーバーが発生すると、以前のプリンシパル/プライマリ データベースが新しいミラー/プライマリ データベースになって復元状態になります。そのデータベースに対するバックアップ ジョブはログのバックアップを停止します。Conversely, a failover causes the former principal/primary database to become the new mirror/primary database and enter the restoring state, and backup jobs on that database cease to backup log.

注意

自動フェールオーバーの場合は、以前のプリンシパル/プライマリ データベースがミラーリング セッションに再度参加したときに、ミラーの役割への交代が発生します。In the event of an automatic failover, the switch to the mirror role occurs when the former principal/primary database rejoins the mirroring session.

自動フェールオーバーを伴う高い安全性モードを実行するには、 ミラーリング監視サーバー インスタンスと呼ばれる追加のサーバー インスタンスを使用してミラーリング セッションを構成します。To run in high-safety mode with automatic failover the mirroring session is configured with an additional server instance known as the witness. データベースを同期した後で何かの理由によりプリンシパル データベースに障害が発生した場合、およびミラー サーバーとミラーリング監視サーバーが相互通信を続行できる場合は、自動フェールオーバーが発生します。If the principal database is lost for any reason after the database is synchronized and if the mirror server and witness can still communicate with each other, automatic failover occurs. 自動フェールオーバーが発生すると、プリンシパルの役割がミラー サーバーに引き継がれ、ミラーのデータベースがプリンシパル データベースとしてオンラインになります。An automatic failover causes mirror server to assume the principal role and bring its database online as the principal database. 新しいプリンシパル/プライマリ サーバーからログ配布のバックアップ場所にアクセスできる場合、バックアップ ジョブはその場所へのログ バックアップの配布を開始します。If the log shipping backup location is accessible to the new principal/primary server, its backup jobs begin to ship log backups to that location. データベース ミラーリングを同期モードにすると、ログ チェーンがミラーリングのフェールオーバーの影響を受けず、有効なログのみが復元されます。The database mirroring synchronous mode guarantees that the log chain is unaffected by a mirroring failover and that only valid log is restored. セカンダリ サーバーは、別のサーバー インスタンスがプライマリ サーバーになったことを認識することなくログ バックアップのコピーを継続します。The secondary servers continue to copy log backups without knowing that a different server instance has become the primary server.

ローカル ログ配布モニターを使用している場合、このシナリオのために特別に考慮が必要な事項はありません。When using a local log shipping monitor, no special considerations are necessary to accommodate this scenario. このシナリオでリモート監視インスタンスを使用する際の詳細については、このトピックの「リモート監視インスタンスでのデータベース ミラーリングの影響」を参照してください。For information about using a remote monitoring instance with this scenario, see, "The Impact of Database Mirroring on a Remote Monitoring Instance," later in this topic.

プリンシパルからミラー データベースへのフェールオーバーFailing over from the Principal to the Mirror database

次の図に、自動フェールオーバーを伴う高い安全性モードでミラーリングを実行する際の、ログ配布とデータベース ミラーリングの連係動作を示します。The following figure shows how log shipping and database mirroring work together when mirroring is running in high-safety mode with automatic failover. Server_A はミラーリング用のプリンシパル サーバーであり、ログ配布用のプライマリ サーバーでもあります。Initially, Server_A is both the principal server for mirroring and the primary server for log shipping. Server_B はミラー サーバーであり、プライマリ サーバーとして構成されています。現在はアクティブになっていません。Server_B is the mirror server and is also configured as a primary server, which is currently inactive. Server_C および Server_D はログ配布のセカンダリ サーバーです。Server_C and Server_D are log shipping secondary servers. ログ配布セッションの可用性を最大にするため、バックアップの場所は独立したホスト コンピューターの共有ディレクトリに作成します。To maximize availability of the log shipping session, the backup location is on a share directory on a separate host computer.

ログ配布とデータベース ミラーリングLog shipping and database mirroring

ミラーリング フェールオーバー後も、セカンダリ サーバーで定義されているプライマリ サーバーの名前は変わりません。After a mirroring failover, the primary server name defined on the secondary server is unchanged. .

リモート監視インスタンスでのデータベース ミラーリングの影響The Impact of Database Mirroring on a Remote Monitoring Instance

ログ配布をリモート監視インスタンスと共に使用しているときは、ログ配布セッションとデータベース ミラーリングを組み合わせることでモニター テーブルの情報に影響が及びます。When log shipping uses with a remote monitoring instance, combining the log shipping session and database mirroring affects the information in the monitor tables. プライマリに関する情報は、プリンシパル/プライマリで構成されたモニターと各セカンダリで構成されたモニターの組み合わせです。The information about the primary is a combination of the one configured at the principal/primary and the monitor configured on each secondary.

できる限り監視をシームレスにするため、リモート モニターを使用する場合は、セカンダリでプライマリを構成するときに元のプライマリの名前を指定することをお勧めします。To keep monitoring as seamless as possible, when you use a remote monitor, we recommend that you specify the original primary name when configuring the primary at the secondary. こうすることで、Microsoft SQL ServerSQL Server エージェントからのログ配布構成の変更も容易になります。This approach also facilitates changing the log shipping configuration from Microsoft SQL ServerSQL Server Agent. 監視の詳細については、「ログ配布の監視 (Transact-SQL)」を参照してください。For more information about monitoring, see Monitor Log Shipping (Transact-SQL).

ミラーリングとログ配布を合わせた設定Setting Up Mirroring and Log Shipping Together

データベース ミラーリングとログ配布を合わせて設定するには、次の手順を実行する必要があります。To set up database mirroring and log shipping together, the following steps are required:

  1. NORECOVERY が設定されたプリンシパル/プライマリ データベースのバックアップを別のサーバー インスタンスに復元します。このバックアップは、後でデータベース ミラーリングのプリンシパル/プライマリ データベースに対するミラー データベースとして使用します。Restore backups of the principal/primary database with NORECOVERY onto another server instance to be later used as database mirroring mirror database for the principal/primary database. 詳細については、「ミラーリングのためのミラー データベースの準備 (SQL Server)」を参照してください。For more information, see Prepare a Mirror Database for Mirroring (SQL Server).

  2. データベース ミラーリングをセットアップする。Set up database mirroring. 詳細については、「Windows 認証を使用してデータベース ミラーリング セッションを確立する (SQL Server Management Studio)」または「データベース ミラーリングの設定 (SQL Server)」を参照してください。For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio) or Setting Up Database Mirroring (SQL Server).

  3. プリンシパル/プライマリ データベースのバックアップを別のサーバー インスタンスに復元します。このバックアップは、後でログ配布のプライマリ データベースに対するセカンダリ データベースとして使用します。Restore backups of the principal/primary database to other server instances to be later used as log shipping secondary databases for the primary database.

  4. 1 つ以上のセカンダリ データベースのプライマリ データベースであるプリンシパル データベースにログ配布を設定します。Set up log shipping on the principal database as the primary database for one or more secondary databases.

    バックアップ ディレクトリ (バックアップ共有) として使用する共有を 1 つ設定します。You should set up a single share as the backup directory (a backup share). これにより、プリンシパル サーバーとミラー サーバーの間で役割を交代した後も、引き続き前と同一のディレクトリにバックアップ ジョブによる書き込みが行われます。This ensures that after role switching between the principal and mirror servers, backup jobs continue to write to the same directory as before. ベスト プラクティスは、この共有の場所をミラーリングとログ配布に関与しているデータベースをホストするサーバーとは異なる物理サーバー上にすることです。A best practice is to ensure that this share is located on a different physical server from the servers hosting the databases involved in mirroring and log shipping.

    詳細については、「 ログ配布の構成 (SQL Server)で導入されました。For more information, see Configure Log Shipping (SQL Server).

  5. プリンシパルからミラーへ手動でフェールオーバーします。Manually failover from the principal to the mirror.

    手動フェールオーバーを実行するには、次の手順を実行します。To perform a manual failover:

  6. プライマリ データベースである新しいプリンシパル (以前のミラー) にログ配布を設定します。Set up log shipping on the new principal (previously mirror) as the primary database.

    重要

    セカンダリからは設定を実行しないでください。Do not perform any setup from a secondary.

    手順 4. で使用したものと同一のバックアップ共有を使用する必要があります。You must use the same backup share that you used in step 4.

    [トランザクション ログの配布] SQL Server Management StudioSQL Server Management Studio インターフェイスで、ログ配布構成ごとにサポートされるプライマリ データベースは 1 つのみです。The Transaction Log Shipping interface in SQL Server Management StudioSQL Server Management Studio supports only one primary database per log shipping configuration. このため、新しいプリンシパルをプライマリとして設定するにはストアド プロシージャを使用する必要があります。Therefore, you must use stored procedures to set up the new principal as primary.

  7. 元のプリンシパルにフェールバックするには、別の手動フェールオーバーを実行します。Perform another manual failover to fail back to the original principal.