欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL Server误区30日谈 第3天 即时文件初始化特性可以在SQL Server中开启和关闭

程序员文章站 2023-11-26 20:29:40
本系列文章是我在sqlskill.com的paul的博客看到的,很多误区都比较具有典型性和代表性,原文来自t-sql tuesday #11: misconceptions...

本系列文章是我在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

    SQL Server误区30日谈 第3天 即时文件初始化特性可以在SQL Server中开启和关闭

图1.开启执行卷维护任务(perform volume maintenance tasks )

    你可以在sql server中查看即时文件初始化特性是否开始,通过追踪标志3004(3605可以强制输出错误信息)创建一个数据库,在日志中查看是否有填0操作,如果即时文件初始化有填0初始化操作,则这个特性在sql server中并没有开启。

    你可以在sql server中通过追踪标志1806设置为on来暂时停止即时文件初始化特性。如果你想永久的禁止这个特性,请把启动sql server账户中”执行卷维护任务”这个权限删除。

    这两个追踪标志是在sql server premier field engineer bloghow and why to enable instant file initialization这两篇博文中首次被提到的。

    如果可以的话,尽量打开这个特性。