本系列文章是我在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這兩篇博文中首次被提到的。
如果可以的話,盡量開啟這個特性。