我们有一个.bak文件,用于在Microsoft Server 2016和SQL Server 2016上进行测试。有时我们想在一台服务器上安装多个安装。我们想要的是几个相同但又分开且名称不同的数据库,它们都来自同一个.bak文件。
我总是可以恢复.bak一次,但第二次(使用不同名称的数据库)我会收到此错误:
Restore of database 'RVT_DB4_2' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)
System.Data.SqlClient.SqlError: Exclusive access could not be obtained because the database is in use. (Microsoft.SqlServer.SmoExtended)
过去我总是使用SQL 2008,从来没有遇到过这个问题。 .bak文件很可能是使用SQL 2008创建的。我甚至不确定我们是否正在恢复错误,或者我们是否恢复不正确。关于我做错了什么的提示,或者我在这里缺少什么设置?
谢谢!
答案 0 :(得分:0)
运行sp_who2并终止任何有问题的数据库的路由会话:
EXEC sp_who2
然后,您可以在执行还原之前将数据库设置为单用户模式:
ALTER DATABASE 'DATABASE' SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
运行还原,然后将其更改回多用户
ALTER DATABASE 'DATABASE' SET MULTI_USER;
但是请不要将其设置为单个用户,然后断开连接,或者您可以尝试重新使用它...
答案 1 :(得分:0)
如果使用连接到服务器的多个设备进行备份,则在联机还原期间必须具有相同数量的设备。 (微软书籍)