【问题标题】:Failing to connect to Database due to database in recovery由于数据库正在恢复,无法连接到数据库
【发布时间】:2010-06-15 13:22:06
【问题描述】:

我使用的是 SQL Server 2008,开发人员版。我使用 Linq2SQL 从我的 asp.net mvc 应用程序连接到我的数据库。我注意到我的数据库在一个月内进入恢复模式大约 4 次。我正在运行一些复杂的 Linq2SQL 查询。当数据库处于恢复模式时,我的 asp.net mvc 应用程序将离线,因为它无法连接到数据库。我不知道如何防止数据库进入恢复模式。我已经看到了一些关于 SO 的问题,但找不到解决方法。我希望有人可以帮助我。

【问题讨论】:

  • 它只是选择还是你在插入/更新/删除?
  • 服务器故障?我认为没有任何代码或查询将您的数据库置于恢复模式。
  • @used2could,它只是选择器查询。它们都是 linq2sql 查询,自动生成
  • 您应该查看 SQL Server 日志,在事件查看器中尝试日志并查看 SQL Server 安装目录中的日志文件夹。如果您在这些日志中发现一些错误,请在此处显示。
  • 每隔几秒(30 到 80 秒)后,我会看到一条消息正在启动数据库“MyDatabase”。之后我看到“在 1 秒内完成数据库‘MyDatabase’(数据库 ID 31)的恢复(分析 187 ms 重做 0 ms 撤消 1022”。你能看看有什么问题吗?)这里

标签: sql-server asp.net-mvc linq-to-sql


【解决方案1】:

需要检查的一些可能性/事项包括:

  • 此数据库是否是日志的一部分 出货配置?如果是这样,虽然 辅助服务器正在 恢复你将无法 建立连接到 数据库。
  • 您确定您正在使用开发人员 SQL Server 版本而不是 速成版?
  • Autoclose 选项是否设置为 TRUE? 如果是这样,数据库将在何时关闭 没有活动的用户连接。

要检查是否有任何数据库设置为自动关闭,请使用以下 T-SQL:

SELECT * FROM sys.databases WHERE DATABASEPROPERTYEX(name, 'IsAutoClose') = 1 

【讨论】:

  • 我正在使用 SQL Server 2008 的开发人员版。我发现我的数据库的 IsAutoClose 设置为 1。我明白这个 AutoClose 是什么意思。你认为这可能是原因吗?
  • @mohang: AUTOCLOSE 设置为 TRUE(1) 是您问题的 100% 原因。很高兴您现在解决了问题。
猜你喜欢
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 2019-11-05
  • 1970-01-01
  • 2021-12-17
  • 2020-07-19
  • 2012-10-29
相关资源
最近更新 更多