【问题标题】:SQL SERVER 2008 R2 + Database In RecoverySQL SERVER 2008 R2 + 恢复中的数据库
【发布时间】:2014-05-18 12:22:15
【问题描述】:

我将我的数据存储在 SQL Server 2008 R2 中的 Web 应用程序中。当我今天连接到 SSMS 时,我的数据库前面有一个(恢复中)。

当我运行这个查询时:SELECT databasepropertyex('nyDatabase', 'STATUS')

状态为ONLINE。

我对接下来应该做什么感到困惑。

这是否意味着恢复成功。如果是,那为什么SQL前面db还有In Recovery呢?

【问题讨论】:

  • 您使用的是 SQL Server Express 版本吗?
  • 可能,我得检查一下。它是一个 Amazon AWS EC2 实例
  • 如果是 Express,AUTO_CLOSE 属性默认设置为 true:technet.microsoft.com/en-us/library/ms190249(v=sql.105).aspx 并且此属性可能导致此行为,即 SSMS 查询 SQL Server 元数据,并在特定时刻查询数据库正在打开。在您的实例上检查一下。
  • 好的,谢谢......我现在明白了......所以,我关闭 SSMS 并重新打开它,它就消失了。
  • 你能确认是快递吗?

标签: sql sql-server sql-server-2008 data-recovery


【解决方案1】:

对于 SQL Server Express 2008R2,AUTO_CLOSE 属性默认设置为 true:

Setting Database Options

在使用 SQL Server 2000 Desktop Engine 时适用于所有数据库或 SQL Server Express,对于所有其他版本为 False,无论 操作系统。

设置后,此属性可能会导致您看到的行为,即 SSMS 查询 SQL Server 元数据,并在特定时刻打开数据库。

如果您将AUTO_CLOSE 设置为false,这应该会消失。

无论如何,您会发现很少有人推荐您使用此套装。您可以通过this link 看到它实际上在 2008R2 中已被弃用,所以奇怪的是在某些情况下它仍然默认设置。

Microsoft 员工 Buck Woody 描述了为什么此设置没有太大帮助:

SQL Server Best Practices: AutoClose Should be Off

基本上,在除了最不使用的数据库之外的所有数据库中,它给数据库引擎带来的工作量比它所阻止的要多。

【讨论】:

  • 呃,谢谢。嗯,这很尴尬......我试图表明它是一个有信誉的来源并且犯了一个愚蠢的错误;现已更正。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多