sql数据库置疑修复

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、运行命令:

使用master go sp _ configure & # 39允许更新& # 39;,1用override go重新配置update sysdatabases set status = 32768,其中name = & # 39可疑的数据库名称& # 39;go sp _ dboption & # 39可疑的数据库名称& # 39;, '单用户& # 39;, '真& # 39;go dbcc checkdb(& # 39;可疑的数据库名称& # 39;)去更新sysdatabases set status =28其中name = & # 39可疑的数据库名称& # 39;go sp _ configure & # 39允许更新& # 39;,0用override go sp_dboption重新配置& # 39;可疑的数据库名称& # 39;, '单用户& # 39;, '假& # 39;走10。这时,总库恢复正常,可以使用了。

但是,在某些情况下,备份该库时,会提示无法备份在紧急状态下打开的数据库。那么应该如何解决这个问题呢?

11.停止SQL SERVER服务,找到可疑库的ldf文件并将其删除。

12.设置数据库允许直接操作系统表(这个操作可以通过在SQL Server EnterpriseManager中选择数据库服务器,右键选择Properties,在服务器设置页面选择“允许直接修改系统目录”来完成。)

13.将可疑库设置为紧急修复模式。

更新sysdatabases set status=-32768,其中dbid = DB _ ID(& # 39;可疑的数据库名称& # 39;)关闭并打开企业管理器。此时,您可以看到数据库在SQL Server EnterpriseManager中处于“只读\\怀疑\\脱机\\紧急模式”。您可以看到数据库中的表,但只有系统表。

14.重建数据库日志文件

dbcc rebuild _ log(& # 39;可疑的数据库名称& # 39;,'(可疑数据库路径)E:\\Microsoft SQL Server\\Data\\可疑数据库名称_ log.ldf & # 39)在执行过程中,如果遇到以下消息:
Server:消息5030,级别16,状态1,第1行
未能以独占方式锁定数据库来执行此操作。
DBCC完蛋了。如果DBCC输出错误消息,请联系系统管理员。
这意味着您的其他程序正在使用该数据库。如果您刚刚在步骤f中用SQL Server EnterpriseManager打开了eisdoc库的系统表,只需退出SQL Server EnterpriseManager即可。(关闭企业管理器,如果其他机器从网络访问数据库,也要关闭网络)
正确执行的提示应该类似于:
警告:数据库& # 39;eisdoc & # 39的日志已重建。事务的一致性已经丢失。您应该运行DBCC CHECKDB来验证物理一致性。必须重置数据库选项,并且可能需要删除冗余的日志文件。
DBCC完蛋了。如果DBCC输出错误消息,请联系系统管理员。
当您在SQL Server EnterpriseManager中打开它时,您会看到数据库的状态是“仅限DBO”。现在,您可以访问数据库中的用户表。

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

dbcc checkdb(& # 39;可疑的数据库名称& # 39;)一般执行结果如下:
CHECKDB发现0个分配错误和0个一致性错误(在数据库中& # 39;可疑的数据库名称& # 39;中等)。
DBCC完蛋了。如果DBCC输出错误消息,请联系系统管理员。
16。将数据库设置为正常状态(如果没有错误,现在可以正常使用恢复后的数据库了。)

sp _ dboption & # 39可疑的数据库名称& # 39;,'dbo只使用& # 39;,'假& # 39;

17.关闭“允许直接修改系统目录”项(参见第12项操作)。

因为平时直接操作系统表很危险。当然,我们可以在SQL Server EnterpriseManager中恢复它。

注意:

sqlserver2008数据库中可疑文件的修复方法:

1.设置数据库状态,脚本:EXEC sp _ resetstatus & # 39eisdoc & # 39

2.将数据库设置为紧急模式。脚本:Alter DatabaseiSdoc Set Emergency。

3.将数据库设置为单用户模式(只能在单用户模式下检查和修复数据库),脚本:alter databaseisdoc set single _ user。

4.检查并修复数据库,系统会提示您修复数据库,这可能会丢失数据。通常,数据库数据不会丢失,但是数据库日志的完整性会被破坏。脚本:dbcc checkdb (EISDoc,repair _ allow _ data _ loss)。

5.将数据库还原到多用户模式。脚本:alter databaseisdoc set multi _ user。

以上五个步骤可以修复sqlserver2008中的设置。

可疑文件

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论