【问题标题】:SQL server database start/stop issueSQL Server 数据库启动/停止问题
【发布时间】:2009-09-23 04:41:56
【问题描述】:

我正在使用 SQL Server 2008 Enterprise 进行开发。我从 SQL Server 日志中发现,有类似的项目,

2009-09-20 19:54:33.55 spid53      Starting up database 'DummyOrderDB'.

我的困惑是,我认为我们只能启动/停止数据库服务器实例(包含的数据库将在包含数据库服务器实例启动/停止时启动/停止),我们可以在不接触数据库服务器的情况下启动/停止数据库吗实例?我没有从 SSMS 中找到这样的菜单。

提前致谢, 乔治

【问题讨论】:

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


    【解决方案1】:

    这是一个auto close 数据库。自动关闭数据库在不使用时会“关闭”,每次用户使用时,他们都会运行一个简短的恢复并显示上面的文本。 SQL Express 默认将数据库创建为自动关闭ON。要关闭自动关闭行为,请运行:

    ALTER DATABASE <dbname> SEt AUTO_CLOSE OFF;
    

    【讨论】:

    • “每次用户使用一个”是什么意思?请问你能不能说点别的?
    • 每次用户发出USE &lt;dnbname&gt;; 或打开与Initial Catalog=&lt;dbname&gt; 的会话。
    • 或运行引用数据库的查询,例如 SELECT * FROM .dbo.SomeTable
    • 谢谢!如果我在 ADO.Net 客户端使用 SQL Server 连接池,我想知道使用 ADO.Net 对我的 clide 代码有何影响?假设有一段时间,我没有使用连接池连接连接数据库,那么一段时间后,当我重新连接时,会不会因为自动关闭而连接失败?或者连接池将处理重新连接问题?
    • 对,数据库自动重新打开。这对客户来说是完全透明的。
    【解决方案2】:

    是的,我们可以。当然,启动和停止数据库只有在服务器本身启动时才有意义(这有帮助 ;-)),但是每个单独的数据库都必须先初始化,然后才能真正使用它。此外,当您分离数据库时,它首先会关闭。 (确保数据完整性和其他清理工作等)

    【讨论】:

    • 谢谢,我们可以使用命令来显式控制数据库级别的启动/停止吗?
    • 是的。如果您不希望它自动发生,请关闭 auto_close。无论如何,在繁忙的生产数据库上,这不是一个好的设置。您可以通过使其脱机来关闭数据库 - Alter Database Set offline
    • 下线和停止数据库一样吗?你有什么文件可以证明吗? :-)
    • 我从 MSDN 阅读了以下语句但感到困惑-“当用户再次尝试使用数据库时,数据库会自动重新打开。例如,通过发出 USE database_name 语句。如果数据库关闭当 AUTO_CLOSE 设置为 ON 时,数据库不会重新打开,直到用户在下次重新启动数据库引擎时尝试使用该数据库。”来自msdn.microsoft.com/en-us/library/bb522682.aspx,是不是说如果我们设置了autoclose,db关闭后,当客户端重新连接时,db会自动重新连接?对客户端没有影响(如 ADO.Net 代码)?
    猜你喜欢
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2011-03-08
    相关资源
    最近更新 更多