Sql-Server

重啟數據庫實例中的數據庫而不重啟整個數據庫實例

  • June 1, 2009

我有一個執行多個數據庫實例的數據庫伺服器。我在訪問特定數據庫時遇到問題,並且想要重新啟動相同但不重新啟動整個數據庫伺服器,因為它會影響實例中的其他數據庫或同一伺服器上的其他實例。

是否可以使用命令行或任何其他方式重新啟動單個數據庫?

將數據庫與伺服器分離並將其重新附加或使其離線並重新聯機與重新啟動該數據庫相同嗎?

注意:只需添加一個託管在 win2k3 上的 MSSQL 2005 伺服器。

我不知道是否使單個數據庫離線然後將其重新聯機是否等同於重新啟動 SQL 服務(至少從數據庫的角度來看 - 它絕對不是服務),但它會將數據庫“重置”為它將關閉所有現有連接並回滾任何打開的事務的程度。如果這是您所追求的效果,那麼它可能就足夠了,並且不會影響在該 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

引用自:https://serverfault.com/questions/16569