解决”文件中的备份集是由BACKUP DATABASE...FILE=创建的,无法用于此还原操作“的问题
本文导语: 操作环境:SQL SERVER2000 还原数据库时,出现了如标题所示的错误提示。 网上给出的参考网址:http://topic.csdn.net/t/20040107/11/2641158.html 以下是具体的还原步骤: 1. RESTORE filelistonly from disk='E:qq' 注意其LogicName即可。 --...
操作环境:SQL SERVER2000
还原数据库时,出现了如标题所示的错误提示。
网上给出的参考网址:http://topic.csdn.net/t/20040107/11/2641158.html
以下是具体的还原步骤:
1. RESTORE filelistonly from disk='E:qq'
注意其LogicName即可。
--按网上的写法还可以用以下两条语句查看一些其他信息,也可以不用
RESTORE LABELONLY from disk='E:qq'
2. 将.mdf文件恢复出来
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