解决”文件中的备份集是由BACKUP DATABASE...FILE=创建的,无法用于此还原操作“的问题

发布时间:2020-02-26编辑:脚本学堂
操作环境:SQL SERVER2000 还原数据库时,出现了如标题所示的错误提示。网上给出的参考网址:http://topic.csdn.net/t/20040107/11/2641158.html

操作环境: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