Microsoft SQL Server データベースまたは暗号化された SQL データをマウントする

このセクションでは、キャプチャした Microsoft SQL Server をマウントする方法について説明します。

  • インスタンス
  • AlwaysOn 可用性グループのプライマリ データベース
  • 整合性グループ
  • 整合性グループの個々のメンバー
  • システムデータベース
  • ユーザーデータベース

キャプチャした Microsoft SQL Server データをマウントする

標準マウントを使用すると、Microsoft SQL Server データを別のサーバーにマウントして、別の Microsoft SQL Server で取得して使用できます。キャプチャした Microsoft SQL データのみをマウントする手順は次のとおりです。

  1. [App Manager] を開き、[アプリケーション リスト] に移動します。

  2. SQL Server サーバー インスタンス、ユーザー データベース、システム データベース、クラスタ、または可用性グループを右クリックし、[アクセス] を選択します。フィルタを使用して、必要なデータベースを見つけます。

  3. ランウェイ型の図で、マウントするイメージを選択し、[マウント] を選択します。

  4. 必要に応じて、このマウントされたデータを明確に識別できるラベルを入力します。

  5. [Mount Image] ダイアログの [Application Options] セクションで、[Create New Virtual Application] を選択しないでください。Microsoft SQL データを仮想データベースとしてマウントするには、SQL Server データベースを新しい仮想データベースとしてマウントするをご覧ください。

  6. 必要に応じて、[Mapping Options] と [Item Selection] のフィールドに入力します。

    表示されるオプションは、選択したソースによって異なります。たとえば、VMware VM 上のデータベースには、[Map to all ESX hosts] オプションがあります。クラスタ化されたデータベースには、[Map to Cluster Nodes] オプションがあります。

  7. [送信] をクリックします。マウントジョブが送信されます。

  8. マウント オペレーションが成功したら、データベース サーバーにログオンし、マウントされたイメージが [アクティブ マウント] で使用可能であることを確認します。

SQL Server データベースを新しい仮想データベースとしてマウントする

仮想アプリケーション マウント オペレーションは、キャプチャしたデータベースを仮想アプリケーションとしてマウントします。これにより、データを実際に移動したり、データベースの新しいインスタンスを手動で構成したりすることなく、データベースをすばやくオンラインにできます。仮想アプリケーション マウントは、データベース、サーバー、ストレージの管理者による手動の介入なしで本番環境データベースのコピーを作成して管理するという課題に対応します。

このセクションでは、キャプチャした Microsoft SQL Server データベースを仮想アプリケーションとしてマウントする方法について説明します。Microsoft SQL Server では、次のものをマウントできます。

  • インスタンス
  • システムデータベース
  • ユーザーデータベース
  • 整合性グループ
  • 整合性グループの個々のメンバー
  • AlwaysOn 可用性グループのデータベース

イメージをマウントする前に、イメージがマウントされるホストで iSCSI が構成されているか、VMware の NFS データストアが構成されていることを確認します。

SQL Server インスタンスにデータベースを追加せずに Microsoft SQL データファイルのみをマウントする場合は、キャプチャした Microsoft SQL データをマウントするをご覧ください。

破損または削除されたデータベースの場合、SQL Server データベースを元のサーバーに仮想アプリケーションとしてマウントすることは、データベースの復元を実行する効率的な代替手段です。

キャプチャした Microsoft SQL Server データベースを仮想アプリケーションとしてマウントするには、次の手順を実行します。

  1. 管理コンソールを開き、[App Manager] > [アプリケーション] リストに移動します。

  2. SQL Server インスタンス、ユーザー データベース、システム データベース、クラスタ、または可用性グループを右クリックし、[アクセス] を選択します。フィルタを使用して、必要なデータベースを見つけます。

  3. イメージのランウェイで、マウントするイメージを選択します。右側で、[マウント] を選択します。左上のカレンダー ウィジェットを使用して、バックアップ イメージの範囲を絞り込むことができます。

  4. [アプリケーション オプション] セクションで、このマウントされたデータを明確に識別できるラベルを入力します(省略可)。

  5. [Create New Virtual Application] を選択します。

  6. データベースをログとともにキャプチャした場合、[App Options] ダイアログ ボックスには、ログがキャプチャされた時期と頻度に基づいてログを特定の時点までロールするオプションが表示されます。

  7. [SQL Server Instance Name] プルダウン リストから、新しいデータベースを追加する SQL Server インスタンスを選択します。必要なインスタンス名がプルダウンにない場合は、表示された欄に名前を手動で入力できます。

  8. 単一のデータベースをマウントする場合は、[SQL Server Database Name] フィールドに新しい仮想データベースの名前を入力します。

    複数のデータベースをマウントする場合は、仮想データベースを含む新しい整合性グループの名前を [整合性グループの名前] フィールドに入力します。

  9. 仮想アプリケーション マウントは新しい仮想データベースです。新しい仮想データベースを保護するには、[Manage New Application] を選択し、使用するテンプレートとプロファイルを選択します。

    仮想アプリケーション マウントは新しいデータベースです。データベースのスナップショットは増分です。

    仮想アプリケーションが、アプリケーションの [アプリケーション マネージャー] リストに表示されます。

    [Manage New Application] を選択しなかった場合は、保護されていないアプリケーションとして [アプリケーション マネージャー] に表示されます。他のアプリケーションと同様に保護できます。

    SQL Server インスタンスにマウントされた仮想 SQL Server データベースは、インスタンスのユーザー データベースやシステム データベースとは別に保護されます。

  10. Recover Database After Restore: データベースをオンラインにしてトランザクションを処理できる状態にする場合は、このチェックボックスをオン(デフォルト)のままにしておきます。このオプションをオフにすると、データベースが復元中の状態のままになるため、追加のトランザクション ログのバックアップを手動で適用して、データベースを特定の時点にロール フォワードできます。

  11. Recover User Logins: ポリシー オプションの [Backup SQL Server Logins] が有効になっている場合に、このオプションを選択すると、これらのログインがターゲット SQL Server インスタンスに復元されます。ドメイン アカウントの場合、ユーザー アカウントは、ターゲット インスタンスが同じドメイン内のサーバー上にある場合、またはソース SQL Server との信頼関係が確立されたドメイン内にある場合にのみ復元されます。SQL ローカル アカウントは常に復元されます。元のソース データベースにアクセスできるすべてのユーザーが新しい仮想データベースにアクセスできるようにする場合は、このオプションを使用します。

  12. [ユーザー名とパスワード] フィールドに、必要に応じてユーザー名とパスワードを入力します。バックアップと DR エージェントのアカウントに、マウント解除オペレーション中にデータベースを切断する権限や、トランザクション ログを適用する権限がない場合は、それらの権限を持つアカウントの認証情報をここに入力します。詳細については、Windows ユーザーに必要な SQL Server のロールをご覧ください。

  13. 新しい仮想データベースの復旧モデルを変更する場合は、[復旧モデル] を選択します。デフォルトでは、元のデータベースの復旧モデルが保持されます。

  14. [Overwrite Existing Database] で、マウントされる新しいデータベースと同じ名前を持つターゲット サーバーまたはインスタンス上のデータベースを上書きするタイミングを指定します([Yes]、[No]、[Only if it's Stale])。

  15. [Mapping Options] で、マウント ポイントを入力できます。アプリケーションにボリュームが 1 つしかない場合は、ここでマウント ポイントのみを指定できます。アプリケーションに複数のボリュームがある場合は、次のことができます。

    • マウント場所を入力します。すべてのボリュームは、指定したマウント ポイントで、連続したドライブ文字または番号付きディレクトリを使用して、指定したマウント ポイントに自動的にマウントされます。

    • この欄を空白のままにし、[詳細オプション] で各ボリュームのマウント ポイントを手動で指定します。

  16. [送信] をクリックします。ジョブが送信されます。

  17. マウントジョブが完了したら、データベース サーバーにログオンし、マウントされたイメージが [アクティブ マウント] で使用可能であることを確認します。

アクティブ マウントの管理

マウントを作成したら、[App Manager] > [Active Mounts] でイメージを追跡できます。理想的には、イメージを無期限にマウントしたままにしないでください。これは、マウントの作成元であるバックアップ イメージは、すべてのマウントが削除されるまで有効期限が切れないためです。マウントされたイメージの使用が終了したら、次のいずれかを行います。

  • イメージをマウント解除します。必要に応じて再マウントできます。その後、不要になったことが確実になったら、イメージを削除できます。
  • イメージをマウント解除して削除します。マウントのベースとなるバックアップではなく、マウントされたイメージが削除されます。
  • イメージを移行します。これは Microsoft SQL Server マウント専用です。

暗号化された SQL Server データをマウントする

バックアップ/復元アプライアンスは、暗号化された SQL Server データベースをキャプチャしますが、秘密鍵、暗号化証明書、パスワードはキャプチャしません。

このセクションでは、次のことを説明します。

  • SQL TDE が有効かどうかを判断する

  • SQL Server の暗号化のトラブルシューティング

  • SQL Server のマスターキー、暗号化証明書、パスワードの手順

暗号化された SQL Server データベースを既存の SQL Server データベースに復元する場合、秘密鍵、暗号化証明書、パスワードは SQL Server インスタンスにすでに存在します。復元オペレーションが完了すると、SQL Server データベースは想定どおりに動作します。

暗号化されたデータベースの仮想アプリケーション マウント、または暗号化された SQL Server データのみのマウントを実行する場合は、暗号化されたデータベースまたはデータがマウントされる SQL Server インスタンスに次のものが必要です。

  • 透過的データ暗号化(TDE)が有効になっている

  • ソース SQL Server データベースの秘密鍵のコピー

  • ソース SQL Server データベースの暗号化証明書のコピー

  • ソース SQL Server データベースのパスワードを指定する

手順については、SQL Server のマスターキー、暗号化証明書、パスワードの手順をご覧ください。

SQL Server TDE が有効になっているかどうかを確認する

SQL Server インスタンスで TDE が有効になっているかどうかを確認するには、Microsoft の SQL Server Management Studio のユーザー インターフェース(SSMS)を使用するか、手動クエリを使用してデータベースで暗号化が有効になっているかどうかを確認します。次に例を示します。

        SELECT
         DB_NAME(database_id)AS dbname,
         encryption_state,
         case encryption_state
           WHEN 0 THEN 'Unencrypted (no
        database encryption key present)'
           WHEN 1 THEN 'Unencrypted'
           WHEN 2 THEN 'Encryption in Progress'
           WHEN 3 THEN 'Encrypted'
           WHEN 4 THEN 'Key Change in Progress'
           WHEN 5 THEN 'Decryption in Progress'
           ELSE CAST(encryption_state AS
        varchar(20))
         END AS encryption_state,
         key_algorithm,
         key_length
         FROM sys.dm_database_encryption_keys

SSMS

SSMS を使用してデータベースで暗号化が有効になっているかどうかを確認する手順は次のとおりです。

  1. SSMS でデータベース名を右クリックします。

  2. プルダウン メニューから [プロパティ] を選択すると、データベースのプロパティが表示されます。

  3. [ページの選択] で [オプション] をクリックすると、データベースのオプションが表示されます。

  4. [状態] で、[暗号化が有効] が [True] に設定されていることを確認します。

SQL Server の暗号化のトラブルシューティング

一般的なエラーは次の 2 つです。

  • SQL エラー 24583: 暗号化証明書がないことを示します。次の 24583 SQL Server エラーは、ソース SQL Server インスタンスの暗号化証明書がない SQL Server インスタンスにマウントしようとしていることを示しています。

  • SQL エラー 33117: 透過的データ暗号化が有効になっていません。次の 33117 SQL Server エラーは、透過的データ暗号化が有効になっていない SQL Server インスタンスに、暗号化された SQL Server データベースのマウントを試みていることを示しています。

SQL Server のマスターキー、暗号化証明書、パスワードの手順

マスターキーと暗号化証明書の作成とコピーは、バックアップ/復元アプライアンスに固有のものではなく、標準の Microsoft SQL Server 手順です。便宜上、以下に示します。

  • 新しいマスターキーを作成する

  • 新しい暗号化証明書を作成する

  • サーバーのマスターキーと暗号化証明書を適用する

  • サーバー マスターキーと暗号化証明書のコピーを作成し、ソース パスワードを指定する

  • 暗号化証明書と秘密鍵をコピーし、ソース パスワードを指定します

詳細については、セキュリティ証明書とキーに関する Microsoft の詳細情報(https://msdn.microsoft.com/en-us/library/ff848768.aspx)をご覧ください。

新しいマスターキーを作成する

        use master;
        go
        create master key encryption by password = 'SMKSourcePassword';
        go

新しい暗号化証明書を作成する

        use master;
        go
        create certificate sourcedbcert with subject = 'Act Test Cert';
        go

サーバーのマスターキーと暗号化証明書を適用する

        use DATABASENAME;
        go
        CREATE DATABASE ENCRYPTION KEY
        WITH ALGORITHM = AES_128
        ENCRYPTION BY SERVER CERTIFICATE sourcedbcert;
        go
        alter database DATABASENAME
        set encryption on;
        go

サーバー マスターキーと暗号化証明書のコピーを作成し、ソース パスワードを指定する

1 つの SQL Server インスタンスの SQL Server データベースが別の SQL Server インスタンスにマウントされている場合は、マウントするデータベースのサーバー マスターキー、暗号化証明書、パスワードを手動でコピーする必要があります。次に、サーバー マスターキー、暗号化証明書、パスワードを他の SQL Server インスタンスにコピーします。

サーバーのマスターキー、暗号化証明書、パスワードのコピーを作成するには、次の操作を行います。

        use master;
        go
        backup certificate sourcedbcert to file = 'E:\Enc\Sourcecert'
        with PRIVATE KEY (file='E:\Enc\Privatekey',
        ENCRYPTION BY PASSWORD='SecurePassword');
        go

暗号化証明書と秘密鍵をコピーし、ソース パスワードを指定する

暗号化が有効になっている SQL Server データベースまたはデータが新しい SQL Server インスタンスにマウントされている場合、新しいインスタンスには、移行元の SQL Server インスタンスのサーバー マスターキー、暗号化証明書、パスワードのコピーが必要です。前のセクションで作成した暗号化証明書とパスワードのコピーを、元の SQL Server インスタンスから新しい SQL Server インスタンスに手動でコピーします。新しい SQL Server インスタンスで、次の操作を行います。

        create certificate destinationdbcert
        FROM file = 'C:\Program Files\Backup and DR\sqlenc\Sourcecert'
        with private key (file = 'C:\Program Files\Backup and DR\sqlenc\Privatekey',
        decryption by password = 'SecurePassword')
        go

Backup and DR for Microsoft SQL Server のその他のドキュメント

このページは、Backup and DR を使用して Microsoft SQL Server データベースとサポート バイナリを保護および復元する方法について説明する一連のページの一つです。詳細については、次のページをご覧ください。