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