演習 - Azure SQL データベースを復元してデータを復旧させる
試験的な復元は、ディザスター リカバリー戦略の重要な構成要素です。
必要に応じて、バックアップされたデータベースを特定の時点に復元するための手順をよく理解しておく必要があります。 また、復元操作に要する時間を調べる必要があります。 そうすることで、あなたの組織のガイダンスでこの時間を計画できます。
ここでは、Azure SQL Database の自動バックアップからの復元を実行します。
バックアップがアクティブであることを確認する
最初の正常なバックアップが終了するまで、最大 15 分かかる場合があります。 演習を続行する前に、バックアップが実行されていることを確認する必要があります。
Azure Cloud Shell で次の PowerShell コマンドを実行して、変数を自分の SQL Server インスタンスの値に設定します。
$sqlserver=Get-AzSqlServer
次のコマンドを使って、継続的バックアップが実行されていることを検証します。
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 :
RestorePointType
はCONTINUOUS
です。これは、バックアップが自動的に発生していることを示します。EarliestRestoreDate
は、最初のバックアップのタイムスタンプを示します。 バックアップが用意できたら、演習を続行しましょう。
データベースからテーブルを削除する
誤ったデータベース変更をシミュレートすることから始めましょう。
Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、[erpserver-NNNN] を選択します。[SQL データベース] を選択してから、sql-erp-db データベースを選択します。
[クエリ エディター] (プレビュー) を選択してから、dbadmin ユーザーと、このアカウントに指定したパスワードを使用してサインインします。
前に作成した Person テーブルを削除しましょう。 新しいクエリ ウィンドウで、このコマンドを実行します。
DROP TABLE Person
データベース内のテーブルを確認するには、[新しいクエリ] を選択します。 その後、クエリ 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 テーブルを削除したため、[結果がありません] と返されるはずです。
ポイントインタイム リストアを実行する
Person テーブルは誤って削除されました。 ここで、データベースを以前の状態に復元しましょう。
Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、sql-erp-db データベースを選択します。
[概要] ページで、[復元] を選択します。
[データベースの復元] ページの [基本] タブにこれらの値を入力し、[確認および作成] を選択します。
設定 値 ソースの選択 特定の時点 データベース名 sql-erp-db-xxxxx 復元ポイント 10 分前 (Person テーブルを削除する前) を選択 サーバー erpserver-xxxxx SQL エラスティック プールを使用しますか? いいえ コンピューティングとストレージ 既定値 バックアップ ストレージの冗長性 ローカル冗長バックアップ ストレージ [作成] を選択します データベースの復元が完了するまでに数分かかります。
復元されたデータベースを表示する
復元されたデータベースには、Person テーブルが含まれているはずです。 これをポータルで確認することができます。
Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、sql-erp-db-restored データベースを選択します。
[クエリ エディター] (プレビュー) を選択してから、このアカウントに指定した dbadmin ユーザーとパスワードを使用してサインインします。
データベース内のテーブルを確認するには、クエリ 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 テーブルが表示されます。
このコマンドを実行し、テーブルにデータがあることを確認します。
SELECT * FROM Person
前に入力したデータが表示されるはずです。
これで、データに対してなんらかの意図しないことが発生した場合に、データベースをどのように復元できるかがわかりました。 復元プロセスについて、よく理解しました。 これで、バックアップと復元の手順が適切に定義されていることを組織に保証できるようになりました。