AGバックアップのルールである迷路を理解しようとしています。マシンTST01/TST02にOlaHallengrenのスクリプトがインストールされています。 02はバックアップに推奨されるレプリカです。私はAdventureWorksを含むAGと、AGの外部にある1つのデータベース(DBAutility)を持っています。
TST01のSQLエージェントジョブに以下があります。
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d master -Q “EXECUTE [dbo].[DatabaseBackup] @Databases = ‘User_Databases’, @CopyOnly = ‘Y’,@Directory = N’C:\MyDirectory\’, @BackupType = ‘FULL’, @Verify = ‘Y’, @CleanupTime = 168, @CheckSum = ‘Y’, @LogToTable = ‘Y'” -b
TST01でジョブを実行すると、TST01から取得され、そのマシンに書き込まれたDBAUtilityのバックアップが取得されます。 AdventureWorksのバックアップがありません。私はブレントオザールからの投稿からこのアプローチを取っています。
OlaにはAGバックアップ用の他のパラメーターがあることは知っていますが、それを期待どおりに機能させることもできなかったようです。
私はこれを可用性グループのバックアップで頻繁に行います(Olaのスクリプトを使用)。 @CopyOnly = 'Y'があり、バックアップの優先レプリカとしてセカンダリサーバーが設定されているため、Olaのスクリプトはプライマリ上のこのバックアップを無視し、FULL_COPY_ONLYバックアップにセカンダリサーバーを使用します(スクリプトがそこで実行されている場合) 。
@CopyOnly = 'Y'パラメーターを廃止すると、スクリプトはプライマリサーバーで完全バックアップを取ります(セカンダリではFULLとDIFFは許可されません)。
Olaのスクリプトは、可用性グループに関しては賢いです。優先セカンダリを指定している場合、彼のスクリプトは、プライマリで実行する必要のないバックアップにそれを使用しようとします。このため、プライマリサーバーとセカンダリサーバーで同じバックアップジョブを作成することになり、各サーバーの現在のステータスに基づいて適切なバックアップを実行します。