クイック スタート:SSMS を使用して Azure SQL Managed Instance にデータベースを復元する

適用対象: Azure SQL Managed Instance

このクイックスタートでは、SQL Server Management Studio (SSMS) を使用して、Azure Blob Storage から Azure SQL Managed Instance にデータベースを復元します。 このクイックスタートでは、SAS を使用して、公開されているバックアップ ファイルから Wide World Importers サンプル データベースを復元します。

Note

前提条件

このクイック スタート:

Note

Blob Storage と Shared Access Signature キーを使用した SQL Server データベースのバックアップと復元の詳細については、SQL Server の Backup to URLに関するページを参照してください。

復元ウィザードを使用してバックアップ ファイルから復元する

SSMS で、次のセクションの手順を行い、復元ウィザードを使用して Wide World Importers データベースを SQL Managed Instance に復元します。 データベース バックアップ ファイルは、事前構成済みの Blob Storage アカウントに格納されています。

復元ウィザードを開く

  1. SSMS を開き、SQL Managed Instance に接続します。

  2. オブジェクト エクスプローラーで、SQL マネージド インスタンスの[データベース] フォルダーを右クリックし、[データベースの復元] を選択して復元ウィザードを開きます。

    SSMS でのオブジェクト エクスプローラーのスクリーンショット。[データベース] フォルダーが選択されています。そのショートカット メニューで、[データベースの復元] が選択されています。

バックアップ ソースを選択する

  1. 新しい復元ウィザードで、省略記号 (...) を選択して、復元するバックアップ セットのソースを選択します。

    ウィザード復元のページのスクリーンショット。[ソース] セクションで [デバイス] が選択されており、省略記号が強調表示されています。

  2. [バックアップ デバイスの選択] で、 [追加] を選択します。 サポートされているソースの種類は [URL] のみであるため、[バックアップ メディアの種類] で使用できるのは、このオプションのみです。 [OK] を選択します。

    [バックアップ デバイスの選択] ダイアログのスクリーンショット。[追加] ボタンと [OK] ボタンが強調表示されています。

  3. [バックアップ ファイルの場所を選択] で、3 つのオプションのいずれかを選択して、バックアップ ファイルの場所に関する情報を指定します。

    • [Azure ストレージ コンテナー] のリストから事前登録済みのストレージ コンテナーを選択します。
    • 新しいストレージ コンテナーと Shared Access Signature を入力します。 新しい SQL 資格情報が自動的に登録されます。
    • [追加] を選択して、Azure サブスクリプションからさらに多くのストレージ コンテナーを参照します。

    [バックアップ ファイルの場所を選択] ダイアログのスクリーンショット。[Azure ストレージ コンテナー] セクションで、[追加] が選択されています。

    [追加] を選択した場合は、次のセクション「Azure サブスクリプションのストレージ コンテナーを参照する」に進みます。 別の方法を使用してバックアップ ファイルの場所を指定した場合は、「データベースを復元する」に進みます。

    Wide World Importers サンプル データベースをパブリックにアクセス可能な読み取り専用ストレージから復元するには、値 https://mitutorials.blob.core.windows.net/examples/ を指定し、[Shared Access Signature] フィールドには 、SAS などの任意の値を指定します。

    [バックアップ ファイルの場所の選択] ダイアログのスクリーンショット。サンプル WideWorldImporters フォルダーの場所が指定されています。選択は赤でボックス化されています。

Azure サブスクリプションのストレージ コンテナーを参照する

Note

これらの手順は、パブリックにアクセス可能な読み取り専用 Azure BLOB ストレージから WideWorldImporters サンプル データベースを復元するのに必ずしも必要な手順ではありませんが、ユーザー固有の Azure BLOB ストレージからデータベースを復元するために必要です。

  1. [Microsoft サブスクリプションへの接続][サインイン] を選択して、お使いの Azure サブスクリプションにサインインします。

    [Microsoft サブスクリプションへの接続] ダイアログのスクリーンショット。[サインイン] ボタンが強調表示されています。

  2. Microsoft アカウントにサインインし、Azure でセッションを開始します。

    アカウントへの [サインイン] のスクリーンショット。Microsoft ログ、サインイン ボックス、その他の UI 要素が表示されています。

  3. バックアップ ファイルが含まれているストレージ アカウントのサブスクリプションを選択します。

    [Microsoft サブスクリプションへの接続] ダイアログのスクリーンショット。[使用するサブスクリプションの選択] で、リスト ボックスの下矢印が強調表示されています。

  4. バックアップ ファイルが含まれているストレージ アカウントを選択します。

    [Microsoft サブスクリプションへの接続] のスクリーンショット。[ストレージ アカウントの選択] リスト ボックスの下矢印が強調表示されています。

  5. バックアップ ファイルが含まれている BLOB コンテナーを選択します。

    [Microsoft サブスクリプションへの接続] のスクリーンショット。[BLOB コンテナーの選択] リスト ボックスの下矢印が強調表示されています。

  6. 共有アクセス ポリシーの有効期限を入力し、[資格情報の作成] を選択します。 適切なアクセス許可を持つ Shared Access Signature が作成されます。 [OK] を選択します。

    [Microsoft サブスクリプションへの接続] のスクリーンショット。[資格情報の作成]、[OK]、[共有アクセス ポリシーの有効期限] ボックスが強調表示されています。

データベースを復元する

ストレージ コンテナーを選択したので、[Microsoft Azure でのバックアップ ファイルの選択] ダイアログが表示されます。

  1. 左側のペインでフォルダー構造を展開して、バックアップ ファイルが含まれているフォルダーを表示します。 右側のペインで、復元するバックアップ セットに関連するすべてのバックアップ ファイルを選択し、[OK] を選択します。 たとえば、次のスクリーンショットは、WideWorldImporters サンプル データベースを含むパブリックにアクセス可能な読み取り専用 BLOB ストレージを示しています。

    [Microsoft Azure でのバックアップ ファイルの検索] ダイアログのスクリーンショット。WideWorldImporters-Standard.bak バックアップ ファイルが選択され、[OK] ボタンが赤でボックス化されています。

    SSMS によってバックアップ セットが検証されます。 このプロセスには数秒しかかかりません。 所要時間は、バックアップ セットのサイズによって異なります。

  2. バックアップを検証する場合、復元するデータベースの名前を指定する必要があります。 既定では、[バックアップ先][データベース] ボックスにバックアップ セット データベースの名前が表示されます。 名前を変更するには、[データベース] に新しい名前を入力します。 [OK] を選択します。

    復元ウィザードのページのスクリーンショット。[バックアップ先] セクションの [データベース] ボックスが強調表示されています。[OK] ボタンも強調されています。

    復元プロセスが開始されます。 所要時間は、バックアップ セットのサイズによって異なります。

    復元ウィザードのページのスクリーンショット。進行状況インジケーターが強調表示されています。

  3. 復元プロセスが完了すると、成功したことを示すダイアログが表示されます。 [OK] を選択します。

    復元ウィザードのページの上に表示されたダイアログのスクリーンショット。ダイアログのメッセージは、データベースが正常に復元されたことを示しています。

  4. オブジェクト エクスプローラー内で、[更新する] を選択して、復元されたデータベースを確認します。

    オブジェクト エクスプローラーのスクリーンショット。復元されたデータベースが強調表示されています。

T-SQL を使用してバックアップ ファイルから復元する

復元ウィザードの代わりに T-SQL ステートメントを使用してデータベースを復元できます。 SSMS で、次の手順に従い、T-SQL を使用して Wide World Importers データベースを SQL Managed Instance に復元します。 データベース バックアップ ファイルは、事前構成済みの Blob Storage アカウントに格納されています。

  1. SSMS を開き、SQL Managed Instance に接続します。

  2. オブジェクト エクスプローラー内で、SQL Managed Instance を右クリックし、[新しいクエリ] を選択して新しいクエリ ウィンドウを開きます。

  3. 次の T-SQL ステートメントを実行します。このステートメントは、一般公開されており事前構成済みのストレージ コンテナーおよび Shared Access Signature キーを使用して、マネージド インスタンスに資格情報を作成します。

    重要

    • CREDENTIAL はコンテナーのパスと一致し、https で始まる必要があり、末尾にスラッシュを含めることはできません。
    • IDENTITY は、SHARED ACCESS SIGNATURE である必要があります。
    • SECRET は Shared Access Signature トークンである必要があり、先頭に ? を含めることはできません。
    • この例では、ストレージ アカウントが一般公開されているため、SECRET は省略されています。 ユーザーは、一般公開されていないストレージ アカウントを使用する場合は、Shared Access Signature トークンを指定する必要があります。
    CREATE CREDENTIAL [https://mitutorials.blob.core.windows.net/examples/WideWorldImporters-Standard.bak]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE';
    

    SSMS クエリ エディターを示すスクリーンショット。CREATE CREDENTIAL ステートメントが表示されており、メッセージはクエリが正常に実行されたことを示しています。

    前の例の資格情報パスは、1 つのファイルへのアクセスを提供します。 また、次の例に示すように、フォルダー パスへの Shared Access Signature トークンを作成することもできます。

    CREATE CREDENTIAL [https://<your storage>.blob.core.windows.net/databases/backups/]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE'
    , SECRET = '<your shared access signature>'; -- omit the leading ?
    
  4. 資格情報が正しく機能していることを確認するには、URL を使用してバックアップ ファイルの一覧を取得する次のステートメントを実行します。

    RESTORE FILELISTONLY FROM URL = 'https://mitutorials.blob.core.windows.net/examples/WideWorldImporters-Standard.bak';
    

    SSMS クエリ エディターを示すスクリーンショット。RESTORE FILELISTONLY ステートメントが表示されており、[結果] タブに 3 つのファイルが一覧表示されています。

  5. 次のステートメントを実行して、サンプルの Wide World Importers データベースを復元します。

    RESTORE DATABASE [WideWorldImportersExample] FROM URL =
      'https://mitutorials.blob.core.windows.net/examples/WideWorldImporters-Standard.bak';
    

    SSMS クエリ エディターを示すスクリーンショット。RESTORE DATABASE ステートメントが表示されており、メッセージはクエリが正常に実行されたことを示しています。

    ヒント

    Error: 3201 または Operating system error 86(The specified network password is not correct.) を受け取った場合、SAS 資格情報 (前の手順で作成) が正しく作成されていない可能性があります。 DROP CREDENTIAL および再作成を行い、資格情報の名前、ID、シークレットを確認します。

  6. 次のステートメントを実行して、復元の状態を追跡します。

    SELECT session_id as SPID, command, a.text AS Query, start_time, percent_complete
       , dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time
    FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
    WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE');
    
  7. 復元が完了したら、オブジェクト エクスプローラーでデータベースを表示します。 データベースが復元されたことを確認するには、sys.dm_operation_status ビューを使用します。

Note

データベースの復元操作は非同期であり、再試行可能です。 接続が失敗した場合、またはタイムアウトが発生した場合、SSMS にエラーが表示されます。 SQL Managed Instance によって、バックグラウンドでデータベースの復元の試行が続けられます。復元プロセスの進行状況は、sys.dm_exec_requests および sys.dm_operation_status ビューを使用して追跡できます。

復元プロセスの一部のフェーズでは、システム ビューに、実際のデータベース名ではなく一意の識別子が表示されます。 RESTORE ステートメントの動作の違いの詳細については、「SQL Server と Azure SQL Managed Instance での T-SQL の相違点」を参照してください。