有时,在进行索引维护期间,作业将因SEV 17错误而失败,因为该错误无法为正在重建的对象分配足够的空间。数据库的布局如下:
Data_file1 PRIMARY 0 growth 0% free Max Size UNLIMITED
Data_file2 PRIMARY 0 growth 0% free Max Size UNLIMITED
Data_file3 PRIMARY 0 growth Less than 1% free Max Size UNLIMITED
Data_file4 PRIMARY 250 MB growth Less than 1% free Max Size UNLIMITED
本质上,4个数据文件中的3个已满并且不允许增长,第四个已满并且允许增长。文件分散在不同的LUN上(以及混乱的原因)。因此,当我开始进行联机索引重建时,据我了解,如果需要任何额外空间,它将增长到Data_file4中并且很好,但是显然它正在尝试增长到不允许增长且失败的其他文件中。我无法重现此错误,但我想知道是否有人了解为什么会发生这种情况。
完整的SQL Server版本是2008 R2 Enterprise SP2 CU 4(10.50.4270)。我们使用Ola Hallengren的重建脚本,在此我们进行在线重建,但没有排序tempdb
。
max_size is
当前设置为UNLIMITED,即使增长率为0。我正在我的repro测试中对此进行调查。
您正在记录结果吗?如果保留历史记录,则每次错误都会在同一索引上发生该错误吗?
—
Cougar9000 2014年
该索引有多少页?
—
Mark Wilkinson
另外,这是脚本生成的错误还是实际的SQL Server错误?我问是因为我想知道您是否正在达到事务日志大小限制,而不是数据文件大小限制,并且脚本正在错误地处理错误。
—
Mark Wilkinson
If max_size is not specified, the file size will increase until the disk is full.
授予,如果关闭了自动增长功能,则不应尝试从这些文件(A value of 0 indicates that automatic growth is set to off and no additional space is allowed.
)进行分配,但是可能会有错误,因此如果未设置尝试,尝试一下也不会有任何伤害。