クイックスタート: Azure Blob Storage への SQL のバックアップと復元

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Managed Instance

このクイックスタートは、Azure Blob Storage へのバックアップの書き込みと、そこから復元する方法について理解を深めるのに役立ちます。 この記事では、Azure Blob Storag コンテナーを作成し、Azure Blob Storage にバックアップを書き込んだ後、復元を実行する方法について説明します。

注意

SQL Server 2012 SP1 CU2 には、Azure Blob Storage へのバックアップのサポートが導入されています。 SQL Server 2014 以前では、このクイックスタートの記事で説明されている Shared Access Signature (SAS) はサポートされていません。

SQL Server 2014 以前については、チュートリアル: Microsoft Azure Blob Storage への SQL Server 2014 のバックアップと復元を使用してください。

前提条件

このクイックスタートを完了するには、SQL Server のバックアップと復元の概念および T-SQL 構文についての知識が必要です。 Azure ストレージ アカウント、SQL Server Management Studio (SSMS)、および SQL Server または Azure SQL Managed Instance が実行されているサーバーへのアクセスが必要です。 また、BACKUP コマンドと RESTORE コマンドの実行に使用するアカウントは、alter any credential 権限を持つ db_backup operator データベース ロールに属している必要があります。

Azure Blob Storage コンテナーを作成する

コンテナーには、一連の BLOB をグループ化するコンテナーが用意されています。 すべての BLOB は 1 つのコンテナーに存在する必要があります。 ストレージ アカウントには、コンテナーを無制限に含めることができますが、少なくとも 1 つのコンテナーが必要です。 コンテナーには、BLOB を無制限に格納できます。

コンテナーを作成するには、次の手順を実行します。

  1. Azure portal を開きます。

  2. ストレージ アカウントに移動します。

  3. ストレージ アカウントを選択し、[Blob Services]\(Blob services\) までスクロールします。

  4. [BLOB] を選択し、[+ Container]\(+ コンテナー\) を選択して新しいコンテナーを追加します。

  5. コンテナーの名前を入力し、指定したコンテナー名をメモしておきます。 この情報は、後でこのクイックスタートの T-SQL ステートメントの URL (バックアップ ファイルのパス) 内で使用されます。

  6. [OK] を選択します。

    New container

注意

ストレージ アカウントへの認証は、パブリック コンテナーの作成を選択した場合でも、SQL Server のバックアップと復元に必要です。 コンテナーは、REST API を使用してプログラムで作成することもできます。 詳しくは、「Create Container」をご覧ください

テスト データベースを作成する

このステップでは、SQL Server Management Studio (SSMS) を使用してテスト データベースを作成します。

  1. SQL Server Management Studio (SSMS) を起動し、SQL Server インスタンスに接続します。
  2. [新しいクエリ] ウィンドウを開きます。
  3. 次の Transact-SQL (T-SQL) コードを実行して、テスト データベースを作成します。 新しいデータベースを表示するには、オブジェクト エクスプローラー[データベース] ノードを最新の情報に更新します。 SQL Managed Instance 上に新しく作成されたデータベースでは自動的に TDE が有効になっているので、続行するにはそれを無効にする必要があります。
USE [master]
GO

-- Create database
CREATE DATABASE [SQLTestDB]
GO

-- Create table in database
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
    ID INT NOT NULL PRIMARY KEY,
    c1 VARCHAR(100) NOT NULL,
    dt1 DATETIME NOT NULL DEFAULT getdate()
)
GO

-- Populate table 
USE [SQLTestDB]
GO

INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO

SELECT * FROM SQLTest
GO

-- Disable TDE for newly-created databases on SQL Managed Instance 
USE [SQLTestDB];
GO
ALTER DATABASE [SQLTestDB] SET ENCRYPTION OFF;
GO
DROP DATABASE ENCRYPTION KEY
GO

資格情報の作成

次の手順に従って、SQL Server Management Studio の GUI を使用して資格情報を作成します。 または、プログラムで資格情報を作成することもできます。

  1. SQL Server Management Studio(SSMS)オブジェクト エクスプローラーで、[データベース] ノードを展開します。

  2. 新しい SQLTestDB データベースを右クリックして、[タスク] をポイントし、[バックアップ...] を選択して、データベースのバックアップ ウィザードを起動します。

  3. [バックアップ先] ドロップダウンから [URL] を選択し、[追加] を選択して、[バックアップ先の選択] ダイアログ ボックスを開きます。

    Back up to URL

  4. [バックアップ先の選択] ダイアログ ボックスで [新しいコンテナー] を選択して、[Microsoft サブスクリプションへの接続] ウィンドウを開きます。

    Screenshot of the Select Backup Destination dialog window with the New container option called out.

  5. [サインイン] を選択して Azure portal にサインインし、サインイン プロセスを続けます。

  6. ドロップダウンからお使いのサブスクリプションを選択します。

  7. ドロップダウンからお使いのストレージ アカウントを選択します。

  8. ドロップダウンから、前に作成したコンテナーを選択します。

  9. [資格情報の作成] を選択して、Shared Access Signature (SAS) を生成します。 この値は、復元に必要なため、保存しておいてください。

    Create credential

  10. [OK] を選択して、[Microsoft サブスクリプションへの接続] ウィンドウを閉じます。 これにより、[バックアップ先の選択] ダイアログ ボックスに "Azure ストレージ コンテナー" の値が設定されます。 [OK] を選択して、選択したストレージ コンテナーを選択し、ダイアログ ボックスを閉じます。

  11. この時点で、次のセクションのステップ 4 に進んでデータベースのバックアップを作成するか、または Transact-SQL を使用してデータベースをバックアップする場合はデータベースのバックアップ ウィザードを閉じることができます。

データベースをバックアップする

このステップでは、SQL Server Management Studio の GUI または Transact-SQL (T-SQL) を使用して、データベース SQLTestDB を Azure Blob ストレージ アカウントにバックアップします。

  1. データベースのバックアップ ウィザードを閉じた場合は、SQL Server Management Studio(SSMS)オブジェクト エクスプローラーで、[データベース] ノードを展開します。

  2. 新しい SQLTestDB データベースを右クリックして、[タスク] をポイントし、[バックアップ...] を選択して、データベースのバックアップ ウィザードを起動します。

  3. [バックアップ先] ドロップダウンから [URL] を選択し、[追加] を選択して、[バックアップ先の選択] ダイアログ ボックスを開きます。

    Back up to URL

  4. 前のステップで作成したコンテナーを [Azure ストレージ コンテナー] ドロップダウンで選択します。

    Azure storage container

  5. データベースのバックアップ ウィザードで [OK] を選択して、データベースをバックアップします。

  6. データベースが正常にバックアップされたら [OK] を選択し、バックアップ関連のウィンドウをすべて閉じます。

    ヒント

    データベースのバックアップ ウィザードの上部にある [スクリプト] を選択して、このコマンドの背後にある Transact-SQL をスクリプト化できます。Script command

データベースの削除

このステップでは、復元を実行する前にデータベースを削除します。 このステップは、このチュートリアルの目的でのみ必要であり、通常のデータベース管理手順では使用されない可能性があります。 このステップは省略できますが、その場合、オンプレミスのデータベースを正常に復元するには、マネージド インスタンスでの復元中にデータベースの名前を変更するか、復元コマンド WITH REPLACE を実行する必要があります。

  1. オブジェクト エクスプローラー[データベース] ノードを展開し、SQLTestDB データベースを右クリックして [削除] を選択し、オブジェクトの削除ウィザードを起動します。
  2. マネージド インスタンスで [OK] を選択して、データベースを削除します。 オンプレミスの場合は、[既存の接続を閉じる] の横のチェック ボックスをオンにしてから [OK] を選択して、データベースを削除します。

データベースの復元

このステップでは、SQL Server Management Studio の GUI または Transact-SQL を使用して、データベースを復元します。

  1. SQL Server Management Studio のオブジェクト エクスプローラー[データベース] ノードを右クリックし、[データベースの復元] を選択します。

  2. [デバイス] を選択し、省略記号 [...] を選択してデバイスを選択します。

    Select restore device

  3. [バックアップ メディアの種類] ドロップダウンから [URL] を選択し、[追加] を選択してデバイスを追加します。

    Add backup device

  4. ドロップダウンからコンテナーを選択し、資格情報を作成するときに保存した Shared Access Signature (SAS) を貼り付けます。

    Screenshot of the Select a Backup File Location dialog box with the Shared Access Signature field populated.

  5. [OK] を選択して、バックアップ ファイルの場所を選択します。

  6. [コンテナー] を展開し、バックアップ ファイルが存在するコンテナーを選択します。

  7. 復元するバックアップ ファイルを選択し、[OK] を選択します。 ファイルが表示されない場合は、間違った SAS キーを使用している可能性があります。 前と同じ手順に従ってコンテナーを追加することで、SAS キーを再生成することができます。

    Select restore file

  8. [OK] を選択すると [バックアップ デバイスの選択] ダイアログ ボックスが閉じます。

  9. [OK] を選択してデータベースを復元します。

関連項目

次に、Azure Blob Storage を SQL Server のバックアップに使用する場合に、概念とベストプラクティスを理解するのに役立つ推奨資料を示します。