首页 > 代码库 > sqlserver备份还原数据库时报占用错误

sqlserver备份还原数据库时报占用错误

1、做项目时遇到这种情形:原来的test_dev数据库,想复制出test_ft供测试用。此时备份test_dev出test_backup文件,想直接还原成test_ft时会报占用错误。

还原数据库:The backup set holds a backup of a database other than the existing database 因为数据库正在使用,所以无法获得对数据库的独占访问权

2、原因:(1)备份文件里面保存着原有数据库及文件名称信息,默认会还原成test_dev数据库,而且file文件仍然为test_dev.mdf和test_dev_log.ldf文件。此时服务器及文件夹中已经存在test_ft及其文件,所以会发生数据库及文件占用冲突。

技术分享

(2)如果将数据库名称和file文件名修改成test_ft时,则虽然test_ft还原成功,而原来的test_dev数据库会一直处在还原状态中

3、解决方案

方案一:(1)将test_dev数据库分离或脱机

(2)不需要提前创建test_ft数据库,直接还原时,将数据库名改为test_ft,对应文件名改成test_ft.mdf和test_ft_log.ldf

(3)附加或联机test_dev

方案二:(1)不需要提前创建test_ft数据库,直接还原时,将数据库名改为test_ft,对应文件名改成test_ft.mdf和test_ft_log.ldf

(2)此时不幸出现了原因2那种情况,则删除test_dev库

(3)再次回复出test_dev库

 

4、附:普通情况下数据库被占用的处理方法

设置数据库在单用户模式下工作。
设置方法:在需要还原的数据库上右击,在右键菜单命令上选择"属性"- >"选项"- >"状态"- >"限制访问"- >"Single"

技术分享

 

sqlserver备份还原数据库时报占用错误