自動データベース バックアップを使用して復旧する - Azure SQL Database および SQL Managed Instance

適用対象: Azure SQL Database Azure SQL Managed Instance

自動データベース バックアップを使用したデータベースの復旧には、次のオプションを使用できます。 次のようにすることができます。

  • 同じサーバー上に、保有期間内の特定の時点に復旧された新しいデータベースを作成する。
  • 同じサーバー上に、削除済みデータベースの削除時に復旧されたデータベースを作成する。
  • 同じリージョンのサーバー上に、最新のバックアップの時点に復旧された新しいデータベースを作成する。
  • 任意の他のリージョンのサーバー上に、最後にレプリケートされたバックアップの時点に復旧された新しいデータベースを作成する。

バックアップの長期保有を構成している場合、任意の長期保有バックアップから任意のサーバー上に新しいデータベースを作成することもできます。

重要

復元中に既存のデータベースを上書きすることはできません。

Standard または Premium のサービス レベルを使用している場合、データベースの復元によって追加のストレージ コストが発生する可能性があります。 復元されたデータベースの最大サイズが、ターゲット データベースのサービス レベルとパフォーマンス レベルに含まれるストレージの量を超えると、追加のコストが発生します。 追加ストレージの価格について詳しくは、「SQL Database の価格」をご覧ください。 実際に使用される容量が、含まれるストレージの量より少ない場合、データベースの最大サイズを含まれる量に設定することで、この追加コストを回避できます。

復旧時間

自動データベース バックアップを使用してデータベースを復元する復旧時間は、さまざまな要因によって影響を受けます。

  • データベースのサイズ。
  • データベースのコンピューティング サイズ。
  • 関連するトランザクション ログの数。
  • 復元時点に復旧するために再生する必要があるアクティビティの量。
  • 別のリージョンへの復元の場合は、ネットワーク帯域幅。
  • ターゲット リージョンで処理される、同時実行される復元要求の数

大規模なデータベースや、非常に活動の激しいデータベースの場合、復元に数時間かかることがあります。 リージョン内で長時間にわたる障害が発生した場合は、ディザスター リカバリーのために、多数の geo リストア要求が開始される可能性があります。 多数の要求がある場合、個々のデータベースでの復旧時間が長くなる可能性があります。 ほとんどのデータベースの復元は、12 時間未満で完了します。

単一サブスクリプションには、同時リストア要求の数に制限があります。 これらの制限は、ポイントインタイム リストア、geo リストア、および長期保有バックアップからの復元の任意の組み合わせに適用されます。

デプロイ オプション 処理される同時要求の最大数 送信される同時要求の最大数
単一データベース (サブスクリプションごと) 30 100
エラスティック プール (プールごと) 4 2000

サーバー全体を復元するための組み込みの方法はありません。 このタスクを実行する方法の例については、「Azure SQL Database: サーバーの完全復旧」を参照してください。

重要

自動バックアップを使って復旧するには、サブスクリプション内の SQL Server 共同作成者ロールまたは SQL Managed Instance 共同作成者ロール (復旧のターゲットによって決まります) のメンバーであるか、サブスクリプション所有者である必要があります。 詳細については、Azure RBAC: 組み込みのロールに関するページをご覧ください。 復旧には、Azure portal、PowerShell、または REST API を使用できます。 Transact-SQL は使用できません。

ポイントインタイム リストア

Azure portal、PowerShell、または REST API を使用して、スタンドアロンのデータベース、プールされたデータベース、またはインスタンス データベースを、以前の時点に復元できます。 要求では、復元されるデータベースに対して任意のサービス レベルまたはコンピューティング サイズを指定できます。 データベースを復元するサーバーに十分なリソースを確保します。

完了すると、元のデータベースと同じサーバー上に新しいデータベースが作成されます。 復元されたデータベースでは、サービス レベルとコンピューティング サイズに基づいて通常料金が発生します。 データベースの復元が完了するまでは、料金は発生しません。

通常、以前の時点へのデータベースの復元は、復旧の目的で行います。 復元されたデータベースは、元のデータベースの代わりとして扱うことも、元のデータベースを更新するためのデータ ソースとして使用することもできます。

  • データベースの置換

    復元されたデータベースを元のデータベースの代わりとして使用する場合は、元のデータベースのコンピューティング サイズとサービス レベルを指定する必要があります。 次に、T-SQL の ALTER DATABASE コマンドを使用して、元のデータベース名を変更し、復元されたデータベースに元の名前を付けます。

  • データの復旧

    ユーザー エラーまたはアプリケーション エラーから復旧するために、復元されたデータベースからデータを取得する場合は、復元されたデータベースからデータを抽出して元のデータベースに適用するデータ復旧スクリプトを作成して実行する必要があります。 復元操作が完了するまでに時間がかかる可能性がありますが、復元プロセスを通して、復元しているデータベースがデータベース一覧に表示されます。 復元中にデータベースを削除すると、復元操作は取り消され、復元が完了していないデータベースに対しては課金されません。

Azure portal を使用したポイントインタイム リストア

Azure portal で復元するデータベースの概要ブレードから、単一のインスタンス データベースを特定の時点に復旧できます。

SQL Database

Azure portal を使用してデータベースを特定の時点に復旧するには、データベースの概要ページを開き、ツール バーの [復元] を選択します。 バックアップ ソースを選択し、新しいデータベースを作成する特定の時点のバックアップ ポイントを選択します。

SQL Database のデータベース復元オプションのスクリーンショット。

SQL Managed Instance

Azure portal を使用してマネージド インスタンス データベースを特定の時点に復旧するには、データベースの概要ページを開き、ツール バーの [復元] を選択します。 新しいデータベースを作成する特定の時点のバックアップ ポイントを選択します。

SQL Managed Instance のデータベース復元オプションのスクリーンショット。

ヒント

データベースをプログラムでバックアップから復元するには、自動バックアップを使用したプログラムによる復旧に関するページを参照してください。

削除されたデータベースの復元

削除されたデータベースを、削除時点またはそれ以前の時点の状態で、同じサーバー上または同じマネージド インスタンス上に復元できます。 Azure portal、PowerShell、または REST (createMode=Restore) を使用して、これを行うことができます。 削除されたデータベースを復元するには、バックアップから新しいデータベースを作成します。

重要

サーバーまたはマネージド インスタンスを削除すると、そのデータベースもすべて削除され、復旧することはできなくなります。 削除されたサーバーまたはマネージド インスタンスは復元できません。

削除されたデータベースの Azure portal を使用した復元

削除されたデータベースの復元は、Azure portal で、サーバーまたはマネージド インスタンス リソースから実行します。

ヒント

最近削除されたデータベースが Azure portal の [削除されたデータベース] ページに表示されるには、数分かかることがあります。削除されたデータベースを プログラムを使用して表示する場合も同様です。

SQL Database

Azure portal を使用して削除済みデータベースを削除時刻まで復旧するには、サーバーの概要ページを開き、 [削除済みデータベース] を選択します。 復元する削除されたデータベースを選択し、バックアップから復元されたデータを使用して作成される新しいデータベースの名前を入力します。

削除されたデータベースの復元のスクリーンショット

SQL Managed Instance

Azure portal を使用して、マネージド データベースを復旧するには、マネージド インスタンスの概要ページを開き、 [削除されたデータベース] を選択します。 復元する削除されたデータベースを選択し、バックアップから復元されたデータを使用して作成される新しいデータベースの名前を入力します。

削除された Azure SQL Managed Instance データベースの復元のスクリーンショット

削除されたデータベースの PowerShell を使用した復元

PowerShell を使用して、SQL Database または SQL Managed Instance の削除されたデータベースを復元するには、以下のサンプル スクリプトを使用します。

SQL Database

Azure SQL Database の削除されたデータベースの復元方法を示すサンプル PowerShell スクリプトについては、PowerShell を使用したデータベースの復元に関するページを参照してください。

SQL Managed Instance

削除されたインスタンス データベースの復元方法を示す PowerShell スクリプトのサンプルについては、PowerShell を使用した削除されたデータベースの復元に関するページをご覧ください。

ヒント

削除されたデータベースをプログラムで復元するには、「自動バックアップを使用したプログラム実行の復旧」を参照してください。

geo リストア

重要

geo リストアは、geo 冗長バックアップ ストレージを使用して構成された SQL データベースまたはマネージド インスタンスでのみ利用できます。

最新の geo レプリケートされたバックアップから、任意の Azure リージョンの任意の SQL Database サーバーにデータベースを復元するか、任意のマネージド インスタンスにインスタンス データベースを復元できます。 geo リストアでは、geo レプリケートされたバックアップをソースとして使用します。 データベースまたはデータセンターが停止してアクセスできない場合でも、geo リストアを要求できます。

geo リストアは、ホスティング リージョンでのインシデントが原因でデータベースが利用できない場合の既定の復旧オプションです。 データベースは他の任意のリージョンのサーバーに復元できます。 バックアップが取得される時刻と、別のリージョンの Azure BLOB にその差分バックアップが geo レプリケートされる時刻には時間差があります。 その結果、復元されたデータベースは、元のデータベースより最大 1 時間遅れることがあります。 次の図では、別のリージョン内の利用可能な最新のバックアップからのデータベースの復元を示します。

geo リストアの図

Azure portal を使用した geo リストア

Azure portal から、新しい単一データベースまたはマネージド インスタンス データベースを作成し、使用可能な geo リストア バックアップを選択します。 新しく作成されたデータベースに、geo リストアされたバックアップ データが格納されます。

SQL Database

選択したリージョンとサーバーの単一データベースを Azure portal から geo リストアするには、次の手順に従います。

  1. ダッシュボード から、 [追加] > [SQL データベースの作成] を選択します。 [基本] タブで、必要な情報を入力します。

  2. [追加設定] を選択します。

  3. [既存のデータを使用します][バックアップ] を選択します。

  4. [バックアップ] で、使用可能な geo リストア バックアップの一覧からバックアップを選択します。

    [SQL データベースの作成] のオプションのスクリーンショット

新しいデータベースをバックアップから作成するプロセスを完了します。 Azure SQL Database でデータベースを作成すると、復元された geo リストア バックアップが格納されます。

SQL Managed Instance

Azure portal を使用して、マネージド インスタンス データベースを任意のリージョンの既存のマネージド インスタンスに geo リストアするには、復元するデータベースが存在するマネージド インスタンスを選択します。 次の手順に従います。

  1. [新しいデータベース] を選択します。

  2. 目的のデータベース名を入力します。

  3. [既存のデータを使用します][バックアップ] を選択します。

  4. 使用可能な geo リストア バックアップの一覧からバックアップを選択します。

    [新しいデータベース] のオプションのスクリーンショット

新しいデータベースを作成するプロセスを完了します。 インスタンス データベースを作成すると、復元された geo リストア バックアップが格納されます。

PowerShell を使用した geo リストア

SQL Database

単一データベースに対して geo リストアを実行する方法を示す PowerShell スクリプトについては、PowerShell を使用して以前の時点に単一データベースを復元する方法に関するページを参照してください。

SQL Managed Instance

マネージド インスタンス データベースに対して geo リストアを実行する方法を示す PowerShell スクリプトについては、「PowerShell を使用して Managed Instance データベースを別の geo リージョンに復元する」を参照してください。

geo リストアに関する考慮事項

geo セカンダリ データベースでは、ポイントインタイム リストアを実行できません。 これを実行できるのは、プライマリ データベースだけです。 geo リストアを使用して障害から復旧する方法の詳細については、障害からの復旧に関するページを参照してください。

重要

geo リストアは、SQL Database と SQL Managed Instance で使用できる最も基本的なディザスター リカバリー ソリューションです。 これは、自動的に作成される geo レプリケートされたバックアップに依存し、目標復旧時点 (RPO) は最大 1 時間、推定復旧時間は最大 12 時間です。 リージョンの停止後は、需要が急激に増加する可能性があるため、目的のデータベースを復元する容量がターゲット リージョンに確保される保証はありません。 アプリケーションで使用されているデータベースが比較的小さく、アプリケーションがビジネスにとって重要でなければ、geo リストアは適切なディザスター リカバリー ソリューションです。

大規模なデータベースを必要とし、事業継続性を保証する必要があるビジネス上不可欠なアプリケーションの場合は、自動フェールオーバー グループを使用します。 大幅に低い RPO と目標復旧時間が実現され、容量が常に保証されます。

事業継続に関する選択肢の詳細については、ビジネス継続性の概要に関するページを参照してください。

自動バックアップを使用したプログラムによる復旧

Azure PowerShell または REST API を復旧に使用することもできます。 次の表では、使用できるコマンド セットについて説明します。

PowerShell

注意

この記事は、Azure Az PowerShell モジュールを使用するように更新されています。 Az PowerShell モジュールは、Azure と対話するために推奨される PowerShell モジュールです。 Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

重要

PowerShell Azure Resource Manager モジュールは SQL Database と SQL Managed Instance によって引き続きサポートされていますが、今後の開発はすべて Az.Sql モジュールを対象に行われます。 これらのコマンドレットについては、「AzureRM.Sql」を参照してください。 Az モジュールと Azure Resource Manager モジュールのコマンドの引数は、大部分が同じです。

SQL Database

スタンドアロン データベースまたはプールされたデータベースを復元するには、「Restore-AzSqlDatabase」を参照してください。

コマンドレット 説明
Get-AzSqlDatabase 1 つまたは複数のデータベースを取得します。
Get-AzSqlDeletedDatabaseBackup 復元する削除済みデータベースを取得します。
Get-AzSqlDatabaseGeoBackup データベースの geo 冗長バックアップを取得します。
Restore-AzSqlDatabase データベースを復元します。

ヒント

データベースのポイントインタイム リストアの実行方法を示すサンプル PowerShell スクリプトについては、PowerShell を使用したデータベースの復元に関するページを参照してください。

SQL Managed Instance

マネージド インスタンス データベースを復元するには、「Restore-AzSqlInstanceDatabase」を参照してください。

コマンドレット 説明
Get-AzSqlInstance 1 つまたは複数のマネージド インスタンスを取得します。
Get-AzSqlInstanceDatabase インスタンス データベースを取得します。
Restore-AzSqlInstanceDatabase インスタンス データベースを復元します。

REST API

REST API を使用してデータベースを復元するには:

API 説明
REST (createMode=Recovery) データベースを復元します。
Get Create or Update Database Status 復元操作中にステータスを返します。

Azure CLI

SQL Database

Azure CLI を使用してデータベースを復元するには、「az sql db restore」を参照してください。

SQL Managed Instance

Azure CLI を使用してマネージド インスタンス データベースを復元するには、「az sql db restore」を参照してください。

まとめ

自動バックアップは、ユーザー エラーやアプリケーション エラー、偶発的なデータベースの削除、および長期間にわたる障害からデータベースを保護します。 この組み込みの機能は、すべてのサービス レベルとコンピューティング サイズで使用できます。

次のステップ