【问题标题】:control SQL Server database stop/start控制 SQL Server 数据库停止/启动
【发布时间】:2009-09-25 08:18:06
【问题描述】:

我使用的是 SQL Server 2008 Enterprise。我想知道停止/启动数据库(不是实例,不是服务器,而是数据库)有多少不同的方式或不同的原因。我正在分析 SQL Server 日志。

目前据我所知,两种可能的方式/原因是——使数据库离线/在线和停止/启动实例/服务器。

提前致谢, 乔治

【问题讨论】:

  • 您能告诉我们是什么促使您要求打开/关闭数据库吗?如果我们知道您有什么麻烦,我们可以给您更好的答案...等一下,等一下..我只是用 SQL Server 术语表示:D
  • 感谢拉吉!我在 SQL Server 日志中发现,有数据库 XXX 启动和停止之类的项目,我想找出数据库启动/停止的原因,因为我从未显式启动/停止 SQL Server 实例。任何想法我们可以启动/停止数据库的可能方式是什么?

标签: sql sql-server sql-server-2008


【解决方案1】:

如果服务器/服务意外重启,数据库可以进入恢复模式,并且在此期间将无法访问。

我还看到了数据库在我的服务器重新启动后立即回滚/转发事务的情况。

除了 SQL Server 日志之外,一个非常好的查看位置是在服务器上的 Windows 事件日志中。

基于 cmets 编辑:

我认为您的数据库的 AUTO CLOSE 属性设置为 true。这些数据库设置为在最后一个用户退出后关闭。在http://msdn.microsoft.com/en-us/library/ms190249.aspx 阅读更多内容。

你可以通过发出这个命令来关闭它

ALTER DATABASE YourDatabaseName SET AUTO_CLOSE OFF;

【讨论】:

  • " 数据库可以进入恢复模式,并且在此期间将无法访问。" -- 这个场景与我关于数据库启动/停止的问题有关吗?我的困惑是您在谈论“恢复模式”,但我在谈论启动/停止数据库,我们在谈论同一件事吗?谢谢!
  • "除了 SQL Server 日志之外,一个非常好的查看位置是在服务器上的 Windows 事件日志中。" - 为什么?你能告诉我为什么使用事件日志比 SQL Server 日志更准确吗?
  • 仅仅是因为 Windows 事件日志将为您提供有关服务器上发生的任何其他事情的信息,而不仅仅是在 SQL Server 中,因此您可以临时链接事件。
  • 感谢 Raj,除了设置 auto_close、显式分离/附加、离线/在线、停止实例之外,您认为还有其他方式会导致特定数据库停止/启动吗?
  • 我知道的只有这些。
【解决方案2】:

数据库永远不会启动或停止。它可以在线或离线,但它不是正在运行的服务。相反,它是硬盘上的一个文件(或文件集合)。唯一停止或启动的是 Windows 服务。

可以通过分离使数据库脱机,或者如果您愿意,可以使用alter database mydb set offline

【讨论】:

  • 谢谢埃里克。我之所以调用数据库启动/停止是因为我在 SQL Server 日志中发现,有数据库 XXX 启动/停止之类的项目。我的困惑是我没有明确调用离线语句或使用 SSMS 使数据库离线,为什么数据库服务器中有日志提到数据库启动/停止?有什么可能的原因吗?
【解决方案3】:

检查相关数据库的 Auto_Close 选项是否设置为 OFF。如果一个数据库设置为 AUTO_CLOSE ON,那么它会在所有与它的连接关闭时关闭。

有关详细信息,请参阅 ALTER DATABASE 的 BOL 主题:

http://msdn.microsoft.com/en-us/library/ms135094.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    相关资源
    最近更新 更多