如何使用 REPAIR_ALLOW_DATA_LOSS 和 NOINDEX 运行 DBCC CHECKDB
我有一个非常大的数据库 (233GB),使用 REPAIR_ALLOW_DATA_LOSS 运行 DBCC CHECKDB 花费的时间太长了 (超过 15 小时)。表中有很多索引我宁愿删除,但数据库恢复运行之前无法删除表。每个索引至少需要 2 小时才能检查。有没有办法同时使用 REPAIR_ALLOW_DATA_LOSS 和 NOINDEX 运行 CHECKDB? ...
我有一个非常大的数据库 (233GB),使用 REPAIR_ALLOW_DATA_LOSS 运行 DBCC CHECKDB 花费的时间太长了 (超过 15 小时)。表中有很多索引我宁愿删除,但数据库恢复运行之前无法删除表。每个索引至少需要 2 小时才能检查。有没有办法同时使用 REPAIR_ALLOW_DATA_LOSS 和 NOINDEX 运行 CHECKDB? ...
这个是给你的,保罗!:-) 我有一个客户,他在两个办公地点都拥有两个数据库。两个数据库的大小大致相同(大约 10 GB),都托管在同一个专业托管商的网站上 - 所以大致来说,它们是相同的。 然而,数据库 ACheck database integrity在不到 30 分钟的时间内就完成了维护计划中的步骤,而数据库 B 甚至从未完成 - DBA 在运行 3 个多小时后终止了该进程。 这些步骤是在“下班后”运行的 - 因此服务器上不应该有任何重大活动。 有什么解释吗?知道要检查什么或在哪里查找原因(以及解决方法)吗?没有报告任何错误或任何东西..... ...
当存在空间索引时,我们遇到了 DBCC CHECKDB 在 Sql Server 2008R2 上因访问冲突(空指针引用)而崩溃的问题。使用 DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS 可重复此问题,但在某些情况下仅使用 DBCC CHECKDB 也会发生此问题。 这发生在 Windows 2008 R2 下的 Sql Server 2008 R2 sp1 标准版(和开发人员版)和 Windows 7(全部 64 位)下。 这是一个简单的 T-SQL 脚本,用于演示此问题。如果您在 SSMS 中运行它,您将看到输出...
我正在我们的 OLTP 环境 (SQL 2005,2008) 中启用 DBCC CHECKDB。系统开销在我们的服务器上非常明显,因此我希望它们尽可能高效。因此 - 我想启用 NOINDEX 选项,这是我以前从未使用过的选项。我的想法是:如果在完整性检查之外检测到索引存在问题,我可以重建索引。此外,完整性检查的持续时间将大大减少,并且将检测到更严重的损坏。 我的计划有什么缺陷? 谢谢,Deb ...
我正在努力实现 Paul Randal 的优秀文章中提出的在几天内手动传播 DBCC CHECKDB 的方法从各个角度看 CHECKDB:VLDB 的一致性检查选项简而言之,该策略包括: 将数据库中的表平均划分为 7 个存储桶(使用页数) 每周运行两次 DBCC CHECKALLOC 每周运行一次 DBCC CHECKCATALOG 每周每天对一个存储桶运行 DBCC CHECKTABLE 我有一个单独的 StackOverflow 问题关于将表划分为存储桶的良好算法(如果您有一个有效的 TSQL 脚本,请在那里留言),但这个问题是为了确保我检查正确...
我们混合使用了 SQL 2000、2005 和 2008 服务器,并且我们总是在完整备份之前每晚运行 DBCC CHECKDB,因为理论上您希望在备份之前确保数据库处于良好状态。(显然,备份的完整验证只能通过测试还原来完成,但这是一个略有不同的主题。) 假设我无法将 DBCC 卸载到备份服务器或其他东西(这将是理想的),DBCC CHECKDB 后跟 FULL BACKUP 是最佳顺序吗? 我发现的唯一讨论这个问题的“最佳实践”文档是SAP 的 SQL Server 维护最佳实践从 2006 年起我在 TechNet 上发现: 理想情况下,在执行...
我集群的 SAN 上的控制器会定期自行重启。显然可以通过固件更新来修复,但在几天后应用更新之前,我不得不忍受这个问题。问题是,如果其中一个控制器在 DBCC CHECKDB 运行时(夜间维护期间)发生故障,CHECKDB 就会挂起。我似乎无法将其关闭……它显示它一直在等待 ASYNC_IO_COMPLETION。我需要循环实例吗,还是有其他方法可以关闭 CHECKDB? SQL Server 2005 RTM 和 SP2 实例。 ...
我有一个 2Tb+ SAP 数据库,其中包含 8 个数据文件,第一个文件已经增长到填满我们 HP EVA5000 上的可用磁盘空间,现在增长发生在新文件上。我们将 SQL 从 SQL Server 2000 升级到 2005,Checkdb 的工作方式不同,现在失败,没有空间创建快照。我们在准备新的 I/O 子系统时,为每个文件添加了 50Gb 作为临时措施。问题是:我们如何监控快照使用情况?如果 Checkdb 现在启动,它有更多空间,然后填满,会发生什么?如果您发现它即将用完空间,您可以取消 CheckDb 吗? ...
我正在 47mb 的 Shairpoint 搜索数据库上运行带有 REPAIR_ALLOW_DATA_LOSS 的 CheckDB 它已经运行了 30 多分钟。这正常吗? 需要多长时间? ...