Sql-Server-2012

在sql server中恢復以前版本的數據庫

  • March 26, 2021

我需要您幫助我在 SQL Server 上恢復以前版本的數據庫。

上週我用它的生產副本恢復了 DEV 伺服器中的數據庫“A”,但沒有意識到 DEV 中的這個數據庫“A”沒有備份,並且已經有一些開發工作正在進行中,現在失去了!

無論如何在 DEV 伺服器中恢復以前版本的“A”數據庫?

任何幫助或建議都會非常棒!

謝謝!

如果以下所有問題的答案均為“否”,則有機會

  1. Prod 和 Dev 中的數據庫名稱是否完全相同?
  2. 在開發伺服器上恢復數據庫 A 時,您是否明確選擇將數據和日誌文件移動到原始開發數據庫 A 所在的同一路徑(並覆蓋它們)?
  3. 在從 prod 備份恢復之前,您是否將數據庫 A 放到了 Dev 框上?

如果上述所有問題的答案都是“否”,那麼您的還原有可能沒有覆蓋開發伺服器上數據庫 A 的原始文件。

從在不同伺服器/數據庫上進行的備份還原數據庫時,SQL Server 在與備份所屬的原始數據庫(在您的情況下為數據庫 A 的產品副本)相同的路徑上創建數據和日誌文件(除非在 RESTORE 命令的 MOVE 子句中明確提及)。因此,如果 Prod 上的數據和日誌文件的路徑與 Dev 框不同,則還原操作不會覆蓋文件,除非您在還原命令中明確指定 WITH MOVE ‘filename’ TO ‘path’ 以及選項 REPLACE .

在這種情況下,請檢查開發伺服器上的本地驅動器,並查看原始數據庫 A 的文件是否仍然存在(假設數據庫 A 上的文件路徑在開發盒上與產品上不同)。如果您成功找到了孤立文件,您可以將它們附加為不同的數據庫(例如:A_dev)。

如果數據庫在開發伺服器上恢復並且數據庫備份未計劃在開發伺服器上執行,這意味著沒有備份文件可用於以前執行的數據庫,那麼您將無法恢復以前的數據庫。

您可能會要求您的開發團隊再次為 SQL 程式碼重新部署這些東西。可能,這將學習基於所需頻率(每天/每週)在開發伺服器上安排備份。

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