SQL Server 2005配置 Windows 專家解答
此文章主要向大家講述的是正確為SQL Server 2005配置 Windows 即時(shí)初始化的實(shí)際操作流程,在實(shí)際操作中SQL Server 2005數(shù)據(jù)庫支持?jǐn)?shù)據(jù)庫,即時(shí)文件初始化(Instant File Initialization),這種即時(shí)文件初始化可以跳過清零數(shù)據(jù)的頁面。
這樣做可以在執(zhí)行一些操作,比如創(chuàng)建數(shù)據(jù)庫,增加文件到現(xiàn)有的數(shù)據(jù)庫中,手動(dòng)、通過自動(dòng)增長(autogro
SQL Server 2005支持?jǐn)?shù)據(jù)庫即時(shí)文件初始化(Instant File Initialization),這種即時(shí)文件初始化可以跳過清零數(shù)據(jù)的頁面,這樣做可以在執(zhí)行一些操作,比如創(chuàng)建數(shù)據(jù)庫,增加文件到現(xiàn)有的數(shù)據(jù)庫中,手動(dòng)、通過自動(dòng)增長(autogrowth)或保存一個(gè)數(shù)據(jù)庫或文件組來增大現(xiàn)有數(shù)據(jù)庫文件時(shí),減少時(shí)間。但是,我們?nèi)绾未_定SQL Server正在使用這個(gè)功能?
專家解答
在SQL Server以前的版本中,數(shù)據(jù)和日志文件一開始是通過在你執(zhí)行之前提到的某項(xiàng)操作時(shí),用零歸檔這些文件來初始化的。在災(zāi)難備份和還原操作中,這是非常關(guān)鍵的,尤其是處理非常大的數(shù)據(jù)庫時(shí)。
對SQL Server而言,即時(shí)文件初始化已經(jīng)引進(jìn)了。而這所做的是,它跳過磁盤上的零數(shù)據(jù),因此不重寫在磁盤上寫過的先前的數(shù)據(jù)。操作系統(tǒng)只分配磁盤空間,但是文件的內(nèi)容實(shí)際上是原先在磁盤上寫的。這個(gè)功能對于運(yùn)行在NTFS文件系統(tǒng)的Windows Server 2003或者Windows XP上的所有SQL Server 2005版本都適用。
即使它是可用的,你的實(shí)例也可能不能SQL Server 2005配置使用。要解決這個(gè)問題,你應(yīng)該給你的SQL Server服務(wù)賬號(hào)或者SQLServerMSSQLUser$instancename這個(gè)本地組
SE_MANAGE_VOLUME_NAME的權(quán)限。SQLServerMSSQLUser$instancename這個(gè)本地組創(chuàng)建于你安裝SQL Server 2005并把SQL Server服務(wù)賬號(hào)加到這個(gè)數(shù)據(jù)庫中。要做到這些,服務(wù)賬號(hào)和本地組需要被授予“Perform Volume Maintenance Task”的本地安全權(quán)限。默認(rèn)情況下,本地管理員組已經(jīng)有這個(gè)許可,所以如果你的服務(wù)賬號(hào)已經(jīng)是這個(gè)組的一員,那么你沒必要去做什么事情。
請注意,這只適用于數(shù)據(jù)文件而不適用于日志文件,所以如果你有大量的事務(wù)日志文件,而這些文件又作為你數(shù)據(jù)庫備份的一部分,那么數(shù)據(jù)庫文件會(huì)即時(shí)創(chuàng)建而日志文件不會(huì)。日志文件在被寫回磁盤之前需要被清零。
注意事項(xiàng)
即使這個(gè)改進(jìn)了autogrowth事件的文件增長性能,它不應(yīng)作為正確排列你數(shù)據(jù)庫文件來達(dá)到最小化的替代方法。如果不能避免,使其自動(dòng)增長。另外,當(dāng)SQL Server服務(wù)在運(yùn)行時(shí),如果你把這個(gè)權(quán)限給服務(wù)賬號(hào),那么為了使這個(gè)功能生效你必須停止并重啟服務(wù)。你也可以通過運(yùn)行g(shù)pupdate /force命令立即在安全策略中應(yīng)用修改。
這樣做也有安全風(fēng)險(xiǎn)。存在這樣的可能性,那就是你會(huì)通過未授權(quán)的賬戶訪問磁盤上的非零數(shù)據(jù)。想像一個(gè)數(shù)據(jù)文件沒有在磁盤上清零的被刪除的數(shù)據(jù)庫!如果因?yàn)樽杂稍L問控制列表(DACL)僅用于數(shù)據(jù)文件被SQL Server使用時(shí)而導(dǎo)致沒有自由訪問控制列表被定義在文件上,那么任何用戶都可以訪問這些數(shù)據(jù)。如果披露已刪內(nèi)容的可能性是受到關(guān)注的,那么建議當(dāng)自由訪問控制列表從SQL Server中分離時(shí),在你的數(shù)據(jù)文件或備份上明確地使用受限制的自由訪問控制列表。
提示
SQL Server 2005配置實(shí)例來使用即時(shí)文件初始化。
在一個(gè)SQL Server 2005實(shí)例上,通過還原一個(gè)大型數(shù)據(jù)庫(任何大于100GB)來測試它。
在一個(gè)測試服務(wù)器上,不經(jīng)過許可還原數(shù)據(jù)庫備份并且衡量還原的時(shí)間。
刪除這個(gè)還原的數(shù)據(jù)庫并停止SQL Server服務(wù)。
把“Perform Volume Maintenance Task”授權(quán)給SQL Server服務(wù)賬號(hào)并重啟服務(wù)。
再次還原數(shù)據(jù)庫備份并且衡量還原的時(shí)間。
【編輯推薦】
- SQL Server創(chuàng)建job要用到的鏈接有哪些?
- SQL Server排序遇到NULL,不怕不帕!
- SQL Server行轉(zhuǎn)列的什么情況下被用?
- SQL Server數(shù)據(jù)庫和Oracle行轉(zhuǎn)列的特殊方案描述
- SQL Server 2005中synonyms的正確用法