クイック スタート:SSMS を使用して Azure SQL Managed Instance にデータベースを復元する
適用対象: Azure SQL Managed Instance
このクイックスタートでは、SQL Server Management Studio (SSMS) を使用して、Azure Blob Storage から Azure SQL Managed Instance にデータベースを復元します。
このクイックスタートでは、バックアップ ファイルから Wide World Importers データベースを復元します。 SSMS でデータベースを復元するには、次の 2 つの方法があります。
- 復元ウィザード
- T-SQL ステートメント
Note
- Azure Database Migration Service を使用した移行の詳細については、チュートリアル: Azure Database Migration Service を使用した SQL Server の Azure SQL Database Managed Instance への移行に関するページを参照してください。
- 各種の移行方法の詳細については、Azure SQL Managed Instance への SQL Server に関するガイドを参照してください。
前提条件
このクイック スタート:
- マネージド インスタンスの作成に関するクイックスタートのリソースを使用します。
- 最新バージョンの 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 を開き、お使いのマネージド インスタンスに接続します。
オブジェクト エクスプローラーで、マネージド インスタンスの[データベース] フォルダーを右クリックし、[データベースの復元] を選択して復元ウィザードを開きます。
バックアップ ソースを選択する
新しい復元ウィザードで、省略記号 (...) を選択して、復元するバックアップ セットのソースを選択します。
[バックアップ デバイスの選択] で、 [追加] を選択します。 サポートされているソースの種類は [URL] のみであるため、[バックアップ メディアの種類] で使用できるのは、このオプションのみです。 [OK] を選択します。
[バックアップ ファイルの場所を選択] で、3 つのオプションのいずれかを選択して、バックアップ ファイルの場所に関する情報を指定します。
- [Azure ストレージ コンテナー] の一覧から事前登録済みのストレージ コンテナーを選択します。
- 新しいストレージ コンテナーと Shared Access Signature を入力します。 新しい SQL 資格情報が自動的に登録されます。
- [追加] を選択して、Azure サブスクリプションからさらに多くのストレージ コンテナーを参照します。
[追加] を選択した場合は、次のセクション「Azure サブスクリプションのストレージ コンテナーを参照する」に進みます。 別の方法を使用してバックアップ ファイルの場所を指定した場合は、「データベースを復元する」に進みます。
Azure サブスクリプションのストレージ コンテナーを参照する
[Microsoft サブスクリプションへの接続] で [サインイン] を選択して、お使いの Azure サブスクリプションにサインインします。
Microsoft アカウントにサインインし、Azure でセッションを開始します。
バックアップ ファイルが含まれているストレージ アカウントのサブスクリプションを選択します。
バックアップ ファイルが含まれているストレージ アカウントを選択します。
バックアップ ファイルが含まれている BLOB コンテナーを選択します。
共有アクセス ポリシーの有効期限を入力し、[資格情報の作成] を選択します。 適切なアクセス許可を持つ Shared Access Signature が作成されます。 [OK] を選択します。
データベースを復元する
ストレージ コンテナーを選択したので、[Microsoft Azure でのバックアップ ファイルの選択] ダイアログが表示されます。
左側のペインでフォルダー構造を展開して、バックアップ ファイルが含まれているフォルダーを表示します。 右側のペインで、復元するバックアップ セットに関連するすべてのバックアップ ファイルを選択し、[OK] を選択します。
SSMS によってバックアップ セットが検証されます。 このプロセスには数秒しかかかりません。 所要時間は、バックアップ セットのサイズによって異なります。
バックアップを検証する場合、復元するデータベースの名前を指定する必要があります。 既定では、[バックアップ先] の [データベース] ボックスにバックアップ セット データベースの名前が表示されます。 名前を変更するには、[データベース] に新しい名前を入力します。 [OK] を選択します。
復元プロセスが開始されます。 所要時間は、バックアップ セットのサイズによって異なります。
復元プロセスが完了すると、成功したことを示すダイアログが表示されます。 [OK] を選択します。
オブジェクト エクスプローラーで、復元されたデータベースを確認します。
T-SQL を使用してバックアップ ファイルから復元する
復元ウィザードの代わりに T-SQL ステートメントを使用してデータベースを復元できます。 SSMS で、次の手順に従い、T-SQL を使用して Wide World Importers データベースを SQL Managed Instance に復元します。 データベース バックアップ ファイルは、事前構成済みの Blob Storage アカウントに格納されています。
SSMS を開き、お使いのマネージド インスタンスに接続します。
オブジェクト エクスプローラーで、マネージド インスタンスを右クリックし、 [新しいクエリ] を選択して新しいクエリ ウィンドウを開きます。
次の T-SQL ステートメントを実行します。このステートメントは、事前構成済みのストレージ アカウントと Shared Access Signature キーを使用して、マネージド インスタンスに資格情報を作成します。
重要
CREDENTIAL
はコンテナーのパスと一致し、https
で始まる必要があり、末尾にスラッシュを含めることはできません。IDENTITY
は、SHARED ACCESS SIGNATURE
である必要があります。SECRET
は Shared Access Signature トークンである必要があり、先頭に?
を含めることはできません。
CREATE CREDENTIAL [https://mitutorials.blob.core.windows.net/databases] WITH IDENTITY = 'SHARED ACCESS SIGNATURE' , SECRET = 'sv=2017-11-09&ss=bfqt&srt=sco&sp=rwdlacup&se=2028-09-06T02:52:55Z&st=2018-09-04T18:52:55Z&spr=https&sig=WOTiM%2FS4GVF%2FEEs9DGQR9Im0W%2BwndxW2CQ7%2B5fHd7Is%3D'
資格情報を確認するには、次のステートメントを実行します。このスクリプトでは、コンテナーの URL を使用してバックアップ ファイルの一覧を取得します。
RESTORE FILELISTONLY FROM URL = 'https://mitutorials.blob.core.windows.net/databases/WideWorldImporters-Standard.bak'
次のステートメントを実行して、Wide World Importers データベースを復元します。
RESTORE DATABASE [Wide World Importers] FROM URL = 'https://mitutorials.blob.core.windows.net/databases/WideWorldImporters-Standard.bak'
復元プロセスがメッセージ ID 22003 で終了した場合、バックアップ チェックサムを格納する新しいバックアップ ファイルを作成し、復元プロセスを再度開始します。 「バックアップ中または復元中にバックアップ チェックサムを有効または無効にする」を参照してください。
次のステートメントを実行して、復元の状態を追跡します。
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 の接続とクエリ」を参照してください。