障害が発生した場合に、1つのデータベースのみをバックアップするために、Ola Hallengrenのバックアップスクリプトを利用して自動バックアップを再試行する方法はありますか?スクリプト全体を再実行せずにバックアップを完了する方法を探しています。
残念ながら、スクリプト自体には、失敗した場合にバックアップのために単一のDBを再試行する組み込みパスがありません。 スクリプトのオプション全体をOlaのサイトで確認できます 。
私がお勧めするのは(少し面倒かもしれませんが)、DBごとに個別のジョブステップを用意し、バックアップするDBを指定することです。次に、各ステップで再試行オプションを追加できます。
おそらく1つまたは2つを作成してから、SQLエージェントのスクリプトボタンをクリックします。そこから、GUIを介して手動でジョブステップを変更するのではなく、後続の各ジョブステップを作成し、いくつかの変更を加えるSQLのセクションをコピーして貼り付けることができます。
そこから、Olaのスクリプトが私の組織のニーズを満たしているかどうかの評価を開始し、 DBATools または Minionware またはカスタムバックアップスクリプトなどの他のバックアップオプションを検討し始める場合があります。 Olaスクリプトを変更することもできますが、これはかなり困難になります。評価する価値のある有料ツールもあります。
dbo.CommandLog
テーブルにクエリを実行して、成功したバックアップ(Olaのバックアップソリューションを使用しているため)またはmsdb履歴を照会して、バックアップが実際に成功したかどうかを再確認できます。
これに基づいて、バックアップが失敗した場合は、バックアップを再試行できます。
既に問題が報告されていました (これはAzure URLへのバックアップ用でしたが、MSは ホットフィックスをリリースしました 断続的な障害を処理するため-問題はクローズされます)、しかし サーバー側のエラー の処理に関する問題は、エラー変数を使用することです-最後のエラーのみが表示されます。
また、 を参照してください。OlaHallengrenのMaintenance Solutionがデータベースをバックアップしない3つのケース
ここで、dbatoolsを使用する場合(これを強くお勧めします)
Invoke-DbaQuery
を使用し、クエリでは-Query 'EXECUTE dbo.DatabaseBackup ..'
を-EnableException SomeExceptionErrorMessage
スイッチとともに使用する必要があります。次に、変数SomeExceptionErrorMessage
を使用してエラーや警告を確認し、再試行ロジックを実装します。Backup-DbaDatabase
スイッチ付きの-EnableException SomeExceptionErrorMessage
。または、SQLエージェントジョブにステップを追加してcommandLog or msdb for successful backup
を確認し、それに基づいてバックアップジョブを再度呼び出すことができます。