演習 - Azure SQL データベースを復元してデータを復旧させる

完了

試験的な復元は、ディザスター リカバリー戦略の重要な構成要素です。

必要に応じて、バックアップされたデータベースを特定の時点に復元するための手順をよく理解しておく必要があります。 また、復元操作に要する時間を調べる必要があります。 そうすることで、あなたの組織のガイダンスでこの時間を計画できます。

ここでは、Azure SQL Database の自動バックアップからの復元を実行します。

バックアップがアクティブであることを確認する

最初の正常なバックアップが終了するまで、最大 15 分かかる場合があります。 演習を続行する前に、バックアップが実行されていることを確認する必要があります。

  1. Azure Cloud Shell で次の PowerShell コマンドを実行して、変数を自分の SQL Server インスタンスの値に設定します。

    $sqlserver=Get-AzSqlServer
    
  2. 次のコマンドを使って、継続的バックアップが実行されていることを検証します。

    Get-AzSqlDatabaseRestorePoint `
        -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
        -DatabaseName sql-erp-db `
        -ServerName $sqlserver.ServerName
    

    バックアップが実行中の場合、次のようなコードが出力されるはずです。 コマンドで値が返されない場合、バックアップはまだ開始されていません。 数分後にこのコマンドを再実行します。

    ResourceGroupName        : <rgn>[sandbox resource group name]</rgn>
    ServerName               : erpserver-53903
    DatabaseName             : sql-erp-db
    Location                 : East US
    RestorePointType         : CONTINUOUS
    RestorePointCreationDate :
    EarliestRestoreDate      : 9/24/19 4:21:21 PM
    RestorePointLabel        :
    

    RestorePointTypeCONTINUOUS です。これは、バックアップが自動的に発生していることを示します。 EarliestRestoreDate は、最初のバックアップのタイムスタンプを示します。 バックアップが用意できたら、演習を続行しましょう。

データベースからテーブルを削除する

誤ったデータベース変更をシミュレートすることから始めましょう。

  1. Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、[erpserver-NNNN] を選択します。[SQL データベース] を選択してから、sql-erp-db データベースを選択します。

  2. [クエリ エディター] (プレビュー) を選択してから、dbadmin ユーザーと、このアカウントに指定したパスワードを使用してサインインします。

  3. 前に作成した Person テーブルを削除しましょう。 新しいクエリ ウィンドウで、このコマンドを実行します。

    DROP TABLE Person
    
  4. データベース内のテーブルを確認するには、[新しいクエリ] を選択します。 その後、クエリ 2 ウィンドウで、このコマンドを実行してデータベース内のすべてのテーブルをリストします。

    SELECT schema_name(t.schema_id) as schema_name,
        t.name as table_name
    FROM sys.tables t
    ORDER BY schema_name, table_name;
    

    Person テーブルを削除したため、[結果がありません] と返されるはずです。

    Screenshot that shows no results returned after querying for the tables in the database.

ポイントインタイム リストアを実行する

Person テーブルは誤って削除されました。 ここで、データベースを以前の状態に復元しましょう。

  1. Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、sql-erp-db データベースを選択します。

  2. [概要] ページで、[復元] を選択します。

  3. [データベースの復元] ページの [基本] タブにこれらの値を入力し、[確認および作成] を選択します。

    設定
    ソースの選択 特定の時点
    データベース名 sql-erp-db-xxxxx
    復元ポイント 10 分前 (Person テーブルを削除する前) を選択
    サーバー erpserver-xxxxx
    SQL エラスティック プールを使用しますか? いいえ
    コンピューティングとストレージ 既定値
    バックアップ ストレージの冗長性 ローカル冗長バックアップ ストレージ

    Screenshot that shows the restore database page with the Review + create button selected.

  4. [作成] を選択します データベースの復元が完了するまでに数分かかります。

復元されたデータベースを表示する

復元されたデータベースには、Person テーブルが含まれているはずです。 これをポータルで確認することができます。

  1. Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、sql-erp-db-restored データベースを選択します。

  2. [クエリ エディター] (プレビュー) を選択してから、このアカウントに指定した dbadmin ユーザーとパスワードを使用してサインインします。

  3. データベース内のテーブルを確認するには、クエリ 1 ウィンドウで、このコマンドを実行します。

    SELECT schema_name(t.schema_id) as schema_name,
        t.name as table_name
    FROM sys.tables t
    ORDER BY schema_name, table_name;
    

    今度は Person テーブルが表示されます。

    Screenshot showing results after querying for the tables in the database.

  4. このコマンドを実行し、テーブルにデータがあることを確認します。

    SELECT * FROM Person
    

    前に入力したデータが表示されるはずです。

    Screenshot showing confirmed results after querying for the tables in the database.

これで、データに対してなんらかの意図しないことが発生した場合に、データベースをどのように復元できるかがわかりました。 復元プロセスについて、よく理解しました。 これで、バックアップと復元の手順が適切に定義されていることを組織に保証できるようになりました。