適用対象:SQL Server
Always On 可用性グループ のアクティブなセカンダリ機能では、セカンダリ レプリカでのバックアップの作成をサポートしています。 バックアップ操作では、(バックアップ圧縮により) I/O と CPU に大きな負荷がかかる場合があります。 同期済みまたは同期中のセカンダリ レプリカへバックアップをオフロードすることで、ワークロードが最も多いプライマリ レプリカをホストするサーバー インスタンスでリソースを使用できるようにします。
注意
RESTORE ステートメントは、可用性グループのプライマリ データベースまたはセカンダリ データベースでは使用できません。
セカンダリ レプリカでサポートされるバックアップの種類
セカンダリ レプリカでデータベースの完全バックアップを実行するには、 コピーのみのバックアップを作成する必要があります。コピーのみのバックアップはログ チェーンに影響を与えたり、差分ビットマップをクリアしたりしないためです。 次の点を考慮してください。
コピーのみのバックアップは、他のレプリカでのトランザクションログの切り捨てを防ぐことはありません。
コピーのみのバックアップでは、バックアップの期間中、コピーのみのバックアップを実行している間にセカンダリ レプリカでログが切り捨てられるのを防ぎます。
プライマリ レプリカのトランザクション ログが、コピーのみのバックアップを実行しているセカンダリ レプリカのトランザクション ログの最初と最後の LSN の間にある LSN に切り捨てられると、セカンダリ レプリカのログに次のエラーが表示されることがあります。
Error 9019: The virtual log file sequence 0x%08x at offset 0x%016I64x bytes in file '%ls' is active and cannot be overwritten with sequence 0x%08x for database '%ls'.
バックアップは成功する可能性が高くなりますが、コピーのみのバックアップが完了するまで、そのセカンダリ レプリカの同期は失敗し、セカンダリ レプリカが同期コミットに設定されている場合、セカンダリ レプリカでログが強化されるまで、プライマリ レプリカの書き込みワークロードがブロックされる可能性があります。 バックアップが完了すると、セカンダリ レプリカでログが切り捨てられ、その時点で再度同期する必要があります。 セカンダリ レプリカでコピーのみのバックアップを実行しているときにエラー 9019 が発生した場合は、代わりにプライマリ レプリカで完全バックアップを実行します。
セカンダリ レプリカでバックアップを実行する場合は、次の点を考慮してください。
- セカンダリ データベースをバックアップするには、セカンダリ レプリカがプライマリ レプリカと通信でき、 SYNCHRONIZED または SYNCHRONIZING である必要があります。
- 差分バックアップは、セカンダリ レプリカではサポートされていません。
- 同時バックアップ (プライマリ レプリカでトランザクション ログ バックアップを実行しながら、セカンダリ レプリカでデータベースの完全バックアップを実行するなど) は、現在サポートされていません。
- BACKUP LOG では、通常のログ バックアップのみがサポートされます (セカンダリ レプリカのログ バックアップでは、COPY_ONLY オプションはサポートされていません)。 可用性モード (同期コミットまたは非同期コミット) に関係なく、任意のレプリカ (プライマリまたはセカンダリ) で取得されたログ バックアップ全体にわたって一貫性のあるログ チェーンが保証されます。
分散型可用性グループでは、アクティブなプライマリ レプリカと同じ可用性グループ内のセカンダリ レプリカ、または任意のセカンダリ可用性グループのプライマリ レプリカでバックアップを実行できます。 セカンダリ レプリカは、独自の可用性グループ内のプライマリ レプリカとのみ通信するため、セカンダリ可用性グループ内のセカンダリ レプリカに対してバックアップを実行することはできません。 グローバル プライマリ レプリカと直接通信するレプリカのみがバックアップ操作を実行できます。
SQL Server 2025 の新機能
SQL Server 2025 (17.x) プレビュー以降では、既存のコピー専用バックアップとトランザクション ログ バックアップに加えて、すべてのセカンダリ レプリカで完全バックアップと差分バックアップを実行することもできます。
セカンダリ レプリカでバックアップを有効にするには、次のトレース フラグを使用します。
- トレース フラグ 3261: セカンダリ レプリカでの差分バックアップを有効にします。
- トレース フラグ 3262: セカンダリ レプリカでの完全バックアップを有効にします。
可用性グループ (プライマリを含む) 内のすべてのレプリカで関連するトレース フラグを有効にして、フェールオーバー後もセカンダリ レプリカのバックアップを続行します。
たとえば、セカンダリ レプリカで差分バックアップを有効にするには、次のコマンドを実行します。
DBCC TRACEON (3261, -1);
注意
完全バックアップと差分バックアップの作成はプレビュー段階であり、現在は SQL Server 2025 (17.x) プレビューでのみ使用できます。
バックアップ ジョブの実行場所の構成
セカンダリ レプリカでバックアップを実行してプライマリ運用サーバーからバックアップ ワークロードをオフロードすると、非常に大きな利点があります。 ただし、セカンダリ レプリカでバックアップを実行する場合は、バックアップ ジョブを実行する場所を決定するプロセスは非常に複雑です。 これに対処するには、バックアップ ジョブを実行する場所を次のように構成します。
可用性グループを構成して、バックアップを優先的に実行する可用性レプリカを指定します。 詳細については、CREATE AVAILABILITY GROUP または ALTER AVAILABILITY GROUP のパラメーターのAUTOMATED_BACKUP_PREFERENCEとBACKUP_PRIORITYを参照してください。
バックアップの実行の候補である可用性レプリカをホストするすべてのサーバー インスタンス上のすべての可用性データベースに対して、スクリプト化されたバックアップ ジョブを作成します。 詳細については、「Always On 可用性グループのセカンダリ レプリカでバックアップを構成する」の「補足情報: セカンダリ レプリカでのバックアップの構成後」セクションを参照してください。