在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数据库处于质疑状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)