クイック スタート: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
- ビデオ チュートリアルについては、「Azure SQL Managed Instance - データベース バックアップの復元」を参照してください。
- Azure Database Migration Service を使用した移行の詳細については、チュートリアル: Database Migration Service を使用した SQL Server の Azure SQL Managed Instance への移行に関するページを参照してください。
- 各種の移行方法の詳細については、Azure SQL Managed Instance への SQL Server に関するガイドを参照してください。
前提条件
このクイック スタート:
- SQL Managed Instance の作成に関するクイック スタートのリソースを使用します。
- 最新バージョンの SSMS がインストールされている必要があります。
- Azure SQL Managed Instance に接続するには、SSMS が必要です。 接続方法については、次のクイックスタートを参照してください。
- SQL マネージド インスタンスでパブリック エンドポイントを有効にします。 このクイックスタートでは、このアプローチをお勧めします。
- Azure VM から SQL Managed Instance に接続する。
- オンプレミスから SQL Managed Instance へのポイント対サイト接続を構成する。
Note
Blob Storage と Shared Access Signature キーを使用した SQL Server データベースのバックアップと復元の詳細については、SQL Server の Backup to URLに関するページを参照してください。
復元ウィザードを使用してバックアップ ファイルから復元する
SSMS で、次のセクションの手順を行い、復元ウィザードを使用して Wide World Importers データベースを SQL Managed Instance に復元します。 データベース バックアップ ファイルは、事前構成済みの Blob Storage アカウントに格納されています。
復元ウィザードを開く
SSMS を開き、SQL Managed Instance に接続します。
オブジェクト エクスプローラーで、SQL マネージド インスタンスの[データベース] フォルダーを右クリックし、[データベースの復元] を選択して復元ウィザードを開きます。
バックアップ ソースを選択する
新しい復元ウィザードで、省略記号 (...) を選択して、復元するバックアップ セットのソースを選択します。
[バックアップ デバイスの選択] で、 [追加] を選択します。 サポートされているソースの種類は [URL] のみであるため、[バックアップ メディアの種類] で使用できるのは、このオプションのみです。 [OK] を選択します。
[バックアップ ファイルの場所を選択] で、3 つのオプションのいずれかを選択して、バックアップ ファイルの場所に関する情報を指定します。
- [Azure ストレージ コンテナー] のリストから事前登録済みのストレージ コンテナーを選択します。
- 新しいストレージ コンテナーと Shared Access Signature を入力します。 新しい SQL 資格情報が自動的に登録されます。
- [追加] を選択して、Azure サブスクリプションからさらに多くのストレージ コンテナーを参照します。
[追加] を選択した場合は、次のセクション「Azure サブスクリプションのストレージ コンテナーを参照する」に進みます。 別の方法を使用してバックアップ ファイルの場所を指定した場合は、「データベースを復元する」に進みます。
Wide World Importers サンプル データベースをパブリックにアクセス可能な読み取り専用ストレージから復元するには、値
https://mitutorials.blob.core.windows.net/examples/
を指定し、[Shared Access Signature] フィールドには 、SAS
などの任意の値を指定します。
Azure サブスクリプションのストレージ コンテナーを参照する
Note
これらの手順は、パブリックにアクセス可能な読み取り専用 Azure BLOB ストレージから WideWorldImporters
サンプル データベースを復元するのに必ずしも必要な手順ではありませんが、ユーザー固有の Azure BLOB ストレージからデータベースを復元するために必要です。
[Microsoft サブスクリプションへの接続] で [サインイン] を選択して、お使いの Azure サブスクリプションにサインインします。
Microsoft アカウントにサインインし、Azure でセッションを開始します。
バックアップ ファイルが含まれているストレージ アカウントのサブスクリプションを選択します。
バックアップ ファイルが含まれているストレージ アカウントを選択します。
バックアップ ファイルが含まれている BLOB コンテナーを選択します。
共有アクセス ポリシーの有効期限を入力し、[資格情報の作成] を選択します。 適切なアクセス許可を持つ Shared Access Signature が作成されます。 [OK] を選択します。
データベースを復元する
ストレージ コンテナーを選択したので、[Microsoft Azure でのバックアップ ファイルの選択] ダイアログが表示されます。
左側のペインでフォルダー構造を展開して、バックアップ ファイルが含まれているフォルダーを表示します。 右側のペインで、復元するバックアップ セットに関連するすべてのバックアップ ファイルを選択し、[OK] を選択します。 たとえば、次のスクリーンショットは、
WideWorldImporters
サンプル データベースを含むパブリックにアクセス可能な読み取り専用 BLOB ストレージを示しています。SSMS によってバックアップ セットが検証されます。 このプロセスには数秒しかかかりません。 所要時間は、バックアップ セットのサイズによって異なります。
バックアップを検証する場合、復元するデータベースの名前を指定する必要があります。 既定では、[バックアップ先] の [データベース] ボックスにバックアップ セット データベースの名前が表示されます。 名前を変更するには、[データベース] に新しい名前を入力します。 [OK] を選択します。
復元プロセスが開始されます。 所要時間は、バックアップ セットのサイズによって異なります。
復元プロセスが完了すると、成功したことを示すダイアログが表示されます。 [OK] を選択します。
オブジェクト エクスプローラー内で、[更新する] を選択して、復元されたデータベースを確認します。
T-SQL を使用してバックアップ ファイルから復元する
復元ウィザードの代わりに T-SQL ステートメントを使用してデータベースを復元できます。 SSMS で、次の手順に従い、T-SQL を使用して Wide World Importers データベースを SQL Managed Instance に復元します。 データベース バックアップ ファイルは、事前構成済みの Blob Storage アカウントに格納されています。
SSMS を開き、SQL Managed Instance に接続します。
オブジェクト エクスプローラー内で、SQL Managed Instance を右クリックし、[新しいクエリ] を選択して新しいクエリ ウィンドウを開きます。
次の 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';
前の例の資格情報パスは、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 ?
資格情報が正しく機能していることを確認するには、URL を使用してバックアップ ファイルの一覧を取得する次のステートメントを実行します。
RESTORE FILELISTONLY FROM URL = 'https://mitutorials.blob.core.windows.net/examples/WideWorldImporters-Standard.bak';
次のステートメントを実行して、サンプルの Wide World Importers データベースを復元します。
RESTORE DATABASE [WideWorldImportersExample] FROM URL = 'https://mitutorials.blob.core.windows.net/examples/WideWorldImporters-Standard.bak';
ヒント
Error: 3201
またはOperating system error 86(The specified network password is not correct.)
を受け取った場合、SAS 資格情報 (前の手順で作成) が正しく作成されていない可能性があります。DROP CREDENTIAL
および再作成を行い、資格情報の名前、ID、シークレットを確認します。次のステートメントを実行して、復元の状態を追跡します。
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');
復元が完了したら、オブジェクト エクスプローラーでデータベースを表示します。 データベースが復元されたことを確認するには、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 の相違点」を参照してください。
関連するコンテンツ
- URL へのバックアップのトラブルシューティングについては、SQL Server の Backup to URL のベスト プラクティスとトラブルシューティングに関するページを参照してください。
- アプリの接続オプションの概要については、SQL Managed Instance へのアプリケーションの接続に関するページを参照してください。
- 任意のツールまたは言語を使用してクエリを実行する方法については、「クイック スタート: Azure SQL Database の接続とクエリ」を参照してください。