admin管理员组文章数量:1567918
2024年7月2日发(作者:)
解决SQLServer 2008 数据库质疑(挂起)问题
Step1.执行语句,改变数据库状态
EXEC SP_RESETSTATUS 'Your DBName'
GO
Step2:重置数据库状态之后,我们就应该对质疑的数据库执行DBCC CHECKDB命令,
查看下为什么数据库会出现质疑状态.
DBCC CHECKDB('Your DBName') WITH NO_INFOMSGS,ALL_ERRORMSGS
Go
Step3:找到原因之后,那么就好解决了.看报错信息中,已说明了PK中存在重复值.首先,
将每个索引的脚本导出为sql文件.之后再将表中主键栏位里的duplicate的行删除掉
Step4:现在最好再立即执行下DBCC CHECKDB命令确认下是否还有错误信息.之后
确认没有,那么再将之前索引的脚本创建进去.
Step5:在Index创建完毕之后,立即执行下DBCC CHECKDB命令确认下是否还有错
误信息.确认无误,那么就需要立即对数据库执行一次完全备份作业.
针对SQL 2000挂起情况进行修复
Step1:设置数据库为紧急模式
Use Master
GO
sp_configure 'allow updates', 1
reconfigure with override
GO
UPDATE sysdatabases SET status = 32768 where name = 'TEST'
GO
Step2:停止数据库服务
通过Windows服务或者SQLServer管理器.
Step3:把原始数据库的数据文件DBNAME_,DBNAME_移走
Step4:启动SQL Server服务
Step5.重新建立一个同名的数据库TEST;
USE master
GO
CREATE DATABASE TEST
ON
( NAME = DBNAME_DAT,
FILENAME = 'C:',
SIZE = 10,
FILEGROWTH = 5 )
LOG ON
( NAME = 'DBNAME_LOG',
FILENAME = 'g:',
SIZE = 5MB,
FILEGROWTH = 5MB )
GO
Step6:设置数据库运行在单用户的模式:
USE MASTER
GO
ALTER DATABASE TEST SET SINGLE_USER
GO
Step7: 停掉SQL服务
Step8:把原来的数据文件再覆盖回来
Step9:启动SQL Server服务
Step10:设置数据库为紧急模式
Use Master
GO
sp_configure 'allow updates', 1
reconfigure with override
GO
UPDATE sysdatabases SET status = 32768 where name = 'TEST'
GO
Step11:修复数据库错误
DBCC CHECKDB('TEST', REPAIR_ALLOW_DATA_LOSS)
Step12.恢复数据库为多用户模式
USE MASTER
GO
ALTER DATABASE TEST SET MULTI_USER
GO
Step13.恢复SQLSERVER原始的配置
USE MATER
GO
UPDATE sysdatabases SET status = 4194320 where name = 'TEST'
GO
Step14:配置SQLSERVER不允许更新系统表
USE MASTER
GO
sp_configure 'allow updates', 0
reconfigure with override
GO
Step15:重新启动MSSQLSERVER服务,最好重新启动操作系统.
Step16:备份数据库
特殊情况:不知道为什么,质疑修复后,数据库恢复正常了。但是重启了下服务器后,
数据库又是质疑状态。最后只有使用导入导出将数据库对象导出到另外一个新的数据库中,
最后将之前出现质疑的数据库删除掉,再将后来新建的数据库rename为之前的数据库名
称
版权声明:本文标题:解决SQLServer 2008 数据库质疑 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1719920238a808068.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论