本系列文章是我在sqlskill.com的PAUL的博客看到的,很多誤區都比較具有典型性和代表性,原文來自T-SQL Tuesday #11: Misconceptions about.... EVERYTHING!!,經過我們團隊的翻譯和整理發布在AgileSharp和博客園上。希望對大家有所幫助。
誤區 #3: 即時文件初始化特性可以在SQL Server中 a)開啟 和 b)關閉
a)是不允許的 b)是允許的
即時文件初始化是一個在SQL Server 2005以及之上的版本鮮為人知的特性。這個特性允許數據文件(僅僅是數據文件,不包括日志文件)初始化的過程跳過填0初始化過程。這種方式是在發生災難時大大減少Downtime的好辦法---在恢復數據庫時由於免去了填0初始化的過程而直接開始恢復過程。
我之前已經寫過關於即時文件初始化誤區的文章了(見Misconceptions around instant initialization),但這並沒有談到這方面誤區。
你並不能在SQL Server中開啟這個特性。在SQL Server啟動時會檢查啟動SQL Server的賬戶是否擁有適當的Windows權限(也就是“執行卷維護任務”這個權限),當啟動SQL Server實例的賬戶擁有這個權限後,這個特性就會針對這個實例開啟,見圖1.Kimberly有一篇關於講述如何開啟這個特性細節的文章Instant Initialization - What, Why, and How。
圖1.開啟執行卷維護任務(Perform Volume Maintenance Tasks )
你可以在SQL Server中查看即時文件初始化特性是否開始,通過追蹤標志3004(3605可以強制輸出錯誤信息)創建一個數據庫,在日志中查看是否有填0操作,如果即時文件初始化有填0初始化操作,則這個特性在SQL Server中並沒有開啟。
你可以在SQL Server中通過追蹤標志1806設置為ON來暫時停止即時文件初始化特性。如果你想永久的禁止這個特性,請把啟動SQL Server賬戶中”執行卷維護任務”這個權限刪除。
這兩個追蹤標志是在SQL Server Premier Field Engineer Blog和How and Why to Enable Instant File Initialization這兩篇博文中首次被提到的。
如果可以的話,盡量打開這個特性。