SQL Server 2012还原一直卡在ASYNC_IO_COMPLETION浅析

栏目: 数据库 · SQL Server · 发布时间: 6年前

内容简介:在SQL Server 2012(11.0.7001.0)下面在还原一个数据库(备份文件40多G大小,实际数据库大小300G),在还原过程中,出现一直等待ASYNC_IO_COMPLETION,如下测试截图所示,已经等待了72分钟了,但是还原比例依然为0%

在SQL Server 2012(11.0.7001.0)下面在还原一个数据库(备份文件40多G大小,实际数据库大小300G),在还原过程中,出现一直等待ASYNC_IO_COMPLETION,如下测试截图所示,已经等待了72分钟了,但是还原比例依然为0%

SELECT  r.session_id ,
        r.command ,
        r.start_time,
        r.status,
        r.wait_type,
        CONVERT(NUMERIC(6, 2), r.percent_complete)   AS [Percent Complete(%)] ,
        CONVERT(VARCHAR(20), DATEADD(ms, r.estimated_completion_time,
                                     GETDATE()), 20) AS [ETA Completion Time] ,
        CONVERT(NUMERIC(10, 2), r.total_elapsed_time / 1000.0 / 60.0) AS [Elapsed Min] ,
        CONVERT(NUMERIC(10, 2), r.estimated_completion_time / 1000.0 / 60.0) AS [ETA Min] ,
        CONVERT(NUMERIC(10, 2), r.estimated_completion_time / 1000.0 / 60.0
        / 60.0) AS [ETA Hours] ,
        CONVERT(VARCHAR(1000), ( SELECT SUBSTRING(text,
                                                  r.statement_start_offset / 2,
                                                  CASE WHEN r.statement_end_offset = -1
                                                       THEN 1000
                                                       ELSE ( r.statement_end_offset
                                                              - r.statement_start_offset )
                                                            / 2
                                                  END)
                                 FROM   sys.dm_exec_sql_text(sql_handle)
                               )) AS CommandText
FROM    sys.dm_exec_requests r
WHERE   command IN ( 'RESTORE DATABASE', 'BACKUP DATABASE','RESTORE LOG' );

SQL Server 2012还原一直卡在ASYNC_IO_COMPLETION浅析

当然,这里是实验,如果还要继续等待的话,相信这个时间会更长。这个是比较让人奇怪的现象。后面查了一下这个跟 即时文件初始化 (Instant File Initialization (IFI))有关。关于这个概念,可以参考官方文档 数据库文件初始化 ,摘抄部分内容如下所示:

数据库文件初始化

初始化数据和日志文件以覆盖之前删除的文件遗留在磁盘上的任何现有数据。   执行以下其中一项操作时,应首先通过零填充(用零填充)数据和日志文件来初始化这些文件:

·          创建数据库。

·          向现有数据库添加数据或日志文件。

·          增大现有文件的大小(包括自动增长操作)。

·          还原数据库或文件组。

文件初始化会导致这些操作花费更多时间。   但是,首次将数据写入文件后,操作系统就不必用零来填充文件

即时文件初始化 (IFI)

SQL Server 中,可以在瞬间对数据文件进行初始化,以避免零填充操作。即时文件初始化可以快速执行上述文件操作。   即时文件初始化功能将回收使用的磁盘空间,而无需使用零填充空间。   相反,新数据写入文件时会覆盖磁盘内容。   日志文件不能立即初始化。

备注

只有在   Microsoft   Windows XP Professional     Windows Server 2003   或更高版本中才可以使用即时文件初始化功能。

重要

只有在数据文件中才可以使用即时文件初始化功能。   创建日志文件或其大小增长时,将始终零填充该文件。

即时文件初始化功能仅在向 SQL Server 服务启动帐户授予了 SE_MANAGE_VOLUME_NAME 之后才可用。   Windows Administrator 组的成员拥有此权限,并可以通过将其他用户添加到   执行卷维护任务   安全策略中来为其授予此权限。

重要

某些功能使用(如 透明数据加密 (TDE) )可以阻止即时文件初始化。

  因为这个案例中,启动SQL Server的服务启动账号为NT Service\MSSQLSERVER,所以没有权限即时文件初始化的,如果将启动SQL Server的服务启动账号改为具有管理员权限的域账号,就不会出现这种情况。另外,如果一定要以NT Service\MSSQLSERVER为启动账号

要向一个帐户授予   Perform volume maintenance tasks   权限:

  1. 在将要创建备份文件的计算机上打开 本地安全策略 应用程序 (secpol.msc)
  1. 在左侧窗格中,展开 本地策略 ,然后单击 用户权限指派
  1. 在右侧窗格中,双击 执行卷维护任务
  1. 单击 添加用户或组 ,添加用于备份的任何用户帐户。
  1. 单击 应用 ,然后关闭所有 本地安全策略 对话框

SQL Server 2012还原一直卡在ASYNC_IO_COMPLETION浅析

设置后,重启 SQL Server 服务,然后还原数据库就会正常化,此时的等待事件为 BACKUPTHREAD ,而不是 ASYNC_IO_COMPLETION, 如果版本是SQL Server 2012 SP4或以上版本,可以通过下面 SQL 查看识别是否启用了即时文件初始化

SELECT  servicename ,
        startup_type ,
        instant_file_initialization_enabled
FROM    sys.dm_server_services; 

SQL Server 2012还原一直卡在ASYNC_IO_COMPLETION浅析

另外,从SQL Server 2016 (13.x)   开始,可在安装期间授予服务帐户此权限。   如果使用命令提示符安装,请添加 /SQLSVCINSTANTFILEINIT 参数,或选中安装向导中 授予 SQL Server 数据库引擎服务执行卷维护任务权限 复选框。

参考资料:

https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/database-instant-file-initialization?view=sql-server-2017


以上所述就是小编给大家介绍的《SQL Server 2012还原一直卡在ASYNC_IO_COMPLETION浅析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

科技想要什么

科技想要什么

[美] 凯文·凯利 / 熊祥 / 中信出版社 / 2011-11 / 58.00元

在《科技想要什么》一书中,凯文•凯利向我们介绍了一种全新的科技观。他认为,作为整体,科技不是由线路和金属构成的一团乱麻,而是有生命力的自然形成的系统,它的起源完全可以回溯到生命的初始时期。正如生物进化呈现出无意识的趋势,科技也是如此。通过追踪这些长期趋势,我们可以对“科技想要什么”有所理解。 凯文•凯利预测了未来数十年科技的12种趋势,包括创造大脑这一得寸进尺之举。不过,为了让人类创造的世界......一起来看看 《科技想要什么》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具