swa*_*eck 13 sql-server sql-server-2008-r2 transaction-log
我有一个开发环境,它正在快速部署到生产环境中,并且在日志中注意到大约每 20 秒我就会看到一条消息:
Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors
Run Code Online (Sandbox Code Playgroud)
我注意到这一点是因为正在测试它的最终用户有一个问题,我将其与我在 Windows 事件日志(应用程序日志)中注意到的错误隔离开来:
The log for database 'dbname' is not available. Check event log for related messages.
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我没有发现相关消息,但通过离线/在线循环解决了。
我唯一能想到的是,这个应用程序每 1 毫秒收集一次数据,但所有这些数据都没有插入到数据库中。作为一个开发服务器,它被配置为日志和数据在同一个驱动器上。考虑到这两条信息,我倾向于这是一个 IO 问题,并且服务器正试图从与存储 (SAN) 的连接丢失中恢复。然而,即使这对我来说也没有意义,因为它并没有丢失所有 dbs,只是丢失了这个。还有什么可能导致这种情况?
平台:Windows Server 2008 R2 (Std.) 上的 SQL Server 2008 R2 (Ent.)
Tho*_*ger 22
你看到这个的原因:
Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors
Run Code Online (Sandbox Code Playgroud)
是因为您已将数据库选项设置为AutoClose.
要关闭自动关闭,请执行以下操作:
alter database YourDatabase
set auto_close off
go
Run Code Online (Sandbox Code Playgroud)
什么AutoClose是在最后一个用户进程断开连接后关闭数据库。然后当下一个用户连接尝试连接时,数据库会自动“重新打开”。
通常最好保持AutoClose关闭状态,因为再次启动数据库存在明显的延迟。我从您的问题中了解到这是一个开发环境,但您也不应该在那里需要它(并且您绝对不希望在您的生产环境中使用它)。
此外DBCC CHECKDB,实际上并不是每个问题标题“每 20 - 60 秒触发一次”,它只是看起来那样!
从 SQL Server 2005开始,每次启动数据库时都会在错误日志中报告dbi_dbccLastKnownGood值(如果存在)。因此,您只是看到重复呈现的相同历史信息。
此主题在文章为什么 SQL Server 在服务器启动时针对我的数据库运行 DBCC CHECKDB?
| 归档时间: |
|
| 查看次数: |
5746 次 |
| 最近记录: |