ミラーリングのためのミラー データベースの準備 (SQL Server)Prepare a Mirror Database for Mirroring (SQL Server)

データベース ミラーリング セッションを開始する前に、データベース所有者またはシステム管理者は、ミラー データベースを作成し、ミラーリング用に準備しておく必要があります。Before a database mirroring session can start, the database owner or system administrator must make sure that the mirror database has been created and is ready for mirroring. 新しいミラー データベースを作成するには、少なくとも、プリンシパル データベースの完全バックアップとそれ以降のログ バックアップを作成し、その両方をミラー サーバーのインスタンスに (WITH NORECOVERY を使用して) 復元する必要があります。Creating a new mirror database minimally requires taking a full backup of the principal database and a subsequent log backup and restoring them both onto the mirror server instance, using WITH NORECOVERY.

このトピックでは、 SQL Server 2014SQL Server 2014 または SQL Server Management StudioSQL Server Management Studio を使用して、 Transact-SQLTransact-SQLでミラー データベースを準備する方法について説明します。This topic describes how to prepare a mirror database in SQL Server 2014SQL Server 2014 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

はじめにBefore You Begin

要件Requirements

  • プリンシパル サーバー インスタンスとミラー サーバー インスタンスは、同じバージョンの SQL ServerSQL Serverで実行されている必要があります。The principal and mirror server instances must be running on the same version of SQL ServerSQL Server. ミラー サーバーで SQL Server の新しいバージョンを実行することはできますが、この構成は慎重に計画されたアップグレード プロセスにおいてのみ推奨されます。While it is possible for the mirror server to have a higher version of SQL Server, this configuration is only recommended during a carefully planned upgrade process. そのような構成では、自動フェールオーバーが発生したときに SQL Server の古いバージョンにデータを移動できず、データの移動が自動的に保留される可能性があります。In such a configuration, you run the risk of an automatic failover, in which data movement is automatically suspended because data cannot move to a lower version of SQL Server. 詳しくは、「 Minimize Downtime for Mirrored Databases When Upgrading Server Instances」をご覧ください。For more information, see Minimize Downtime for Mirrored Databases When Upgrading Server Instances.

  • プリンシパル サーバー インスタンスとミラー サーバー インスタンスは、同じエディションの SQL ServerSQL Serverで実行されている必要があります。The principal and mirror server instances must be running on the same edition of SQL ServerSQL Server. SQL Server 2014SQL Server 2014 でのデータベース ミラーリングのサポートについては、「SQL Server 2014 の各エディションでサポートされる機能」を参照してください。For information about support for database mirroring in SQL Server 2014SQL Server 2014, see Features Supported by the Editions of SQL Server 2014.

  • このデータベースは、完全復旧モデルを使用する必要があります。The database must use the full recovery model.

    詳細については、「データベースの復旧モデルの表示または変更 (SQL Server)」または「sys.databases (Transact-SQL)」と「ALTER DATABASE (Transact-SQL)」を参照してください。For more information, see View or Change the Recovery Model of a Database (SQL Server) or sys.databases (Transact-SQL) and ALTER DATABASE (Transact-SQL).

  • ミラー データベースの名前は、プリンシパル データベースと同じ名前にする必要があります。The name of the mirror database must be the same as the name of the principal database.

  • ミラーリングが機能するには、ミラー データベースは RESTORING 状態である必要があります。The mirror database must be in the RESTORING state for mirroring to work. ミラー データベースを準備する際には、すべての復元操作で RESTORE WITH NORECOVERY を使用する必要があります。When preparing a mirror database, you must use RESTORE WITH NORECOVERY for every restore operation. 少なくとも、WITH NORECOVERY を指定して、プリンシパル データベースの完全バックアップと、以降のすべてのログ バックアップを復元する必要があります。Minimally, you will need to restore WITH NORECOVERY a full backup of the principal database, followed by all subsequent log backups.

  • ミラー データベースを作成するシステムのディスク ドライブに、ミラー データベースを保持するのに十分な空き領域を確保する必要があります。The system where you plan to create the mirror database must possesses a disk drive with sufficient space to hold the mirror database.

制限事項と制約事項Limitations and Restrictions

推奨事項Recommendations

  • プリンシパル データベースの最新の完全データベース バックアップまたは差分データベース バックアップを使用します。Use a very recent full database backup or a recent differential database backup of the principal database.

  • ログ バックアップ ジョブをプリンシパル データベースで非常に頻繁に実行するようにスケジュールすると、ミラーリングが開始されるまでバックアップ ジョブを無効にする必要が生じる場合があります。If a log backup job is scheduled to run very frequently on the principal database, you might have to disable the backup job until mirroring has started.

  • 可能であれば、ミラー データベースのパス (ドライブ文字を含む) を、プリンシパル データベースと同一のパスにします。If possible, the path (including the drive letter) of the mirror database should be identical to the path of the principal database.

    ファイルのパスが異なる場合、たとえば、プリンシパル データベースが "F:" ドライブに存在する一方で、ミラー システムに "F:" ドライブがない場合には、RESTORE ステートメントに MOVE オプションを含める必要があります。If the file paths must differ, for example, if the principal database is on drive 'F:' but the mirror system lacks an F: drive, you must include the MOVE option in the RESTORE STATEMENT.

    重要

    ミラーリング セッション中に、セッションに影響を与えずにファイルを追加するには、追加するファイルのパスが両方のサーバーに存在する必要があります。Adding a file during a mirroring session without impacting the session requires that the path of the file exists on both servers. したがって、ミラー データベースの作成時にデータベース ファイルを移動し、その後でミラー データベースにファイルを追加しようとした場合、ファイルの追加操作が失敗し、ミラーリングが中断されることがあります。Therefore, if you move the database files when creating the mirror database, a later add-file operation might fail on the mirror database and cause mirroring to be suspended. ファイル作成操作の失敗に対処する方法については、「データベース ミラーリング構成のトラブルシューティング (SQL Server)」を参照してください。For information about dealing with a failed create-file operation, see Troubleshoot Database Mirroring Configuration (SQL Server).

  • プリンシパル データベースにフルテキスト カタログが含まれている場合は、「データベース ミラーリングとフルテキスト カタログ (SQL Server)」を参照することをお勧めします。If the principal database has any full-text catalogs, we recommend that you see Database Mirroring and Full-Text Catalogs (SQL Server).

  • 運用データベースを使用する場合は、必ず別のデバイスにバックアップしてください。For a production database, always back up to a separate device.

セキュリティSecurity

データベースがバックアップされている場合、TRUSTWORTHY は OFF に設定されます。TRUSTWORTHY is set to OFF when a database is backed up. したがって、新しいミラー データベースでは TRUSTWORTHY は常に OFF です。Therefore, TRUSTWORTHY is always OFF on a new mirror database. フェールオーバー後にデータベースを信頼可能にする必要がある場合は、追加の設定作業が必要です。If the database needs to be trustworthy after a failover, additional setup steps are necessary. 詳細については、「 TRUSTWORTHY プロパティを使用するようにミラー データベースを設定する方法 (Transact-SQL)でミラー データベースを準備する方法について説明します。For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

データベース マスター キーの自動暗号化解除を有効にする方法については、「 暗号化されたミラー データベースの設定」を参照してください。For information about enabling automatic decryption of the database master key of a mirror database, see Set Up an Encrypted Mirror Database.

PermissionsPermissions

データベース所有者またはシステム管理者。Database owner or system administrator.

ミラーリングを再開するために既存のミラーデータベースを準備するにはTo Prepare an Existing Mirror Database to Restart Mirroring

ミラーリングを削除してもミラー データベースが RECOVERING 状態のままである場合、ミラーリングを再開することができます。If mirroring has been removed and the mirror database is still in the RECOVERING state, you can restart mirroring.

  1. プリンシパル データベースで 1 つ以上のログ バックアップを作成します。Take at least one log backup on the principal database. 詳細については、「トランザクション ログのバックアップ (SQL Server)」を参照してください。For more information, see Back Up a Transaction Log (SQL Server).

  2. ミラー データベースで、RESTORE WITH NORECOVERY を使用して、ミラーリングの削除後にプリンシパル データベースで作成されたすべてのログ バックアップを復元します。On the mirror database, use RESTORE WITH NORECOVERY to restore all log backups taken on the principal database since mirroring was removed. 詳細については、「 トランザクション ログ バックアップの復元 (SQL Server)でミラー データベースを準備する方法について説明します。For more information, see Restore a Transaction Log Backup (SQL Server).

新しいミラーデータベースを準備するにはTo Prepare a New Mirror Database

ミラー データベースを準備するにはTo prepare a mirror database

注意

この手順の Transact-SQLTransact-SQL の例については、このセクションの後半の「 例 (Transact-SQL)」を参照してください。For a Transact-SQLTransact-SQL example of this procedure, see Example (Transact-SQL), later in this section.

  1. プリンシパル サーバー インスタンスに接続します。Connect to principal server instance.

  2. プリンシパル データベースの完全バックアップまたは差分バックアップのいずれかを作成します。Create either a full database backup or a differential database backup of the principal database.

  3. 通常、プリンシパル データベースで 1 つ以上のログ バックアップを作成する必要があります。Typically, you need to take at least one log backup on the principal database. ただし、データベースを作成したばかりでログ バックアップがまだ作成されていない場合や、復旧モデルを SIMPLE から FULL に変更したばかりの場合など、ログ バックアップが不要な場合もあります。However, a log backup might be unnecessary, if the database has just been created and no log backup has been taken yet, or if the recovery model has just been changed from SIMPLE to FULL.

  4. 両方のシステムからアクセスできるネットワーク ドライブにバックアップがある場合を除いて、データベース バックアップとログ バックアップは、ミラー サーバー インスタンスをホストするシステムにコピーします。Unless the backups are on a network drive that is accessible from both systems, copy the database and log backups to the system that will host the mirror server instance.

  5. ミラー サーバー インスタンスに接続します。Connect to mirror server instance.

  6. RESTORE WITH NORECOVERY を使用する場合、ミラー サーバー インスタンスにデータベースの完全バックアップと、必要に応じて、データベースの最新の差分バックアップを復元することで、ミラー データベースを作成します。Using RESTORE WITH NORECOVERY, create the mirror database by restoring the full database backup and, optionally, the most recent differential database backup, onto the mirror server instance.

    注意

    データベースのファイル グループをファイル グループごとに復元する場合は、必ずデータベース全体を復元してください。If you restore the database filegroup by filegroup, be sure to restore the whole database.

  7. RESTORE WITH NORECOVERY を使用して、未処理のログ バックアップをミラー データベースに適用します。Using RESTORE WITH NORECOVERY, apply any outstanding log backup or backups to the mirror database.

例 (Transact-SQL)Example (Transact-SQL)

データベース ミラーリング セッションを開始する前に、ミラー データベースを作成する必要があります。Before you can start a database mirroring session, you must create the mirror database. ミラー データベースは、ミラーリング セッションを開始する直前に作成してください。You should do this just before starting the mirroring session.

この例では、既定で単純復旧モデルを使用する AdventureWorks2012AdventureWorks2012 サンプル データベースを使用します。This example uses the AdventureWorks2012AdventureWorks2012 sample database, which uses the simple recovery model by default.

  1. AdventureWorks2012AdventureWorks2012 データベースでデータベース ミラーリングを使用するには、完全復旧モデルが使用されるように変更します。To use database mirroring with the AdventureWorks2012AdventureWorks2012 database, modify it to use the full recovery model:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
    SET RECOVERY FULL;  
    GO  
    
  2. データベースの復旧モデルを SIMPLE から FULL へ変更した後は、完全バックアップを作成します。作成した完全バックアップはミラー データベースの作成に使用できます。After modifying the recovery model of the database from SIMPLE to FULL, create a full backup, which can be used to create the mirror database. 復旧モデルを変更した直後なので、新しいメディア セットを作成するには WITH FORMAT オプションを指定します。Because the recovery model has just been changed, the WITH FORMAT option is specified to create a new media set. これにより、完全復旧モデルのバックアップを、単純復旧モデルで作成された以前のバックアップと分離できます。This is useful to separate the backups under the full recovery model from any previous backups made under the simple recovery model. この例では、バックアップ ファイル (C:\AdventureWorks.bak) をデータベースと同じドライブに作成します。For the purpose of this example, the backup file (C:\AdventureWorks.bak) is created on the same drive as the database.

    注意

    運用データベースを使用する場合は、必ず別のデバイスにバックアップしてください。For a production database, you should always back up to a separate device.

    プリンシパル サーバー インスタンス ( PARTNERHOST1) で、次のようにプリンシパル データベースの完全バックアップを作成します。On the principal server instance (on PARTNERHOST1), create a full backup of the principal database as follows:

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
        WITH FORMAT  
    GO  
    
  3. 完全バックアップをミラー サーバーにコピーします。Copy the full backup to the mirror server.

  4. RESTORE WITH NORECOVERY を使用して、ミラー サーバー インスタンスに完全バックアップを復元します。Using RESTORE WITH NORECOVERY, restore the full backup onto the mirror server instance. 復元コマンドは、プリンシパル データベースとミラー データベースのパスが同じかどうかによって変わります。The restore command depends on whether the paths of principal and mirror databases are identical.

    • パスが同じ場合は、次のようにします。If the paths are identical:

      ミラー サーバー インスタンス ( PARTNERHOST5) で、次のように完全バックアップを復元します。On the mirror server instance (on PARTNERHOST5), restore the full backup as follows:

      RESTORE DATABASE AdventureWorks   
          FROM DISK = 'C:\AdventureWorks.bak'   
          WITH NORECOVERY  
      GO  
      
    • パスが異なる場合は、次のようにします。If the paths differ:

      ミラー データベースのパスがプリンシパル データベースのパスと異なる (たとえば、ドライブ文字が異なる) 場合、ミラー データベースを作成するには、復元操作に MOVE 句が必要です。If the path of the mirror database differs from the path of the principal database (for instance, their drive letters differ), creating the mirror database requires that the restore operation include a MOVE clause.

      重要

      プリンシパル データベースとミラー データベースのパス名が異なる場合は、ファイルを追加することはできません。If the path names of the principal and mirror databases differ, you cannot add a file. これは、ミラーリング サーバー インスタンスでファイル追加操作のログが受信されると、プリンシパル データベースで使用される場所に新しいファイルの追加が試行されるためです。This is because on receiving the log for the add file operation, the mirror server instance attempts to place the new file in the location used by the principal database.

      たとえば次のコマンドは、C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ にあるプリンシパル データベースのバックアップを、D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\という別の場所 (ミラー データベースが配置される場所) に復元します。For example, the following command restores a backup of a principal database residing in C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ to a different location, D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, where the mirror database is to reside.

      RESTORE DATABASE AdventureWorks  
         FROM DISK='C:\AdventureWorks.bak'  
         WITH NORECOVERY,   
            MOVE 'AdventureWorks_Data' TO   
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Data.mdf',   
            MOVE 'AdventureWorks_Log' TO  
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Log.ldf';  
      GO  
      
  5. 完全バックアップを作成した後、プリンシパル データベースでログ バックアップを作成する必要があります。After you create the full backup, you must create a log backup on the principal database. たとえば、次の Transact-SQLTransact-SQL ステートメントは、前回の完全バックアップで使用したものと同じファイルにログをバックアップします。For example, the following Transact-SQLTransact-SQL statement backs up the log to the same file used by the preceding full backup:

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. ミラーリングを開始する前に、必要なログ バックアップ (および、それ以降のログ バックアップ) を適用する必要があります。Before you can start mirroring, you must apply the required log backup (and any subsequent log backups).

    たとえば、次の Transact-SQLTransact-SQL ステートメントは、最初のログを C:\AdventureWorks.bakから復元します。For example, the following Transact-SQLTransact-SQL statement restores the first log from C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. ミラーリングを開始する前に追加のログ バックアップが作成された場合は、それらのログ バックアップもすべて復元する必要があります。すべてのログ バックアップを順番に、WITH NORECOVERY を使用して、ミラー サーバーに復元します。If any additional log backups occur before you start mirroring, you must also restore all of those log backups, in sequence, to the mirror server using WITH NORECOVERY.

    たとえば、次の Transact-SQLTransact-SQL ステートメントは、2 つの追加のログを C:\AdventureWorks.bakから復元します。For example, the following Transact-SQLTransact-SQL statement restores two additional logs from C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=2, NORECOVERY  
    GO  
    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=3, NORECOVERY  
    GO  
    

データベース ミラーリングの設定、セキュリティの設定、ミラー データベースの準備、パートナーの設定、およびミラーリング監視サーバーの追加をすべて含む例については、「 データベース ミラーリングの設定 (SQL Server)でミラー データベースを準備する方法について説明します。For a complete example of setting up database mirroring, showing security setup, preparing the mirror database, setting up the partners, and adding a witness, see Setting Up Database Mirroring (SQL Server).

補足情報: ミラー データベースを準備した後Follow Up: After Preparing a Mirror Database

  1. 最新の RESTORE LOG 操作の後、ログ バックアップを採取している場合は、ミラーリングを開始する前に、採取したすべてのログ バックアップを手動で適用する必要があります (WITH NORECOVERY を使用します。If any additional log backups have been taken since your most recent RESTORE LOG operation, you must manually apply every additional log backup, using RESTORE WITH NORECOVERY.

  2. ミラーリング セッションを再開します。Start the mirroring session. 詳細については、「 Windows 認証を使用してデータベース ミラーリング セッションを確立する (SQL Server Management Studio) を使用して、 Windows 認証を使用してデータベース ミラーリング セッションを確立する方法 (Transact-SQL)でミラー データベースを準備する方法について説明します。For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio) or Establish a Database Mirroring Session Using Windows Authentication (Transact-SQL).

  3. プリンシパル データベースのバックアップ ジョブを無効にする場合は、ジョブを再度有効にします。If you disabled the backup job on the principal database, reenable the job.

  4. フェールオーバー後にデータベースを信頼可能にする必要がある場合は、ミラーリングを開始した後で追加の設定が必要です。If the database needs to be trustworthy after a failover, extra setup steps are necessary after mirroring begins. 詳細については、「 TRUSTWORTHY プロパティを使用するようにミラー データベースを設定する方法 (Transact-SQL)でミラー データベースを準備する方法について説明します。For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

参照See Also

データベースミラーリング (SQL Server) Database Mirroring (SQL Server)
データベースミラーリングと AlwaysOn 可用性グループ (SQL Server のトランスポートセキュリティ) Transport Security for Database Mirroring and AlwaysOn Availability Groups (SQL Server)
データベースミラーリングの設定 (SQL Server) Setting Up Database Mirroring (SQL Server)
フルテキスト カタログとフルテキスト インデックスのバックアップおよび復元 Back Up and Restore Full-Text Catalogs and Indexes
データベースミラーリングとフルテキストカタログの (SQL Server) Database Mirroring and Full-Text Catalogs (SQL Server)
データベースミラーリングとレプリケーションの (SQL Server) Database Mirroring and Replication (SQL Server)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
RESTORE の引数 (Transact-SQL)RESTORE Arguments (Transact-SQL)