Backup
恢復到網路路徑時啟用 SQL 即時文件初始化
我們有一個大型只讀 SQL 數據庫 (SQL 2012),我們正在將其還原到 NAS,作為目前的管道膠帶解決方案。我想知道為什麼恢復過程似乎掛起。
我一路走來的部分指導來自:
http://www.brentozar.com/archive/2012/01/sql-server-databases-on-network-shares-nas/ 和 http://www.brentozar.com/blitz/instant-file-initialization/
我相信我已經確定在創建或恢復到 UNC 路徑時即時文件初始化可能不可用(或者可能需要額外的設置)。下面的 SQL 程式碼展示了
DBCC TRACEON(3004,3605,-1) GO CREATE DATABASE [DestinedForGreatness] GO DROP DATABASE DestinedForGreatness GO EXEC sp_readerrorlog GO CREATE DATABASE [DestinedForGreatness] ON PRIMARY ( NAME = N’DestinedForGreatness’, FILENAME = N’\\LittleBlackBox\SQL2012data\MSSQL\Data\DestinedForGreatness.mdf’ ) LOG ON ( NAME = N’DestinedForGreatness_log’, FILENAME = N’\\LittleBlackBox\SQL2012data\MSSQL\Data\DestinedForGreatness_log.ldf’) GO DROP DATABASE DestinedForGreatness GO EXEC sp_readerrorlog GO DBCC TRACEOFF(3004,3605,-1)
我可以在本地創建數據庫時首先看到它不會 0 從錯誤日誌中填充 MDF。在第二種情況下,它確實如此。
我很想知道是否有任何解決方法可以利用 IFI。在我正在恢復的伺服器上應用 Windows 安全設置來解決這個問題嗎?
記錄了“即時文件初始化”(又名。
SetFileValidData
)的這種限制:注意 該文件不能是網路文件,也不能是壓縮、稀疏或事務處理的。
在沒有啟用即時文件初始化的情況下在 SQL Server 上恢復 BIG 數據庫是一個錯誤。在沒有 IFI 的情況下進行恢復所花費的時間遠大於在啟用 IFI 的情況下進行恢復所花費的時間。
啟用 IFI 後,此權限可防止 SQL Server 在您創建或擴展數據文件時“清零”新空間。節省了這段時間,從而使您的恢復速度更快。
您可以使用以下查詢來檢查您的還原操作完成了多少
select percent_completed from sys.dm_exec_requests where session_id=xxx---restore session id
如果可以嘗試,請使用 NO IFI 開始恢復,您會看到
percent_completed
在很短的時間內為 0。而這將立即開始顯示一些價值。所以底線 IFI 是必須的。