Microsoft SQL Server データベースをマウントする

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

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

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

標準マウントを使用すると、Microsoft SQL Server データを別のサーバーにマウントし、別の Microsoft SQL Server がそのデータを取得して使用できるようにできます。キャプチャした Microsoft SQL Server データのみをマウントするには、次の操作を行います。

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

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

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

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

  5. [Mount Image] ダイアログの [Application Options] セクションで、[Create New Virtual Application] を選択しないでください。Microsoft SQL Server データを仮想データベースとしてマウントするには、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 では、次のものをマウントできます。

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

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

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

破損したデータベースや削除されたデータベースの場合は、SQL Server データベースを仮想アプリケーションとして元のサーバーにマウントするのが、データベースの復元よりも効率的な方法です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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. 新しい仮想データベースの復元モデルを変更する場合は、[Recovery Model] を選択します。デフォルトでは、元のデータベースの復元モデルが保持されます。

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

  15. [Mapping Options] で、[Mount Location] にマウント ポイントを入力できます。アプリケーションにボリュームが 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. [State] で、[Encryption Enabled] が [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 SQL Server DBA ガイド

このページは、バックアップと DR を使用した Microsoft SQL Server データベースの保護と復元に固有のシリーズのページの 1 つです。詳細については、次のページをご覧ください。