脱机数据库无法恢复:无法获得独占访问权限

脱机数据库无法恢复:无法获得独占访问权限

我正在练习将 SharePoint 2010 迁移到 2013,但在恢复数据库时遇到了问题。在 SP2010/SQL 2008 服务器上备份数据库后,我尝试将其恢复到我在 SP2013/SQL 2012 服务器上新创建的数据库。

通过 UI,我已将目标数据库脱机。我选择文件.bak,选择目标数据库,然后尝试恢复。我收到一条错误:Exclusive access could not be obtained because the database is in use.

为什么会发生这种情况?我已经将数据库脱机,我不知道它怎么可能还在使用。

在恢复窗口中,我尝试进入选项并选择Overwrite the existing database (WITH REPLACE)以及Close existing connections to destination database

错误信息还是一样。我该如何解决这个错误?

答案1

您是当前正在使用数据库的人吗?:)

在进行恢复之前尝试运行此操作:

USE master
Go
ALTER DATABASE YourDB
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;

这应该能让每个人都开始行动。如果没有,那么您肯定是当前正在使用该数据库的人。关闭所有使用该数据库的 SSMS 窗口并运行:

ALTER DATABASE YourDB
SET offline

答案2

这里有很多问题,还有一些我没有提到的问题,它们都是问题的一部分。这是从 SQL 2008 实例中获取的数据库备份,并在 SQL 2012 实例上恢复。这段 T-SQL 终于做到了:

RESTORE DATABASE [WSS_Content_Migrated] 
FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL\MSSQL\Backup\WSS_Content.bak' WITH 
MOVE 'WSS_Content' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL\MSSQL\Backup\WSS_Content.mdf',
MOVE 'WSS_Content_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL\MSSQL\Backup\WSS_Content.ldf'
, REPLACE

相关内容