我们在 Windows 2003 服务器上安装了 SQL Server 2008 Express。查看事件日志,其中一个数据库似乎每隔几秒到每 15 到 30 分钟重新启动一次。
该服务器托管了大约六个数据库;问题只出在一个数据库上。该数据库也是唯一一个由多个架构(不仅仅是dbo
)组成的数据库。
几个月前发生了数千起事件。似乎对使用数据库的网站没有任何影响,也没有任何数据被破坏或泄露。我不是 DBA,所以我甚至不知道在哪里可以找到原因。有什么建议吗?
编辑: 这是来自事件查看器的示例条目:
日期:2010 年 6 月 1 日 时间:上午 11:20:52 类型:信息 用户:N/A 计算机:MyServer 来源:MSSQL$SQLEXPRESS 类别:服务器 事件 ID:17137 描述:启动数据库“MyDatabase”。
答案1
您的数据库设置为AUTO_CLOSE ON
。每当没有用户连接到它时,它就会关闭。每当有新连接使用数据库时,它就会启动。这些可能是在 SQL Express 上创建的数据库,然后附加到非 Express SKU,因为 Express 默认将数据库创建为自动关闭。
只需将其设置为 AUTO_CLOSE OFF:
ALTER DATABASE <dbname> SET AUTO_CLOSE OFF;
答案2
要检查是否损坏,请打开 SQL Server Management Studio 并打开查询窗口。运行以下命令检查是否损坏。
DBCC CHECKDB ('MyDatabase') WITH NO_INFOMSGS, ALL_ERRORMSGS;
更多细节关于识别数据库损坏。
如果数据库没有问题,请分享完整的日志消息。还可以在 Management Studio 中的 SQL Server 日志中查找信息。可能有一些线索可以找到导致此问题的原因。这实际上非常巧妙,因为您可以从 Management Studio 中查看 SQl Server 日志事件旁边的 Windows 应用程序事件日志。