Microsoft Azure への SQL Server マネージド バックアップ

適用対象:SQL Server - Windows のみ

Microsoft Azure への SQL Server マネージド バックアップは、Microsoft Azure Blob Storage への SQL Server バックアップの管理と自動化を実現します。 SQL Server によって決められた、データベースのトランザクション ワークロードに基づくバックアップ スケジュール、または詳細オプションを使用して定義したスケジュールのいずれかを選択できます。 保有期間の設定で、Azure BLOB ストレージでのバックアップの保存期間を決定します。 Microsoft Azure への SQL Server マネージド バックアップでは、指定された保持期間におけるポイントインタイム リストアがサポートされます。

Note

SQL Server 2016 (13.x) では、Microsoft Azure への SQL Server マネージド バックアップのプロシージャおよび基になる動作が変更されました。 詳細については、「マネージド バックアップの設定を移行する」をご覧ください。

Microsoft Azure への SQL Server マネージド バックアップは、Microsoft Azure Virtual Machines で実行されている SQL Server インスタンスに使用することをお勧めします。

メリット

現在、複数データベースのバックアップを自動化するには、バックアップ方法の開発、カスタム コードの記述、およびバックアップのスケジュール設定が必要です。 Microsoft Azure への SQL Server マネージド バックアップを使用すれば、保持期間と保存場所を指定するだけでバックアップ プランを作成できます。 詳細設定を使用できますが、必須ではありません。 バックアップのスケジュール、実行、管理が Microsoft Azure への SQL Server マネージド バックアップによって行われます。

Microsoft Azure への SQL Server マネージド バックアップは、データベース レベルまたは SQL Server インスタンス レベルで構成できます。 インスタンス レベルで構成する場合、新しいデータベースもすべて自動的にバックアップされます。 データベース レベルでの設定を使用して、個々のケースに対するインスタンス レベルの既定値をオーバーライドすることができます。

さらに、バックアップを暗号化してセキュリティを強化したり、カスタム スケジュールを設定してバックアップのタイミングを制御したりもできます。 SQL Server バックアップに Microsoft Azure Blob Storage を使用する利点の詳細については、「Azure Blob Storage を使った SQL Server のバックアップと復元」をご覧ください。

前提条件

Microsoft Azure Storage は、Microsoft Azure への SQL Server マネージド バックアップによってバックアップ ファイルが格納される際に使用されます。 以下の前提条件が必要です。

前提条件 説明
Microsoft Azure アカウント 購入オプション を調べる前に、 無料評価版で Azure を使用することができます。
Azure Storage アカウント バックアップは、Azure ストレージ アカウントに関連付けられている Azure Blob Storage に格納されます。 ストレージ アカウントの詳しい作成手順については、「ストレージ アカウントを作成する」をご覧ください。
BLOB コンテナー BLOB はコンテナーで構成されます。 バックアップ ファイルに対してターゲット コンテナーを指定します。 コンテナーは Azure 管理ポータルで作成するか、New-AzureStorageContainerAzure PowerShell コマンドを使用して作成します。
Shared Access Signature (SAS) ターゲット コンテナーへのアクセスは Shared Access Signature (SAS) で制御されます。 SAS の概要については、「Shared Access Signatures (SAS) を使用して Azure Storage リソースへの制限付きアクセスを許可する」をご覧ください。 SAS トークンは、コードまたは New-AzureStorageContainerSASToken PowerShell コマンドを使用して作成できます。 このプロセスを簡素化する PowerShell スクリプトについては、「Simplifying creation of SQL Credentials with Shared Access Signature ( SAS ) tokens on Azure Storage with PowerShell」 (PowerShell を使用する Azure ストレージにおける共有アクセス署名 (SAS) トークンでの SQL 資格情報の作成の簡素化) を参照してください。 SAS トークンは、SQL 資格情報に格納して、Microsoft Azure への SQL Server マネージド バックアップで使用できます。
SQL Server エージェント Microsoft Azure への SQL Server マネージド バックアップが機能するには、SQL Server エージェントが実行されている必要があります。 スタートアップ オプションを自動に設定することを検討してください。

コンポーネント

Transact-SQL は、Microsoft Azure への SQL Server マネージド バックアップを操作するためのメイン インターフェイスです。 システム ストアド プロシージャは、Microsoft Azure への SQL Server マネージド バックアップの有効化、構成、監視に用いられます。 システム関数は、既存の構成設定、パラメーター値、およびバックアップ ファイル情報を取得するために使用します。 拡張イベントは、エラーと警告を表示するために使用します。 警告メカニズムを有効にするには、SQL エージェント ジョブと SQL Server のポリシー ベースの管理を使用します。 次の表は、Microsoft Azure への SQL Server マネージド バックアップに関連するオブジェクトの一覧で、各オブジェクトの機能もご確認いただけます。

また、PowerShell コマンドレットを使用して、Microsoft Azure への SQL Server マネージド バックアップを構成することもできます。 SQL Server Management Studio では、Microsoft Azure への SQL Server マネージド バックアップで作成されたバックアップの [データベースの復元] タスクを使用した復元がサポートされています。

System オブジェクト 説明
msdb Microsoft Azure への SQL Server マネージド バックアップによって作成された、すべてのバックアップに対するメタデータとバックアップ履歴を格納します。
managed_backup.sp_backup_config_basic Microsoft Azure への SQL Server マネージド バックアップを有効にします。
managed_backup.sp_backup_config_advanced Microsoft Azure への SQL Server マネージド バックアップの詳細設定 (暗号化など) を構成します。
managed_backup.sp_backup_config_schedule Microsoft Azure への SQL Server マネージド バックアップのカスタム スケジュールを作成します。
managed_backup.sp_ backup_master_switch Microsoft Azure への SQL Server マネージド バックアップの一時停止と再開を実行します。
managed_backup.sp_set_parameter Microsoft Azure への SQL Server マネージド バックアップの監視を有効化し、構成します。 たとえば、拡張イベントの有効化、通知の電子メール設定があります。
managed_backup.sp_backup_on_demand ログ チェーンを分断することなく、Microsoft Azure への SQL Server マネージド バックアップを使用できるデータベースのアドホック バックアップを実行します。
managed_backup.fn_backup_db_config 1 つのデータベースまたはインスタンス上のすべてのデータベースにおける、Microsoft Azure への SQL Server マネージド バックアップの現在の状態と構成値を返します。
managed_backup.fn_is_master_switch_on マスターの切り替えの状態を返します。
managed_backup.sp_get_backup_diagnostics 拡張イベントによってログに記録されるイベントを返します。
managed_backup.fn_get_parameter 警告の監視やメール設定など、バックアップ システムの設定の現在の値を返します。
managed_backup.fn_available_backups 指定されたデータベース、またはインスタンス内のすべてのデータベースの利用可能なバックアップを取得します。
managed_backup.fn_get_current_xevent_settings 現在の拡張イベントの設定を返します。
managed_backup.fn_get_health_status 指定した期間に拡張イベントによってログに記録されたエラーの集計数を返します。

バックアップ戦略

以下のセクションでは、Microsoft Azure への SQL Server マネージド バックアップのバックアップ戦略について説明します。

バックアップのスケジュール設定

カスタム バックアップ スケジュールの指定には、システム ストアド プロシージャ managed_backup.sp_backup_config_schedule (Transact-SQL) を使用できます。 カスタム スケジュールを指定しない場合は、スケジュールされたバックアップの種類とそのバックアップの頻度は、データベースのワークロードに基づいて決定されます。 保有期間の設定を使用して、バックアップ ファイルをストレージに保持しておく期間と、保有期間内の特定の時点にデータベースを復旧できるかどうかを決定します。

バックアップ ファイルの名前付け規則

Microsoft Azure への SQL Server マネージド バックアップは指定されたコンテナーを使用するため、コンテナーの名前は自由に設定できます。 バックアップ ファイルの場合、可用性データベース以外のデータベースの名前は、データベース名の最初の 40 文字、データベース GUID (- を除く)、タイムスタンプを使用して作成されます。 各セグメントの間には、区切り記号としてアンダースコア文字が挿入されます。 完全バックアップにはファイル拡張子として .bak が使用され、ログ バックアップには .log が使用されます。 可用性グループ (AG) のデータベースでは、前述のファイル名前付け規則に加え、データベース名の 40 文字の後ろに AG データベース GUID が加えられます。 AG データベースの GUID 値は、sys.databases の group_database_id の値です。

データベースのフル バックアップ

Microsoft Azure への SQL Server マネージド バックアップのエージェントは、次のいずれかが当てはまる場合に、データベースの完全バックアップをスケジュールします。

  • データベースの Microsoft Azure への SQL Server マネージド バックアップが初めて有効にされた場合、またはデフォルト設定で Microsoft Azure への SQL Server マネージド バックアップがインスタンス レベルで有効になっている場合。

  • 前回のデータベースの完全バックアップ以降にログが 1 GB 以上に拡張されている。

  • 前回のデータベースの完全バックアップ以降に 1 週間という最大期間が経過している。

  • ログ チェーンが分断されている。 Microsoft Azure への SQL Server マネージド バックアップでは、バックアップ ファイルの最初と最後の LSN を比較し、ログ チェーンが分断されていないかどうかを定期的に確認します。 なんらかの理由でログ チェーンが分断されている場合、データベースの完全バックアップが Microsoft Azure への SQL Server マネージド バックアップによってスケジュールされます。 ログ チェーンが分断される最も一般的な理由として、Transact-SQL を使用するか SQL Server Management Studio のバックアップ タスクを使用してバックアップ コマンドが実行されていることが考えられます。 その他の一般的なシナリオには、バックアップ ログ ファイルを誤って削除した、バックアップを誤って上書きしたなどがあります。

トランザクション ログのバックアップ

次のいずれかに当てはまる場合、Microsoft Azure への SQL Server マネージド バックアップによってログ バックアップがスケジュールされます。

  • ログ バックアップを実行した履歴が見つからない。 これは、Microsoft Azure への SQL Server マネージド バックアップを初めて有効にした場合に発生しやすい事象です。

  • 使用されているトランザクション ログ領域が 5 MB 以上になった。

  • 前回のログ バックアップの後に 2 時間という最大期間に達している。

  • トランザクション ログ バックアップがデータベースの完全バックアップよりいつも遅れている。 目標は、ログ チェーンが完全バックアップより進んだ状態にしておくことです。

保持期間の設定

バックアップを有効にする際、保持期間を日単位で設定する必要があります。最小値は 1 日で、最大値は 90 日です。

Microsoft Azure への SQL Server マネージド バックアップは、保持期間の設定に基づいて指定された期間内における特定の時点の状態に復旧できるかどうかを評価し、保持するバックアップ ファイルと削除するバックアップ ファイルを決定します。 保有期間の設定で指定された期間を特定および照合するために、バックアップの backup_finish_date が使用されます。

考慮事項

データベースの完全バックアップのジョブがすでに実行されている場合、データベースの Microsoft Azure への SQL Server マネージド バックアップは待機し、現在のジョブが完了してから同じデータベースの完全バックアップを再度実行します。 同様に、一度に実行できるトランザクション ログ バックアップは 1 つだけです。 ただし、データベースの完全バックアップとトランザクション ログ バックアップは同時に実行できます。 エラーは、拡張イベントとしてログに記録されます。

同時に 10 個を超えるデータベースの完全バックアップがスケジュールされている場合、拡張イベントのデバッグ チャネルを通じて警告が発生します。 すべてのバックアップがスケジュールされ、完了するまで、Microsoft Azure への SQL Server マネージド バックアップは、バックアップする必要がある残りのデータベースの優先キューを管理します。

Note

SQL Server マネージド バックアップは、プロキシ サーバーではサポートされていません。

サポート可能性

次のサポートの制限事項と考慮事項は SQL Server に固有のものです。

  • mastermodelmsdb のシステム データベースのバックアップはサポートされています。 tempdb のバックアップはサポートされていません。

  • すべての復旧モデル (完全、一括ログ、および単純) がサポートされます。

  • Microsoft Azure への SQL Server マネージド バックアップのエージェントでは、データベースの完全バックアップとログ バックアップのみがサポートされます。 ファイル バックアップの自動化はサポートされません。

  • Microsoft Azure Blob Storage は、唯一サポートされているバックアップ ストレージ オプションです。 ディスクまたはテープへのバックアップはサポートされていません。

  • Microsoft Azure への SQL Server マネージド バックアップでは、ブロック BLOB へのバックアップ機能が使用されます。 ブロック BLOB の最大サイズは 200 GB です。 ストライピングを利用することにより、個々のバックアップの最大サイズを 12 TB まで指定できます。 バックアップ要件がこれを超える場合は、圧縮の使用を検討し、Microsoft Azure への SQL Server マネージド バックアップを設定する前にバックアップ ファイルのサイズをテストします。 テストは、ローカル ディスクへのバックアップまたは Transact-SQL の BACKUP TO URL ステートメントを使用した、 Microsoft Azure Storage への手動バックアップのいずれかの方法で行います。 詳しくは、「Microsoft Azure Blob Storage 向けの SQL Server の Backup to URL」をご覧ください。

  • バックアップ、高可用性、またはディザスター リカバリーをサポートする他のテクノロジで構成されている場合、Microsoft Azure への SQL Server マネージド バックアップの機能が制限されることがあります。

  • 可用性グループ内のデータベースのバックアップは、コピーのみのバックアップになります。