"文件中的备份集是由BACKUP DATABASE...FILE=创建的,无法用于此还原操作"的解决办法
2009-04-03 08:57
351 查看
操作环境:SQL SERVER2000
昨天在帮别人还原数据库时,出现了如标题所示的错误提示,从网上搜了一下,使用邹建的办法恢复成功。
现将邹先生的回答整理了一下,期望遇到同样问题的朋友能尽快解决问题。
参考网址:http://topic.csdn.net/t/20040107/11/2641158.html
以下是还原步骤:
1. RESTORE filelistonly from disk='E:\qq'
注意其LogicName即可。
--按网上的写法还可以用以下两条语句查看一些其他信息,也可以不用
RESTORE headeronly from disk='E:\qq'
RESTORE LABELONLY from disk='E:\qq'
2. 将.mdf文件恢复出来
RESTORE DATABASE personnelDB FILE =N'personnelDB'
FROM Disk='E:\qq'
WITH MOVE 'personnelDB' TO 'c:\personnelDB_Data.mdf'
--注意:此步骤的personnelDB是数据库逻辑文件名,即在第一步中看到的LogicName
3. 此时,数据库会置疑,将它分离出来(我遇到的提示是:正在装载,而不是置疑)
4. 将恢复出的mdf文件备份一下
5. 停止SQL服务
6. 新建一个同名的数据库
7. 用上面备份的数据文件覆盖新建数据库的数据文件
8. 重新启动SQL服务
9. 在查询分析器中执行下面的语句:
USE MASTER
GO
--将当前服务器的全局配置设置'ALLOW UPDATES'的值设为1,即允许用户更新系统表
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
--将系统表SYSDATABASES中personnelDB数据库的状态值改为32768(表示紧急情况模式)
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='personnelDB'
GO
--将数据库设为只允许一个用户访问
sp_dboption 'personnelDB', 'single user', 'true'
GO
--检查数据库
DBCC CHECKDB('personnelDB')
GO
--将数据库的状态改为28(丛书中没有说明28表示什么,大概是正常状态吧)
update sysdatabases set status =28 where name='personnelDB'
GO
--将服务器改回到不允许修改系统表状态
sp_configure 'allow updates', 0 reconfigure with override
GO
--将数据库改到多用户状态
sp_dboption 'personnelDB', 'single user', 'false'
GO
昨天在帮别人还原数据库时,出现了如标题所示的错误提示,从网上搜了一下,使用邹建的办法恢复成功。
现将邹先生的回答整理了一下,期望遇到同样问题的朋友能尽快解决问题。
参考网址:http://topic.csdn.net/t/20040107/11/2641158.html
以下是还原步骤:
1. RESTORE filelistonly from disk='E:\qq'
注意其LogicName即可。
--按网上的写法还可以用以下两条语句查看一些其他信息,也可以不用
RESTORE headeronly from disk='E:\qq'
RESTORE LABELONLY from disk='E:\qq'
2. 将.mdf文件恢复出来
RESTORE DATABASE personnelDB FILE =N'personnelDB'
FROM Disk='E:\qq'
WITH MOVE 'personnelDB' TO 'c:\personnelDB_Data.mdf'
--注意:此步骤的personnelDB是数据库逻辑文件名,即在第一步中看到的LogicName
3. 此时,数据库会置疑,将它分离出来(我遇到的提示是:正在装载,而不是置疑)
4. 将恢复出的mdf文件备份一下
5. 停止SQL服务
6. 新建一个同名的数据库
7. 用上面备份的数据文件覆盖新建数据库的数据文件
8. 重新启动SQL服务
9. 在查询分析器中执行下面的语句:
USE MASTER
GO
--将当前服务器的全局配置设置'ALLOW UPDATES'的值设为1,即允许用户更新系统表
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
--将系统表SYSDATABASES中personnelDB数据库的状态值改为32768(表示紧急情况模式)
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='personnelDB'
GO
--将数据库设为只允许一个用户访问
sp_dboption 'personnelDB', 'single user', 'true'
GO
--检查数据库
DBCC CHECKDB('personnelDB')
GO
--将数据库的状态改为28(丛书中没有说明28表示什么,大概是正常状态吧)
update sysdatabases set status =28 where name='personnelDB'
GO
--将服务器改回到不允许修改系统表状态
sp_configure 'allow updates', 0 reconfigure with override
GO
--将数据库改到多用户状态
sp_dboption 'personnelDB', 'single user', 'false'
GO
相关文章推荐
- VS2012与VS2015同时安装用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No such file or directory”的解决办法
- SQL2005:SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法
- SQL_server2000以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
- 安装SQL Server 2000出现“以前进行的程序安装创建了挂起的文件操作”的解决办法
- SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决
- visual studio solution file *.sln文件无法双击打开解决办法
- "某个程序安装已在安装计算机上创建挂起的文件操作" 解决办法
- 使用idea初次创建maven项目无法创建Java文件的解决办法
- 郁闷N天了,IDFTP发生10054错误后无法继续上传文件,重新创建IDFTP后发生错误:550 cannot create file。请教解决方法
- 某个程序安装已在安装计算机上创建挂起的文件操作" 解决办法
- 某个程序安装已在安装计算机上创建挂起的文件操作的解决办法(sql server)
- SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作……错误:3219……”的解决方法
- 关于:以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
- SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作……错误:3219……”的解决方法
- 以前的某个程序安装已在安装计算机上创建挂起的文件操作(SQL2000安装) 解决办法
- 关于:以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
- SQLSERVER2000以前的某个程序安装已在安装计算机上创建挂起的文件操作解决办法
- fatal error C1083: 无法打开包括文件:“sched.h”: No such file or directory 的解决办法
- [MSSQL]以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
- MS SQL执行大脚本文件时,提示“未能完成操作,存储空间不足,无法处理此命令”的解决办法