SQL2000数据库突然置疑 这是什么原因造成的 我先介绍下现象。

SQL2000数据库突然置疑 这是什么原因造成的 我先介绍下现象。,第1张

在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

因为你把数据库的物理文件删除了,但是数据库中还有。

A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager

里面建立。

B.停掉数据库服务器。

C.将刚才生成的数据库的日志文件test_logldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据

在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、在实际的 *** 作中由于突然断电或者突然断网造成数据库置疑(在企业管理器中数据库后面出现置疑两个字),下面我们通过以下方法来进行修复置疑的数据库。

2、我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。

3、停掉数据库服务器。

4、将刚才生成的数据库的日志文件test_logldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_datamdf。

5、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何 *** 作。

6、设置数据库允许直接 *** 作系统表。此 *** 作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。

如果说还可以创建数据库。只是某个数据库出现可疑,那就是我说的那两个文件被删或者移除追问:

一直在运行的啊!好好的没删除啊!我用过很多办法都不行啊我脱离然后再附加曾经遇到这样的问题!我试过把mdf拿去其他机,然后成功!我就备份BAK回来原来新建还原都很顺利!这次就是不行。回答:

是整个服务器质疑还是只是一个数据库?还能建库吗?既然祢有备份那就附加,如果附加不了估计就是服务器问题。建议把Sql重新装下。估计就好了

有9个数据库,各种程序都有!同样的程序的数据库有三个,有两个出问题!之前出问题的也是同一种程序新装SQL的话,我全部停止几个小时,肯定有损失的而且麻烦!我不能次次遇见这样的问题就新装SQL吧!

我总要找个解决的办法的啊哪怕出现“可疑”后能够备份BAK数据库也好!

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

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

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

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

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

如果说还可以创建数据库。只是某个数据库出现可疑,那就是我说的那两个文件被删或者移除追问:

一直在运行的啊!好好的 没删除啊!我用过很多办法都不行啊 我脱离 然后再附加 曾经遇到这样的问题!我试过把mdf拿去其他机,然后成功!我就备份BAK回来原来新建 还原 都很顺利!这次就是不行。回答:

是整个服务器质疑还是只是一个数据库?还能建库吗?既然祢有备份那就附加,如果附加不了估计就是服务器问题。建议把Sql重新装下。估计就好了

有9个数据库 ,各种程序都有!同样的程序的数据库有三个,有两个出问题! 之前出问题的也是同一种程序新装SQL的话,我全部停止几个小时,肯定有损失的 而且麻烦! 我不能次次遇见这样的问题就新装SQL吧!

我总要找个解决的办法的啊 哪怕出现“可疑”后能够备份BAK数据库也好!

我也经常用数据库,也出现过质疑,基本就是我说的那两种情况,我仔细想了下,既然是质疑,我想肯定那两个备份文件服务器默认找不到的缘故,只能是被移除或者更名但是祢又说备份在呢还可以附加。而且祢又有那么多库。不能停!祢给我截个图吧。

以上就是关于SQL2000数据库突然置疑 这是什么原因造成的 我先介绍下现象。全部的内容,包括:SQL2000数据库突然置疑 这是什么原因造成的 我先介绍下现象。、SQL数据库数据为什么出现质疑、紧急求助,SQL2000数据库处于质疑状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存