修复SQL2000数据库置疑时出现的错误

修复SQL2000数据库置疑时出现的错误,第1张

备份数据文件,然后按下面的步骤处理: 1新建一个同名的数据库(数据文件与原来的要一致) 2再停掉sql server(注意不要分离数据库) 3用原数据库的数据文件覆盖掉这个新建的数据库 4再重启sql server 5此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 6完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用 数据库的脚本创建一个新的数据库,并将数据导进去就行了 USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名' Go sp_dboption '置疑的数据库名', 'single user', 'true' Go DBCC CHECKDB('置疑的数据库名') Go update sysdatabases set status =28 where name='置疑的数据库名' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption '置疑的数据库名', 'single user', 'false 假设数据库为TEST: 按以下步骤执行 A.设置数据库允许直接 *** 作系统表。此 *** 作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go B.设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表 C.下面执行真正的恢复 *** 作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_logldf') 执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该 *** 作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。

找到质疑的数据库文件,重新附加回来就可以。数据库文件名一般格式为ufdata_001_2012这样的 001指帐套号,2012指对应年度数据,根据实际情况查找就可以。 数据文件格式个别小版本会不是这个样子。你可以参照其他没有质疑的数据库文件名称去查找。

在MS SQLSERVER中一直有这样的问题,SQLSERVER的状态"置疑",原因约有以下几条:

1错误的删除日志;

2硬件(HD)损坏,造成日志和数据文件写错误;

3硬盘的空间不够,比如日志文件过大;

解决办法:

最简单的办法是有数据库的全备份,然后恢复即可

步骤:

1 删除原始的数据库:

USE MASTER

GO

DROP DATABASE DB_SUEPECT

2建立同名的数据库:

USE master

GO

CREATE DATABASE DB_SUSPECT

ON

( NAME = DBNAME_DAT,

FILENAME = 'C:',

SIZE = 10,

FILEGROWTH = 5 )

LOG ON

( NAME = 'DBNAME_LOG',

FILENAME = 'g:',

SIZE = 5MB,

FILEGROWTH = 5MB )

GO

3恢复数据库:

RESTORE DATABASE DB_SUSPECT

FROM DBNAME_BACKUPDAT

4数据库完整性检测:

DBCC CHECKDB('DB_SUSPECT')

5重新启动MSSQLSERVER服务

如果没有全备份,那就要用一些特殊的方法:

1设置数据库为紧急模式

Use Master

GO

sp_configure 'allow updates', 1

reconfigure with override

GO

UPDATE sysdatabases SET status = 32768 where name = 'DB_SUSPECT'

GO

2停掉SQL Server服务:

Net STOP MSSQLSERVER

3把原始数据库的数据文件DBNAME_DATMDF,DBNAME_LOGLDF移走:

4启动SQL Server服务:

Net START MSSQLSERVER

5重新建立一个同名的数据库DB_SUSPECT;

USE master

GO

CREATE DATABASE DB_SUSPECT

ON

( NAME = DBNAME_DAT,

FILENAME = 'C:',

SIZE = 10,

FILEGROWTH = 5 )

LOG ON

( NAME = 'DBNAME_LOG',

FILENAME = 'g:',

SIZE = 5MB,

FILEGROWTH = 5MB )

GO

6设置数据库运行在单用户的模式:

USE MASTER

GO

ALTER DATABASE DB_SUSPECT SET SINGLE_USER

GO

7停掉SQL服务:

Net STOP MSSQLSERVER

8把原来的数据文件再覆盖回来:

9启动SQL Server服务:

Net START MSSQLSERVER

10重新设置SQLSERVER的状态:

USE MASTER

GO

EXEC sp_resetstatus "DB_SUSPECT"

11数据库完整性检测:

DBCC CHECKDB('DB_SUSPECT')

12恢复数据库为多用户模式:

USE MASTER

GO

ALTER DATABASE DB_SUSPECT SET MULTI_USER

GO

13恢复SQLSERVER原始的配置:

USE MATER

GO

UPDATE sysdatabases SET status = 4194320 where name = 'DB_SUSPECT'

GO

14配置SQLSERVER不允许更新系统表:

USE MASTER

GO

sp_configure 'allow updates', 0

reconfigure with override

GO

15重新启动MSSQLSERVER服务:

最好重新启动 *** 作系统

16备份数据库:

可以通过SQLSERVER企业管理器或T-SQL需要备份MASTER和DB_SUSPECT

补充一点,如果用DOMAIN\USER时,要注意对MDFLDF的所在目录的权限

灵验脚本

遇到这种数据库置疑情况,就运行下面这个脚本,屡试不爽:

======================================================

--before running any script, run the following to set the

master database to allow updates

USE master

GO

sp_configure 'allow updates', 1

GO

RECONFIGURE WITH OVERRIDE

GO

--Run the following script

UPDATE mastersysdatabases SET status = status ^ 256

WHERE name = 'Database_Name'

--Run the following script

exec SP_resetstatus Database_Name

--stop and start the MSDTC at this stage

--After the procedure is created, immediately disable

updates to the system tables:

exec sp_configure 'allow updates', 0

GO

RECONFIGURE WITH OVERRIDE

GO

畅捷通数据库置疑修复工具使用的具体步骤如下:

1、输入IP数据库账号和密码后点击连接。

2、检测数据,检测数据库当前状态以及是否处于能修复状态。

3、数据分析,工具对当前数据库的状况和损毁状况进行识别。

4、修复数据,置疑/可疑状态修复过程快。

任务管理器中停止sqlserver数据库相关进程,然后去把要设置的数据库的 mdf 和 ldf 文件给移动到其他位置,再开sqlserver企业管理器看到此数据库就显示数据库质疑!~~~

以上就是关于修复SQL2000数据库置疑时出现的错误全部的内容,包括:修复SQL2000数据库置疑时出现的错误、用友u8数据库置疑怎么办、SQL2000数据库突然置疑 这是什么原因造成的 我先介绍下现象。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9749657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存