我正在运行 MSSQL Server 2012 RC 0。
我正在使用管理工作室创建数据库的备份,然后在同一台服务器上使用不同的数据库名称进行恢复。
我可以正常创建备份,但是当我去恢复备份时,我输入了我想要创建的数据库的新名称(该名称不存在)。
然后我收到一条错误消息:
“恢复数据库‘newdatabasename’失败……由于数据库正在使用中,因此无法获取独占访问权限。
我知道互联网上有很多关于此内容的信息,但它更适合于通过同一个数据库进行恢复。
它指的是哪个数据库?旧数据库?我不明白为什么它会引用旧数据库,因为我正在从完整备份文件中恢复。新数据库甚至还没有创建,所以我也不明白为什么它会引用那个。
任何帮助都值得感激!
答案1
请在 SSMS 中执行以下查询,并将输出中“DatabaseName”列的值与您尝试恢复的数据库名称进行比较。
RESTORE HEADERONLY FROM DISK = 'path of your backup file"
我怀疑备份文件包含一些已经存在的其他数据库的数据库备份。
答案2
使用 T/SQL 恢复数据库。执行恢复的 GUI 非常烦人。
use master
go
RESTORE DATABASE NewDatabaseNAme from disk='D:\Path\To\Backup\File.bak'
with move 'OldDatabaseFile' to 'e:\Path\To\New\NewDatbaseName.mdf',
move 'OldDatabaseLog' to 'e:\Path\To\New\NewDatabaseName_Log.ldf'
GO