Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

为SQL Server 2005配置Windows即时初始化

时 间:2009-12-29 08:58:35
作 者:李恩   ID:1445  城市:上海
摘 要:SQL Server 2005
正 文:

 问题

  SQL Server 2005支持数据库即时文件初始化(Instant File Initialization),这种即时文件初始化可以跳过清零数据的页面,这样做可以在执行一些操作,比如创建数据库,增加文件到现有的数据库中,手动、通过自动增长(autogrowth)或保存一个数据库或文件组来增大现有数据库文件时,减少时间。但是,我们如何确定SQL Server正在使用这个功能?

  专家解答

  在SQL Server以前的版本中,数据和日志文件一开始是通过在你执行之前提到的某项操作时,用零归档这些文件来初始化的。在灾难备份和还原操作中,这是非常关键的,尤其是处理非常大的数据库时。

  对SQL Server而言,即时文件初始化已经引进了。而这所做的是,它跳过磁盘上的零数据,因此不重写在磁盘上写过的先前的数据。操作系统只分配磁盘空间,但是文件的内容实际上是原先在磁盘上写的。这个功能对于运行在NTFS文件系统的Windows Server 2003或者Windows XP上的所有SQL Server 2005版本都适用。

  即使它是可用的,你的实例也可能不能配置使用。要解决这个问题,你应该给你的SQL Server服务账号或者SQLServerMSSQLUser$instancename这个本地组

  SE_MANAGE_VOLUME_NAME的权限。SQLServerMSSQLUser$instancename这个本地组创建于你安装SQL Server 2005并把SQL Server服务账号加到这个数据库中。要做到这些,服务账号和本地组需要被授予“Perform Volume Maintenance Task”的本地安全权限。默认情况下,本地管理员组已经有这个许可,所以如果你的服务账号已经是这个组的一员,那么你没必要去做什么事情。

请注意,这只适用于数据文件而不适用于日志文件,所以如果你有大量的事务日志文件,而这些文件又作为你数据库备份的一部分,那么数据库文件会即时创建而日志文件不会。日志文件在被写回磁盘之前需要被清零。

  注意事项

  即使这个改进了autogrowth事件的文件增长性能,它不应作为正确排列你数据库文件来达到最小化的替代方法。如果不能避免,使其自动增长。另外,当SQL Server服务在运行时,如果你把这个权限给服务账号,那么为了使这个功能生效你必须停止并重启服务。你也可以通过运行gpupdate /force命令立即在安全策略中应用修改。

  这样做也有安全风险。存在这样的可能性,那就是你会通过未授权的账户访问磁盘上的非零数据。想像一个数据文件没有在磁盘上清零的被删除的数据库!如果因为自由访问控制列表(DACL)仅用于数据文件被SQL Server使用时而导致没有自由访问控制列表被定义在文件上,那么任何用户都可以访问这些数据。如果披露已删内容的可能性是受到关注的,那么建议当自由访问控制列表从SQL Server中分离时,在你的数据文件或备份上明确地使用受限制的自由访问控制列表。

  提示

   配置你的SQL Server 2005实例来使用即时文件初始化。

   在一个SQL Server 2005实例上,通过还原一个大型数据库(任何大于100GB)来测试它。

  在一个测试服务器上,不经过许可还原数据库备份并且衡量还原的时间。

  删除这个还原的数据库并停止SQL Server服务。

  把“Perform Volume Maintenance Task”授权给SQL Server服务账号并重启服务。

  再次还原数据库备份并且衡量还原的时间。

欢迎加入AccessQQ群交流学习 群号:93390997



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助