(5.2.1)配置服务器参数——即时文件初始化(IFI)
關(guān)鍵詞:零填充,即時(shí)文件初始化,IFI
轉(zhuǎn)自:https://www.cnblogs.com/gaizai/p/3516905.html
?
概念:
所有新申請(qǐng)的空間,sql server都要以0來(lái)填充完磁盤文件數(shù)據(jù),以便造成安全隱患可以查看到只是邏輯刪除的舊數(shù)據(jù)。
初始化數(shù)據(jù)和日志文件以覆蓋之前刪除的文件遺留在磁盤上的任何現(xiàn)有數(shù)據(jù)。?執(zhí)行以下其中一項(xiàng)操作時(shí),應(yīng)首先通過(guò)零填充(用零填充)數(shù)據(jù)和日志文件來(lái)初始化這些文件:
- 創(chuàng)建數(shù)據(jù)庫(kù)。
- 向現(xiàn)有數(shù)據(jù)庫(kù)添加數(shù)據(jù)或日志文件。
- 增大現(xiàn)有文件的大小(包括自動(dòng)增長(zhǎng)操作)。
- 還原數(shù)據(jù)庫(kù)或文件組。
文件初始化會(huì)導(dǎo)致這些操作花費(fèi)更多時(shí)間。?但是,首次將數(shù)據(jù)寫入文件后,操作系統(tǒng)就不必用零來(lái)填充文件。
?
一.本文所涉及的內(nèi)容(Contents)
二.背景(Contexts)
??? 數(shù)據(jù)庫(kù)服務(wù)器在為表分配初始值的時(shí)候很慢,分配初始值40GB的數(shù)據(jù)文件,花了30多分鐘,一開始的時(shí)候一直認(rèn)為是服務(wù)器磁盤的寫入速度太慢造成的,后來(lái)經(jīng)過(guò)北京-宋沄劍的提醒:即時(shí)文件初始化(Instant File Initialization),設(shè)置這一選項(xiàng)之后,速度提升到了19秒,下面將描述這個(gè)優(yōu)化的設(shè)置過(guò)程。
三.基礎(chǔ)知識(shí)(Rudimentary Knowledge)
就數(shù)據(jù)庫(kù)而言,以下幾種情況需要對(duì)文件初始化:
1. 創(chuàng)建數(shù)據(jù)庫(kù);
2. 向現(xiàn)有數(shù)據(jù)庫(kù)中添加文件、日志或數(shù)據(jù);
3. 增大現(xiàn)有文件的大小(包括自動(dòng)增長(zhǎng)操作);
4. 還原數(shù)據(jù)庫(kù)或文件組;
執(zhí)行上面的操作,操作系統(tǒng)需要用零來(lái)填充文件進(jìn)行初始化。在 SQL Server 中,可以在瞬間對(duì)數(shù)據(jù)文件進(jìn)行初始化。即時(shí)文件初始化將回收已使用的磁盤空間而不使用零來(lái)填充該空間。而在向文件中寫入新數(shù)據(jù)時(shí),磁盤內(nèi)容將被覆蓋。日志文件不能立即初始化。
即時(shí)文件初始化功能僅在向 SQL Server (MSSQLSERVER) 服務(wù)帳戶授予了 SE_MANAGE_VOLUME_NAME 之后才可用。Windows Administrator 組的成員擁有此權(quán)限,并可以通過(guò)將其他用戶添加到【執(zhí)行卷維護(hù)任務(wù)】安全策略中來(lái)為其授予此權(quán)限。
四.實(shí)現(xiàn)過(guò)程(Process)
首先運(yùn)行g(shù)pedit.msc,按照Figure1的路徑,找到【執(zhí)行卷維護(hù)任務(wù)】,如Figure2所示,默認(rèn)的情況下它已經(jīng)設(shè)置了Administrators組的;
(Figure1:gpedit.msc)
(Figure2:執(zhí)行卷維護(hù)任務(wù))
接著運(yùn)行services.msc進(jìn)入服務(wù)設(shè)置,查看到SQL Server (MSSQLSERVER)的登陸用戶是【網(wǎng)絡(luò)服務(wù)】(如Figure3所示),這就是造成初始化40GB文件花費(fèi)了30多分鐘的原因了,因?yàn)椤揪W(wǎng)絡(luò)服務(wù)】不具備SE_MANAGE_VOLUME_NAME的權(quán)限(可查看Administrators組成員);
(Figure3:SQL Server (MSSQLSERVER))
雙擊SQL Server (MSSQLSERVER)服務(wù)進(jìn)入設(shè)置,在登陸的選項(xiàng)卡中可以看到帳號(hào)是:NT AUTHORITY\NETWORKSERVICE,如Figure4所示。
(Figure4:NT AUTHORITY\NETWORKSERVICE)
直接勾選【本地系統(tǒng)帳號(hào)】,在重啟SQL Server (MSSQLSERVER)時(shí)遇到了下圖的錯(cuò)誤:
(Figure5:重啟服務(wù)報(bào)錯(cuò))
查看了相關(guān)的系統(tǒng)事件日志,在SQL Server服務(wù)無(wú)法使用管理員身份啟動(dòng)?中解決了(禁用掉SQL Server的協(xié)議Shared Memory),設(shè)置完之后重啟服務(wù)SQL Server (MSSQLSERVER)。
而另外一種思路就是把NT AUTHORITY\NETWORKSERVICE加入到Administrators組中,如Figure6所示。注意:這種方式一樣需要重啟SQL Server (MSSQLSERVER)服務(wù)。
(Figure6:Administrators組)
下面我們就來(lái)測(cè)試下創(chuàng)建40GB文件的性能對(duì)比:
--測(cè)試即時(shí)文件初始化 CREATE DATABASE [TestFileInit] ON PRIMARY ( NAME = N'TestFileInit', FILENAME = N'F:\DBBackup\TestFileInit.mdf' , SIZE = 41943040KB , FILEGROWTH = 1024KB )LOG ON ( NAME = N'TestFileInit_log', FILENAME = N'F:\DBBackup\TestFileInit_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) GO(Figure7:之前創(chuàng)建時(shí)間)
(Figure8:之后創(chuàng)建時(shí)間)
注意:禁用即時(shí)文件初始化功能,要想讓這個(gè)禁用生效,一樣需要重啟SQL Server (MSSQLSERVER)服務(wù)。
五.疑問(wèn)(Questions)
1. 在安裝SQL Server的時(shí)候,如何設(shè)置會(huì)使得SQL Server服務(wù)是以【網(wǎng)絡(luò)服務(wù)】登陸的?
2. 禁用掉SQL Server的協(xié)議Shared Memory,這個(gè)協(xié)議是用來(lái)干嘛的?有什么作用?
3. 如果把NT AUTHORITY\NETWORKSERVICE加入到Windows組里面有什么不安全隱患嘛?
4. 當(dāng)啟用 TDE 時(shí),即時(shí)文件初始化功能不可用。什么是TDE?
5.如何禁用IFI 即時(shí)文件初始化?
?
1. 在安裝SQL Server的時(shí)候,如何設(shè)置會(huì)使得SQL Server服務(wù)是以【網(wǎng)絡(luò)服務(wù)】登陸的?默認(rèn)就是 2. 禁用掉SQL Server的協(xié)議Shared Memory,這個(gè)協(xié)議是用來(lái)干嘛的?有什么作用? 本地登錄可以不開TCP連接 遠(yuǎn)程無(wú)影響 3. 如果把NT AUTHORITY\NETWORKSERVICE加入到Windows組里面有什么不安全隱患嘛?巨大安全隱患,因?yàn)镮IS等用戶都是再NETWORKSERVICE攻破任何一個(gè)網(wǎng)絡(luò)服務(wù)就掌握操作系統(tǒng)最高權(quán)限4.TDE是透明數(shù)據(jù)加密,SQLServer2008以上版本的新功能http://msdn.microsoft.com/zh-cn/library/bb934049.aspx
5.禁用IFI
(1)把上述操作撤銷修改
(2)Trace Flag 1806 --禁用即時(shí)文件初始化,所有的磁盤空間請(qǐng)求全部使用填0初始化,可能造成在空間增長(zhǎng)時(shí)產(chǎn)生阻塞。
?
六.參考文獻(xiàn)(References)
數(shù)據(jù)庫(kù)文件初始化
為SQL Server 2005配置Windows即時(shí)初始化
Local System/Network Service/Local Service權(quán)限詳解
轉(zhuǎn)載于:https://www.cnblogs.com/gered/p/11083424.html
總結(jié)
以上是生活随笔為你收集整理的(5.2.1)配置服务器参数——即时文件初始化(IFI)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 张恩民谈程序员“三点式” 学习方法
- 下一篇: 中国近代史复习资料