"文件中的备份集是由BACKUP DATABASE...FILE=

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

 

转载于:https://www.cnblogs.com/lgzslf/archive/2009/04/03/1428643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值