Eri*_*ker 5 sql-server-2008 sql-server recovery restore
我有一个数据库已经在恢复模式下停留了几天。关于这个有多个线程,但那里的解决方案对我不起作用。
这是我已经尝试过的:
RESTORE DATABASE [DBNAME] WITH RECOVERY
Error: Exclusive access could not be obtained because the database is in use.
ALTER DATABASE [DBNAME] SET OFFLINE WITH ROLLBACK IMMEDIATE
Error: ALTER DATABASE failed because a lock could not be placed on database 'DBNAME'
I get the same error when trying to set the db to SINGLE_USER
exec sp_who2 --> nothing that contains my database, so nothing that I can kill
(Or I need to look for something else ??)
Run Code Online (Sandbox Code Playgroud)
我不能只是停止 SQL 服务,因为它包含太多无法关闭的数据库。
谁知道我该怎么做才能使数据库退出恢复模式?在主位置和镜像位置都是数据库状态“恢复中”。
更新我在sp_who2
命令中找到了一个进程DB STARTUP
。
在sys.dm_tran_locks
,我看到这个会话有一个resource_database_id
正在恢复的数据库,所以这会保持数据库锁定。任何人都知道如何在不停止 SQL Server 的情况下解决这个问题?
小智 6
重启数据库镜像端点:
--To stop
ALTER ENDPOINT<Endpoint Name> STATE=STOPPED
--To start
ALTER ENDPOINT<Endpoint Name> STATE=STARTED
Run Code Online (Sandbox Code Playgroud)
技术说明:如果有多个数据库,而不仅仅是出错的数据库,那么停止和启动端点会影响该端点上的所有数据库。这可能会导致 SharePoint 等生产系统出现问题。要修复,请转到另一个镜像数据库服务器并输入相同的命令:ALTER ENDPOINT STATE=STOPPED ALTER ENDPOINT STATE=STARTED
如何找到终点的名称?select * from sys.endpoints <- 适用于 SQL 2012 名称将为“ type=4 ”用于镜像。