Backup

Ola Hallengreen 備份重試

  • January 23, 2019

如果出現故障,是否有辦法使用 Ola Hallengren 的備份腳本進行自動備份重試以僅備份一個數據庫?尋找一種無需重新執行整個腳本即可完成備份的方法。

不幸的是,如果腳本失敗,腳本本身沒有內置路徑來重試單個數據庫進行備份。您可以在 Ola 的網站上查看整個腳本選項

我建議(儘管可能有點痛苦)是為每個數據庫設置一個單獨的工作步驟並指定要備份的數據庫。然後在每個步驟中,您可以添加重試選項。

您可以先創建一兩個,然後點擊 SQL 代理中的腳本按鈕。從那裡您可以複製和粘貼創建每個後續作業步驟的 SQL 部分並進行一些更改,而不是通過 GUI 手動修改作業步驟。

從那裡我將開始評估 Ola 的腳本是否滿足我的組織需求,並且我可能會開始尋找其他備份選項,例如DBAToolsMinionware或自定義備份腳本。您也可以更改 Ola 腳本,但這會更加困難。還有一些付費工具可能值得評估。

您可以查詢dbo.CommandLog表以獲取成功的備份(因為您使用的是 Ola 的備份解決方案),甚至可以查詢 msdb 歷史記錄來仔細檢查備份是否確實成功。

基於此,如果備份失敗,那麼您可以重試備份。

已經送出了一個問題(它是為了備份到 Azure URL-但 MS 發布了一個用於處理間歇性故障的熱修復程序-因此問題已關閉),但處理伺服器端錯誤的問題是使用錯誤變數-它會給出你只有最後一個錯誤。

另外,請參閱Ola Hallengren 的維護解決方案不會備份數據庫的三種情況

現在,如果您使用 dbatools(我強烈推薦)

  • 仍然繼續使用 Ola 的解決方案。您應該 Invoke-DbaQuery在查詢中使用和開關-Query 'EXECUTE dbo.DatabaseBackup ..'一起使用。-EnableException SomeExceptionErrorMessage然後,您可以只使用該變數SomeExceptionErrorMessage來檢查錯誤或警告並實現重試邏輯。
  • 切換到使用 dbatools native - Backup-DbaDatabasewith -EnableException SomeExceptionErrorMessageswitch。

或者,您可以在您的 sql 代理作業中添加一個額外的步驟來檢查commandLog or msdb for successful backup並在此基礎上再次呼叫您的備份作業。

引用自:https://dba.stackexchange.com/questions/227874