簡體   English   中英

在另一個SQL Server上執行備份時,事務日志文件的大小會保留下來

[英]Transaction log file size carry over when performing a backup on another SQL Server

我們的生產服務器具有與.mdf文件相關聯的大.ldf文件(300 gb)。 在DEV服務器上,我們會不時使用生產備份來還原DEV數據庫。 因為我們的DEV服務器應該沒有與其關聯的許多事務,但是.ldf文件也是300 GB。 我將.ldf文件縮小為50個演出。 從生產備份還原后,DEV .ldf文件會再次增長嗎?

還原數據庫備份時,數據庫和日志文件的大小將與原始數據庫的大小相同。 因此,如果prod中的文件大小為300 GB,則將其還原到另一個數據庫/服務器時將為300 GB。 將prod數據庫備份還原到開發環境后,通常會做兩件事-縮小日志文件大小,並將恢復模型設置為SIMPLE(是否執行恢復取決於您的需求/要求)。

由於您將文件大小減小到50 GB,因此由於多種原因,它可能會增長到超過50 GB,但最值得注意的是:

  • 您創建一個生成大量日志的事務
  • 您具有完整的恢復模型,並且會生成大量日志,並且永遠不會進行日志備份
  • 您啟用某種復制功能(復制,CDC等),並且從不運行logreader代理。

從生產備份還原后,DEV .ldf文件會再次增長嗎?

是的,如果您的生產數據庫日志文件仍然具有這樣的大小-300 GB,則dev上的數據庫將再次具有該日志文件。

我們不知道您的實時數據庫的基准是什么。

但是,如果您的生產數據庫沒有常規的繁瑣的DML操作導致長時間運行的事務,請考慮將生產時日志文件的大小減小到較小的大小,例如減小到50 GB。

同樣,這種減少將顯着減少還原時間,因為LDF文件在RESTORE開始寫入實際數據之前將在內部進行清零。 這意味着SQL Server首先必須創建300 GB的文件並在其中寫入零。 與日志文件相比,數據文件可以從“即時文件初始化”中受益,並且如果SQL Server實例服務帳戶正確配置為具有足夠的權限,則可以跳過這種歸零。

否則,每次當您還原到開發環境時,都需要執行以下維護任務:

USE yourDev
ALTER DATABASE yourDev SET RECOVERY SIMPLE
-- assumption: only one ldf in db
DBCC SHRINKFILE(2, 1024)

您可能具有正在運行且正在運行的后台任務,或者有許多打開(長時間運行)的事務在阻止日志的備份和收縮。 我敢打賭,您的新機器也會發生同樣的情況。 您需要找出導致事務日志減少的原因。 您不必自己縮小它。

暫無
暫無

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

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