如何诊断重复的“启动数据库‘<dbname>’”

Ric*_*ter 4 hardware windows-server-2008 sql-server

我有一个 SQL 2008 服务器,它主要用作开发服务器,在过去的两周里它偶尔出现“适合”,我已经隔离了这些适合的原因,因为 CHECKDB 几乎连续运行,记录了以下日志信息到 Windows 事件日志(来源:MSSQLSERVER,类别:服务器):

事件:1073758961,消息:正在启动数据库“DBName1”。
事件:1073758961,消息:正在启动数据库“DBName2”。
事件:1073759397,消息:数据库“DBName1”的 CHECKDB 在 2010 年 7 月 19 日 20:29:26.993(当地时间)完成且没有错误。这只是一条信息性消息;无需用户操作。
事件:1073759397,消息:数据库“DBName1”的 CHECKDB 在 2010 年 7 月 19 日 20:29:26.993(当地时间)完成且没有错误。这只是一条信息性消息;无需用户操作。

这会每 1-2 秒重复一次,直到重新启动 SQL Server 或分离有问题的数据库。

我最初认为这是数据库的问题,所以我进行了备份并将它们恢复到 SQL Express 实例,所有数据都完好无损,并且 CHECKDB 运行没有问题。

上周导致问题的两个数据库没有被使用;所以我对它们进行了完整备份并分离了数据库,这解决了问题。然而,在今天早上格林威治标准时间 0100,其他完全不相关的数据库开始出现同样的问题。

事件日志中没有任何内容表明服务器发生了某些事情,例如重新启动,没有关于进程崩溃或存储控制器检测到问题的消息。

告诉公司的所有者,这台计算机过去曾遭受过“小鬼”的困扰,但还是采纳了建议,更换了主板并重建了计算机,内存和处理器是相同的。

统计数据:

  • O / S:Windows 2008的标准打造6002
  • CPU : 2x Pentium 双核 E5200 @ 2.5GHz
  • 内存:2GB
  • SQL:2008 标准 10.0.2531

编辑:有人发布然后删除了关于 AutoClose 的评论,它已在受影响的数据库上打开。似乎最佳做法是禁用它,所以我已经完成了以下操作。

EXECUTE sp_MSforeachdb 
  'IF (''?'' NOT IN (''master'', ''tempdb'', ''msdb'', ''model''))
  EXECUTE (''ALTER DATABASE [?] SET AUTO_CLOSE OFF WITH NO_WAIT'')'
Run Code Online (Sandbox Code Playgroud)

我不知道问题是否会在一段时间内再次出现,所以我仍然愿意接受进一步的答案。

Ser*_*gey 5

检查我们数据库的AutoClose属性。把它关掉