我有一个数据库服务器运行数据库的几个实例。 我在访问特定数据库时遇到问题,并且希望重新启动它,但不重新启动整个数据库服务器,因为它将影响实例中的其他数据库或同一服务器上的其他实例。
有没有一个使用命令行或任何其他手段重新启动一个单一的数据库?
是从服务器分离数据库,并将其附加或脱机,并重新联机与重新启动该数据库相同?
注意:只需添加其在win2k3上托pipe的MSSQL 2005服务器即可。
我不知道是否将个人数据库脱机然后重新联机,相当于重新启动SQL服务(从数据库的angular度来看,至less – 这绝对不是服务),但它会将数据库“重置”为它将closures所有现有连接并回滚任何打开的事务。 如果这是你所追求的效果,那么它可能就足够了,并且不会影响在该SQL实例上运行的任何其他数据库。
从SSMS,你可以使用这个SQL:
-- 'rollback immediate' will disconnect existing users w/out -- waiting for transactions to finish. ALTER DATABASE MyDatabase SET OFFLINE WITH ROLLBACK IMMEDIATE go ALTER DATABASE MyDatabase SET ONLINE go
访问特定数据库时遇到的问题是什么? 如果数据库损坏,重新启动数据库不会有任何影响,但经常尝试。
以防万一它是腐败,你需要找出问题的程度:DBCC CHECKDB(yourdb)WITH NO_INFOMSGS,ALL_ERRORMSGS
然后从备份中恢复,将数据提取到新的数据库中,或作为最后的手段运行数据库修复。 这些取决于你有什么错误 – 每个人都有很多优点/缺点 – 但是我不会把这个主题用细节和链接来淹没,除非你真的有腐败问题。 如果是腐败,您可以随时致电产品支持部门,帮助您实时恢复,而不是依靠论坛。
谢谢