Sql-Server

將數據庫從生產環境複製到開發環境的最佳方法是什麼?

  • December 20, 2020

我們在我們公司使用 SQL Server 作為 DBMS。我有一個每月工作的預定工作。該作業在月底將生產伺服器上的每個數據庫恢復到開發伺服器,但開發伺服器上的磁碟不足。我截斷了一些對開發團隊不重要的大表,並在恢復完成後收縮所有數據庫。縮小數據庫需要很長時間才能增加開發伺服器上的可用磁碟空間。當然,這不是好的解決方案。我需要一個更好或最好的解決方案。我需要你的建議。我怎樣才能使用更有效的方法?最好的解決方案是什麼?

Omer,聽起來您是在說開發伺服器上沒有足夠的空間來從 prod 還原所有數據庫,而無需截斷某些表並縮小數據庫以恢復空間。我不確定你的意思是不是增加開發伺服器上的驅動器大小是一種選擇。那部分不清楚。

我會推動增加驅動器的大小,並向您的儲存團隊或 Windows 管理員解釋您需要空間,以避免在還原過程中執行破壞性的收縮操作。

您不應該縮小數據庫,這是一項昂貴且不必要的操作。截斷表格很好,此時您已經在內部釋放了一些已用空間。因此,如果在截斷後在該數據庫中添加了更多數據,它將首先重用釋放的空間,而不是從驅動器中佔用更多空間。

如果您想要一個更手動的工具來保持跨伺服器的數據庫同步,我發現SQL Examiner Suite是一個簡單而出色的工具。

如果你想要更自動化的東西,你應該研究單向複製。您可以使用事務複製在生產伺服器和開發伺服器之間實現近乎實時的同步,或者如果您想繼續僅在固定內部(例如每月)更新它,您可以使用快照複製

使用任一解決方案,您都可以更精細地選擇要在開發環境中保持同步的表,因此這將消除您的空間問題以及執行諸如 Shrink 之類的繁重操作的需要。

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