本文介绍: SQL SERVER 2000数据库服务重启之后系统库以外的其它库都会出现置疑(置疑之前没有备份的库。除非是置疑前一秒刚备份完,或者是备份没有使用可以直接恢复):1、停掉SQL SERVER 服务(开始–控制面板管理工具–服务–MSSQLSERVER–右键停止)2、找到置疑库的数据文件mdf和ldf存放位置备份文件到其它文件夹3、重启SQL SERV

SQL SERVER 2000数据库,服务重启之后系统库以外的其它库都会出现置疑(置疑之前没有备份的库。除非是置疑前一秒刚备份完,或者是备份没有使用可以直接恢复):

1、停掉SQL SERVER 服务(开始–控制面板管理工具–服务–MSSQLSERVER–右键停止)

2、找到置疑库的数据文件mdf和ldf存放位置备份文件到其它文件夹

3、重启SQL SERVER服务

4、新建与置疑库同名的新库

5、停掉SQ L SERVER服务

6、用置疑库的mdf文件覆盖新同名库的mdf文件(ldf文件不用覆盖)

7、重启SQL SERVER服务

8、此时可以看出新建的库也是置疑状态

9、运行命令

  1. use master      
  2. go      
  3. sp_configure allow updates,1 reconfigure with override      
  4. go      
  5. update sysdatabases set status =32768 where name=‘置疑的数据库名称     
  6. go      
  7. sp_dboption ‘置疑的数据库名称single usertrue     
  8. go      
  9. dbcc checkdb(‘置疑的数据库名称)       
  10. go      
  11. update sysdatabaseset status =28 where name=‘置疑的数据名称     
  12. go      
  13. sp_configure allow updates’, 0 reconfigure with override      
  14. go       
  15. sp_dboption ‘置疑的数据名称‘single userfalse     
  16. go   

10、此时一般库就算是恢复正常,可以用了。

但是也有情况,备份此库的时候提示为紧急状态打开数据库不可以备份操作,那么应该怎么解决这个问题呢:

11、停掉SQL SERVER服务,找到置疑库的ldf文件,并且删除

12、设置数据库允许直接操作系统表(此操作可以在SQL Server EnterpriseManager里面选择数据库服务器,按右键选择属性”,在“服务器设置页面中将“允许对系统目录直接修改”一项选中。)

13、设置置疑的库为紧急修复模式

  1. update sysdatabaseset status=-32768 where dbid=DB_ID(‘置疑的数据库名称)  

关闭打开企业管理器,此时可以在SQL Server EnterpriseManager里面看到该数据库处于“只读置疑脱机紧急模式”可以看到数据库里面的表,但是仅仅有系统表

14、重建数据库日志文件

[sql] 
view plain 
copy

  1. dbcc rebuild_log(‘置疑的数据库名称’,‘(置疑的数据库路径)E:Microsoft SQL ServerData置疑的数据库名称_log.ldf’)  

执行过程中,如果遇到下列提示信息
服务器: 消息 5030,级别 16,状态 1,行 1
未能排它地锁定数据库以执行操作
DBCC 执行完毕。如果 DBCC 输出错误信息,请与系统管理员联系。
说明您的其他程序正在使用该数据库,如果刚才您在F步骤使用SQL Server EnterpriseManager打开了eisdoc库的系统表,那么退出SQL Server EnterpriseManager就可以了。(关闭企业管理器,如果别的机器网络访问数据库,也把网络关闭)
正确执行完成的提示应该类似于:
警告: 数据库 ‘eisdoc‘ 的日志已重建。已失去事务一致性。应运行 DBCC CHECKDB以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出错误信息,请与系统管理员联系。
此时打开在SQL Server EnterpriseManager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

15、验证数据库一致性(可省略)

[sql] 
view plain 
copy

  1. dbcc checkdb(‘置疑的数据库名称’)  

一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 ‘置疑的数据库名称’ 中)。
DBCC 执行完毕。如果 DBCC 输出错误信息,请与系统管理员联系。
16、设置数据库为正常状态(如果没有出错,那么现在就可以正常的使用恢复后的数据库啦。)

sp_dboption ‘置疑的数据库名称’,’dbo use only‘,’false

17、关闭“允许对系统目录直接修改”一项(参考第12项操作)

因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server EnterpriseManager里面恢复。

注:

sqlserver2008数据库可疑文件的修复方式

1.设置数据库状态脚本:EXEC sp_resetstatus’eisdoc

2.设置数据库为紧急模式,脚本:ALTER DATABASEeisdoc SET EMERGENCY

3.设置数据库为单用户模式(对数据库检查修复只能在单用户模式下),脚本:ALTER DATABASEeisdoc SET SINGLE_USER

4.检查修复数据库,会提示修复数据库可能丢失数据,正常应该不会丢失数据库数据,但是数据库日志的完整性将受到破坏,脚本:DBCCCheckDB (eisdoc, REPAIR_ALLOW_DATA_LOSS)

5.恢复数据库为多用户模式,脚本:ALTER DATABASEeisdoc SET MULTI_USER

以上五步即可修复sqlserver2008中的可疑文件

以上文件,自第11步开始转自:http://blog.sina.com.cn/s/blog_61feb2110101e2ez.html

原文地址:https://blog.csdn.net/judge9999/article/details/77852652

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_13827.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注