首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪些系统数据库应该检查and和defrag索引?

哪些系统数据库应该检查and和defrag索引?
EN

Database Administration用户
提问于 2013-04-12 16:39:17
回答 3查看 2K关注 0票数 5

我有定期执行CHECKDB的Server代理(2005)作业,以及高度分散的任何索引的碎片整理(/REORGANIZE)。这些是典型的维护最佳实践。我想知道我应该把这些工作应用到哪个系统数据库中?现在,我只在master上运行CHECKDB,我隐约记得设置它是因为我在某个地方的一本书中看到了它。

那么,对于以下哪一项,我应该执行CHECKDB和/或索引碎片整理?

  • 主控
  • 模型
  • msdb
  • 诱饵
EN

回答 3

Database Administration用户

回答已采纳

发布于 2013-04-12 17:05:01

在我看来,实际上只适用于master和msdb。您不应该在模型或tempdb中有易失性数据( Kin指出了一篇关于tempdb中的损坏的好文章--如果您转到更现代的Server版本中,这应该不是什么问题)。我不会像往常那样做这些事,但是只有当你收到腐败报告的时候,我才会处理。国际水文学组织。如果您已经将用户对象添加到模型中,以便在每个新数据库中创建它们,这可能会增加风险,因此您可能希望将其包括在内。通常情况下,它是相当小,所以它没有真正的伤害,包括它无论如何。

对于defrag,MSDB实际上是您在这里需要担心的唯一数据库(特别是如果备份历史记录和作业历史表不受检查)。如果您将用户表放在那里,Master将是一个候选人,但我更愿意通过删除它们来解决这个问题,而不是尝试优化它们。如前所述,您不应该经常更改模型中的数据,而tempdb也不应该有任何永久对象,因此碎片整理要么是浪费性的,要么是虚假的,或者两者兼而有之。

票数 5
EN

Database Administration用户

发布于 2013-04-12 17:04:01

所有系统和用户数据库都应该使用CHECKDB进行检查。唯一的例外将是tempdb,因为您不能生成tempdb的快照,而引擎盖后面的checkdb将生成一个DB快照。

棘手的部分是tempdb (当Tempdb损坏时),因为我们都知道,当SQL Server重新启动时会重新创建Tempdb,但是Tempdb文件在重新启动Server时不会被删除,也不会初始化0(0),这样损坏就会持续。

Tempdb腐败(这是罕见的..。最有可能的原因是Server中的一个bug被描述为这里

票数 5
EN

Database Administration用户

发布于 2013-04-12 16:42:51

使用本机windows工具进行碎片整理可能会带来比好更多的问题。坚持在主、msdb和模型上使用checkdb。Tempdb在启动时被重新创建。主数据库是关键的,如果你的模型损坏了,它很难制造新的数据库,但它很容易重新创建,除非你高度定制它,没有备份它。如果您从未改变模型,只需确保您有一个好的备份。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/39844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档