web-dev-qa-db-ja.com

Ola Hallengrenバックアップの再試行

障害が発生した場合に、1つのデータベースのみをバックアップするために、Ola Hallengrenのバックアップスクリプトを利用して自動バックアップを再試行する方法はありますか?スクリプト全体を再実行せずにバックアップを完了する方法を探しています。

4
Jessica

残念ながら、スクリプト自体には、失敗した場合にバックアップのために単一のDBを再試行する組み込みパスがありません。 スクリプトのオプション全体をOlaのサイトで確認できます

私がお勧めするのは(少し面倒かもしれませんが)、DBごとに個別のジョブステップを用意し、バックアップするDBを指定することです。次に、各ステップで再試行オプションを追加できます。

おそらく1つまたは2つを作成してから、SQLエージェントのスクリプトボタンをクリックします。そこから、GUIを介して手動でジョブステップを変更するのではなく、後続の各ジョブステップを作成し、いくつかの変更を加えるSQLのセクションをコピーして貼り付けることができます。

そこから、Olaのスクリプトが私の組織のニーズを満たしているかどうかの評価を開始し、 DBATools または Minionware またはカスタムバックアップスクリプトなどの他のバックアップオプションを検討し始める場合があります。 Olaスクリプトを変更することもできますが、これはかなり困難になります。評価する価値のある有料ツールもあります。

3
Shaulinator

dbo.CommandLogテーブルにクエリを実行して、成功したバックアップ(Olaのバックアップソリューションを使用しているため)またはmsdb履歴を照会して、バックアップが実際に成功したかどうかを再確認できます。

これに基づいて、バックアップが失敗した場合は、バックアップを再試行できます。

既に問題が報告されていました (これはAzure URLへのバックアップ用でしたが、MSは ホットフィックスをリリースしました 断続的な障害を処理するため-問題はクローズされます)、しかし サーバー側のエラー の処理に関する問題は、エラー変数を使用することです-最後のエラーのみが表示されます。

また、 を参照してください。OlaHallengrenのMaintenance Solutionがデータベースをバックアップしない3つのケース

ここで、dbatoolsを使用する場合(これを強くお勧めします)

  • Olaのソリューションを引き続き使用します。 Invoke-DbaQueryを使用し、クエリでは-Query 'EXECUTE dbo.DatabaseBackup ..'-EnableException SomeExceptionErrorMessageスイッチとともに使用する必要があります。次に、変数SomeExceptionErrorMessageを使用してエラーや警告を確認し、再試行ロジックを実装します。
  • Dbatoolsネイティブを使用するように切り替えます-Backup-DbaDatabaseスイッチ付きの-EnableException SomeExceptionErrorMessage

または、SQLエージェントジョブにステップを追加してcommandLog or msdb for successful backupを確認し、それに基づいてバックアップジョブを再度呼び出すことができます。

3
Kin Shah