Stretch 対応データベースの復元 (Stretch Database)
適用対象: SQL Server 2016 (13.x) 以降 - Windows のみ
重要
拡張データベースは、SQL Server 2022 (16.x) および Azure SQL Database では非推奨になります。 この機能は、データベース エンジンの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。
さまざまな種類の失敗、エラー、障害から修復する必要が生じたときに、バックアップされたデータベースを復元します。
バックアップの詳細については、「 Stretch 対応データベースのバックアップ」をご覧ください。
バックアップは、完全な高可用性とビジネス継続性ソリューションの一部にすぎません。 高可用性についての詳細は、「 高可用性ソリューション」を参照してください。
SQL Server データの復元
ハードウェアの障害または破損から復元するには、Stretch 対応 SQL Server データベースをバックアップから復元します。 現在使用中の SQL Server の復元方法を引き続き使用できます。 詳細については、「 復元と復旧の概要」をご覧ください。
SQL Server データベースを復元した後に、ストアド プロシージャ sys.sp_rda_reauthorize_db
を実行して、Stretch 対応の SQL Server データベースとリモートの Azure データベース間の接続を再確立する必要があります。 詳細については、「 SQL Server データベースと Azure リモート データベース間の接続を復元する」をご覧ください。
リモートの Azure データの復元
Azure ライブ データベースの復旧
Azure の SQL Server Stretch Database サービスでは、Azure Storage スナップショットを使用して、少なくとも 8 時間ごとにすべてのライブ データのスナップショットを撮ります。 これらのスナップショットは 7 日間保存されます。 これにより、過去 7 日間から最後にスナップショットが撮られた時点までの少なくとも 21 の時点のいずれかの状態にデータを復元できます。
Azure ポータルを使用して、Azure ライブ データベースを過去の状態に復元するには、次の手順を実行します。
- Azure portal にサインインします。
- 画面左側の [参照] を選択し、[SQL デーベース] を選択します。
- 使用中のデータベースに移動して選択します。
- データベース ペインの上部にある [復元] を選びます。
- 新しい データベース名を指定し、[復元ポイント] を選び、[作成] を選びます。
- データベースの復元処理が開始され、[通知] を使用して監視できます。
削除された Azure データベースの復旧
Azure の SQL Server Stretch Database サービスでは、データベースが削除される前にデータベースのスナップショットが撮られ、7 日間保持されます。 それ以降、ライブ データベースからのスナップショットは保持されなくなります。 これにより、削除された時点にデータベースを復元できます。
Azure ポータルを使用して、削除済みの Azure データベースを削除された時点の状態に復元する手順は、次の通りです。
- Azure portal にサインインします。
- 画面左側の [参照] を選択し、[SQL サーバー] を選択します。
- 使用中のサーバーに移動して選択します。
- サーバーのペインで [操作] まで下へスクロールし、[削除されたデータベース] タイルを選びます。
- 復元する削除されたデータベースを選択します。
- 新しい [データベース名] を指定し、[作成] を選びます。
- データベースの復元処理が開始され、[通知] を使用して監視できます。
SQL Server データベースと Azure リモート データベース間の接続を復元する
異なる名前または異なるリージョンの復元された Azure データベースに接続するには、ストアド プロシージャ sys.sp_rda_deauthorize_db を実行して、以前の Azure データベースから切断します。
ストアド プロシージャ sys.sp_rda_reauthorize_db を実行してローカルの Stretch 対応データベースを Azure データベースに再接続します。
既存のデータベース スコープ資格情報を sysname または varchar(128) 値として指定します (varchar(max) は使用しないでください)。 資格情報の名前はビュー
sys.database_scoped_credentials
で参照できます。リモート データのコピーを作成するかどうかを指定し、コピーに接続します (推奨)。
USE <Stretch-enabled database name>; GO EXEC sp_rda_reauthorize_db @credential = N'<existing_database_scoped_credential_name>', @with_copy = 1; GO