Sql-Server

如何從 blob 容器中自動恢復 10 個 .bak 文件中的最新文件?

  • February 14, 2022

我正在嘗試每天恢復一次另一台伺服器上的事務數據庫副本以用於報告目的。SQL Server 就是實例。

原始數據庫是可用性組的成員。我們無法擴展可用性組。使用 Ola Hallengren 腳本每天進行一次完整備份。我試過使用來自 Primary 的 Log Shipping,但它破壞了 Ola 的備份工作,所以我們不能使用它。

備份被發送到具有反映 Ola 目錄結構的子文件夾的 blob 容器。

如何從 blob 中的目錄中僅下載最新的 .bak 文件並在現有數據庫中恢復它?該程序應該在 SQL 作業中執行?

感謝您的幫助!

您可以只使用 dbatool 的(Powershell cmdlet)Restore-DbaDatabase來執行您想要的自動化。這 -使用 dbatools 從 Azure Blob 還原備份將幫助您入門。

或者,您也可以使用基於 tsql 的解決方案sp_restoregene

你應該仍然可以進行日誌傳送,如果我是你並且我無法擴展可用性組,我可能仍然會嘗試走這條路線。所有日誌傳送最簡單的方法是在一個實例上進行日誌備份並還原到另一個實例。請記住,日誌備份基本上是增量備份,因此您需要以正確的順序依次進行每個備份才能繼續在目標上恢復。人們經常遇到的問題是他們打開了日誌傳送,但繼續使用原始備份作業進行備份。因此,打破了他們的日誌鏈。

你有幾個選擇…

  1. 停止在指定數據庫上使用 Ola 腳本進行日誌備份。
  2. 繼續使用 Ola 的腳本,並使用這些日誌備份在目標上進行還原。
  3. 查看這篇文章,它表明 Ola 的腳本足夠聰明,可以排除 Log Shipped 數據庫。我不需要驗證這是否有效,但值得一讀。

我可能錯過了一些選擇。但是,我認為沒有理由仍然不能進行日誌傳送。

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