回答:
レプリカでは、コピーのみとトランザクションログのバックアップのみが可能です
本当です。
これは、トランザクションログの復元が必要な場合、プライマリで完全バックアップを実行する必要があることを意味しますか?
短い答えYES。
BOLから:
可用性モード(同期コミットまたは非同期コミット)に関係なく、レプリカ(プライマリまたはセカンダリ)で行われたログバックアップ全体で一貫したログチェーンが保証されます。
したがって、質問に答えるために、COPY_ONLYバックアップは、T-logバックアップを含む(ポイントインタイムリストアを実行する)リストアの一部にすることはできません。その全体の要点は、通常のバックアップチェーンの外にバックアップセットを置き、復元シーケンスに影響を与えないようにすることです。
プライマリデータベースでフルバックアップを実行する必要があります(copy_onlyバックアップにすることはできません)。
CAVEATを使用してプライマリまたはセカンダリのいずれかでTログのバックアップのみを実行できます。これは、PRIMARYのLSNを台無しにすることはありません。つまり、可用性グループのどこでログバックアップをとっても、LSNの一貫性を保ちます。 。
最善の方法はsys.fn_hadr_backup_is_preferred_replica
、ログバックアップがログバックアップのAvailablityグループバックアップ設定を使用するようにチェックすることです。
参照:AlwaysOn可用性グループの読み取り専用セカンダリレプリカを使用したトランザクションログバックアップの実行-パート1
コピーのみの完全バックアップの上にトランザクションログを復元できます。つまり、セカンダリレプリカのコピーのみのバックアップをトランザクションログと共に使用して、ポイントインタイムリカバリを実行できます。
ただし、セカンダリレプリカでコピーのみのバックアップのみを実行している場合、プライマリレプリカの差分ビットマップをリセットするための「実際の」バックアップはありません。差分バックアップがリカバリ戦略の一部である場合は、プライマリで完全バックアップを取る必要があります。差分バックアップを使用したい場合は、差分ベースとして使用するプライマリレプリカで完全バックアップを作成する必要があります。
コピーのみのバックアップと、必要な時点までのコピーのみにまたがるログバックアップを使用して、テストに成功しました。すべてのログバックアップが必要です。したがって、バックアップの実行に使用しているレプリカが複数ある場合(フェイルオーバーが発生した場合など)、それらを確認して追跡する必要があります。テストでは、すべてのバックアップが中央の場所に送られるように設定するだけです。SQLは、AG内のすべてのノードでログバックアップのログチェーンを維持します。ここに素晴らしい記事があります... http://info.tricoresolutions.com/blog/understanding-backups-with-sql-server-alwayson-high-availability-mirrors
私はトピックについて多くの混乱を抱えていました-AGクラスターでは、コピー後のログバックアップの復元-完全バックアップのみ。
現在は正常に動作しています。セカンダリレプリカからのコピーのみのバックアップを使用できます。
USE [master]
RESTORE DATABASE [xxxxx_testDB] FROM
DISK = N'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_FULL_COPY_ONLY.bak'
WITH FILE = 1,
MOVE N'xxxxx_testDB' TO N'D:\testdb\xxxxx_testDB.mdf',
MOVE N'xxxxx_testDB_log' TO N'D:\testdb\xxxxx_testDB.ldf',
NORECOVERY
GO
RESTORE LOG xxxxx_testDB
FROM DISK = 'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_LOG_1.trn'
WITH NORECOVERY;
GO
RESTORE LOG xxxxx_testDB
FROM DISK = 'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_LOG_2.trn'
WITH NORECOVERY;
GO
RESTORE DATABASE xxxxx_testDB WITH RECOVERY