簡體   English   中英

在現有數據庫上恢復 Azure SQL 數據庫以維護備份歷史記錄

[英]Restore Azure SQL DB over an existing DB to maintain backup history

我正在為我們的 Web 應用程序設置 Azure SQL 數據庫。 我們啟用了時間點保留 (PITR) 和長期保留 (LTR)。 我們的流程是將備份保留 1 年。

我們需要定期通過應用 SQL 腳本來升級數據庫。 有時升級腳本有問題,升級失敗。 我們需要將數據庫回滾到以前的版本。

為了回滾數據庫,我嘗試了恢復功能。 但是,恢復功能似乎只創建新數據庫; 這就是問題所在。 恢復到新數據庫並刪除舊數據庫效果很好,但我們丟失了所有備份歷史記錄。 看來備份對數據庫來說很累(可能是 ResourceId)。

那么,我如何使用 Azure SQL DB 並定期恢復 DB 並仍然保留所有備份歷史記錄?

不幸的是,從 Azure SQL 數據庫中的備份還原總是會創建一個新數據庫。 這里的秘訣可能是將新恢復的數據庫重命名為原始數據庫的名稱。 您甚至會看到恢復的數據庫一旦重命名它就會顯示所有安全建議,原始數據庫的自動調整建議。

所以刪除現有數據庫,恢復數據庫,並重命名為原始數據庫。

您可以參考此文檔Recover an Azure SQL database using automatic database backups ,它給出了所有恢復都在創建新數據庫的答案。

默認情況下,SQL 數據庫備份存儲在異地復制 blob 存儲 (RA-GRS) 中。 以下選項可用於使用自動數據庫備份進行數據庫恢復: 在同一 SQL 數據庫服務器上創建新數據庫,該數據庫服務器已恢復到保留期內的指定時間點。

  • 在同一個 SQL 數據庫服務器上創建數據庫恢復到刪除時間的刪除數據庫。
  • 在恢復到最近備份點的同一區域中的任何 SQL 數據庫服務器上創建一個新數據庫。
  • 在恢復到最近復制備份點的任何其他區域中的任何 SQL 數據庫服務器上創建一個新數據庫。

如果您配置了備份長期保留,您還可以從任何 SQL 數據庫服務器上的任何 LTR 備份創建新數據庫。

重要的

您不能在還原期間覆蓋現有數據庫。

“那么,我怎樣才能使用 Azure SQL DB 並定期恢復 DB 並仍然保留所有備份歷史記錄?”

您可以使用數據庫替換

如果還原的數據庫旨在替換原始數據庫,則應指定原始數據庫的計算大小和服務層。 然后,您可以使用 T-SQL 中的ALTER DATABASE命令重命名原始數據庫並為恢復的數據庫賦予原始名稱。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM