镜像数据库sql server 2008上的索引重建

镜像数据库sql server 2008上的索引重建

我在 SQL Server 2008 R2 标准版上有一个处于完全安全模式的镜像数据库。我想创建一个维护计划,以便每周重建和重新组织索引。维护计划设置为每天进行 3 次完整备份,每 30 分钟进行一次事务日志备份。数据库非常活跃,流量很大。我尝试在非高峰时段手动重建索引,这导致日志文件在主服务器上和镜像服务器上都大量增长。

在镜像环境中重建索引是否有任何特定步骤需要遵循?我在线搜索但没有发现在镜像中和没有镜像的情况下重建索引的方式有什么不同。

另外,我是否只能使用 DBCC SHRINKFILE 来释放日志文件中未使用的空间而不停止镜像?

答案1

我强烈建议您不要在镜像情况下定期收缩日志。总有一天,您的日志会在主服务器上增长,而镜像服务器上没有磁盘空间来增长,主服务器将无法发送日志,并将日志固定在原地,直到它增长到令人厌烦的程度,您将会诅咒收缩日志的作业,因为您将无法在没有一些复杂的曲棍球的情况下恢复镜像。

如果日志增长,则意味着它需要额外的空间。最终它将稳定在正确的大小并停止增长。无论大小是多少,它都是日志所需的操作大小。如果有的话,你应该生长您的日志现在就会停止自动增长。

至于索引维护,您是否有证据表明它们需要按照您建议的频率进行重建?如果数据库是镜像的,则无法避免减少索引重建操作期间所需的日志空间。

答案2

是的 - 在非镜像数据库和镜像数据库上重建索引有很大区别。影响更大,在执行此操作之前必须检查一些事项。

最重要的是,您应该在维护期间从完全安全模式转变为高性能模式,这样它在重新组织索引时就不会等待镜像。

如果您确实需要这样做,可以缩小日志文件,但如果其中有未备份的活动事务,则不会生效。可以在镜像数据库上进行缩小理论上,不要对数据文件进行此操作因为索引上的碎片将会变得非常多。

相关内容