A. SQL2000数据库突然置疑 这是什么原因造成的 我先介绍下现象。
在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_BACKUP.DAT
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_DAT.MDF,DBNAME_LOG.LDF移走:
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时,要注意对.MDF.LDF的所在目录的权限.
灵验脚本
遇到这种数据库置疑情况,就运行下面这个脚本,屡试不爽:
======================================================
--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 master..sysdatabases 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 procere is created, immediately disable
updates to the system tables:
exec sp_configure 'allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO
B. sql server 2000 数据库质疑后重新开机后恢复正常是怎么回事
SQL
Server2000数据库出现质疑有以下原因:
(1)
数据库文件
被删除
(2)转移了数据库文件
(3)重新命名了数神数据库文件
(4)由于文件夹设置了安全访问,岁唤导致程序无法访问
(5)由于
电脑系统
的原因,导致SQL
Server无法正常访问数据库文件
从你的情况看,有可能是系统的某种原因导致第一次没有正常与数据库文件通信
但重启后通信乎瞎凯成功,这是比较正常的事情
C. 数据库的数据提示质疑是怎么回事能修复吗
数据库置疑一般是由于SQL被重装,但是数据目录被设置在另外一个盘并且没有被删除,而导致的,或者是由于数据库的.log文件不存在了,这时你可以使用以下的方法来取消置疑!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\' Go
D. 如何修复SQL数据库置疑 修复SQL数据库置疑方法
1、在实际的操作中由于突然断电或者突然断网造成数据库置疑(在企业管理器中数据库后面出现置疑两个字),下面我们通过以下方法来进行修复置疑的数据库。
2、我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。
3、停掉数据库服务器。
4、将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。
5、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。
6、设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
E. 用友U8提示账套所对应的年度数据库不存在,有没有什么办法能恢复
可以搜索一下安装目录下面有没有ZT***文件夹,再看看里面有瞎高哪没念尺有UFDATA.LDF和UFDATA.MDF这两个文件,如果有的话,可以用数据库置疑修复工具修复或进磨码数据库,重新附加。
F. SQL2000数据库msdb质疑怎么处理
原因:非正常程序中断或错误结束SQL服务,都会导致MSDB数据库被“置疑”。
Msdb 数据库供SQLServer 代理程序调度警报和作业以及记录操作员时使用。比如,我们备份了一个数据库,会在表backupfile中插入一条记录,以记录相关的备份信息。
但因为Msdb数据库并未存储特别重要的信息,因此可以从别的机器拷贝一份相同的msdbdata.mdf和msdblog.ldf覆盖掉即可。
解决步骤
A服务器为被“置疑”的服务器;B服务器上装有和A服务器相同版本的数据库软件。版本是SQL SERVER 2000。
步骤1、停止B服务器上的SQL SERVER 服务,拷贝“msdbdata.mdf”培贺和“msdblog.ldf”文件。
步骤2、停止A服务器上的SQL SERVER 服务,将从B服务器上拷贝“msdbdata.mdf”和“msdblog.ldf”文件覆盖掉A服务器上的这两个文件。
步骤3、重新启动A服务器如谈上的SQL SERVER服务。
步骤4、如果MSDB数据库仍然是置疑状态,可以执行下面的SQL。
USEMASTER
GO
SP_CONFIGURE配橡派'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE
GO
UPDATESYSDATABASESSETSTATUS=32768WHERENAME='msdb'
Go
sp_dboption'msdb','singleuser','true'
Go
DBCCCHECKDB('msdb')
Go
updatesysdatabasessetstatus=28wherename='msdb'
Go
sp_configure'allowupdates',0reconfigurewithoverride
Go
sp_dboption'msdb','singleuser','false'
Go
G. sql数据库质疑的原因及解决办法
sql数据库质疑是设置错误造成的,解决方法为:
1、通过DBCC CHECKCB('DBName') 来检测数据库异常的原因,如果可以检测到数据库的异常,其中红色部分即时数据目前存在的问题,我们也在检测结果最后看到数据的总体的错误情况的汇总。