Sql-Server

在 2008r2 上刪除測試數據庫並從 Prod 數據庫恢復的簡單方法

  • January 3, 2018

我在生產伺服器上有一個生產數據庫實例,在測試伺服器上有一個測試數據庫實例。我需要每天將生產數據庫恢復到測試實例。

我需要的:

LOOP through Prod DB 
If DB name exists in Test Drop the test database
Restore DB from Prod
Next in LOOP

SQLServers 複製數據庫嚮導似乎做了我想要的,但它在自定義數據庫角色上出錯,顯然是 2008r2 的問題。

Apex Backup 也出現錯誤。

每天都會對生產數據庫進行備份,因此我也可以刪除測試數據庫並從這些 BAK 文件中恢復。

有沒有簡單的方法來做我需要做的事情?

PS:我不是DBA,我是必須做DBA工作的開發人員,所以請原諒我的無知。

作為一項建議,我建議切換到O​​la Hallengren 維護解決方案來執行備份和其他一些管理任務,這真的很容易配置。執行主腳本維護解決方案,安排所需的工作,然後離開。我希望將備份複製到與生產伺服器不同的伺服器。

然後,從測試伺服器安排恢復作業以恢復這些每日備份。該作業至少有 2 個步驟,刪除數據庫並恢復它。也許你會想要添加一些清理步驟來清理或屏蔽一些不應該用於測試的關鍵數據,替換電子郵件以避免向客戶發送電子郵件之類的東西。甚至可能從更大的表中刪除一些數據以擁有更小的數據庫。哎呀,也許在某些情況下,僅僅擁有數據庫的骨架就足夠了。

如果數據庫很少,可以手動處理。如果沒有,您可以按照評論使用dbatools,這是一組對管理任務非常有用的 powershell 腳本。或者您可以線上搜尋,有很多可用選項、3rd 方工具、您需要根據需要調整的腳本等。

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