admin 管理员组文章数量: 887021
2023年12月22日发(作者:propertychange)
SQLServer2005数据库可疑状态解决办法
(2012-04-08 23:08:53)
转载▼
标签: 分类: 业务交流
数据库
sqlserver
it
服务器异常断电,或者系统异常关机等都可能引起SQLServer2005数据库实例状态变成可疑,导致数据库实例无法正常启动。这里介绍一个不用分离-附加的好办法,将数据库置为应急状态处理,回退掉异常状态时没有保存的数据信息。
新建查询,输入如下语句,执行即可:
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE DB_NAME SET EMERGENCY
GO
sp_dboption DB_NAME 'single user', 'true'
GO
DBCC CHECKDB(' DB_NAME ','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE DB_NAME SET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption ' DB_NAME ', 'single user', 'false'
GO
SQL2005里的数据库变成可疑,分离后附加...
(离问题结束还有0天0小时)
服务器上2005的数据库,a数据库某天后面突然多了可疑两字,分离后,附加不上去了。现在只有mdf文件好用,根据提示好像是ldf文件受损。在网上了找了很多资料,不过大多是根据2000来的,我试过其中一个说是新建一个数据库,将要还原的数据库的mdf文件覆盖它的,怎样,怎样,结果还是不行,测试数据库并没有出现他说的紧急状态,如何修改呢?还有就是改成了紧急状态后又如何将它改成正常状态呢?救命呀,请各位帮帮忙,急死人了。
我来回答
其他回答
回答者:fannisite -等级:[程序员] 3 回应- 09-01-28 21:46
--參考
据库置疑的处理办法
在MS SQLSERVER中一直有这样的问题,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_
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_,DBNAME_移走:
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
补充一点,如果用DOMAINUSER时,要注意对.的所在目录的权限
SQL SERVER 2005 数据库状态为“可疑”的解决方法
--说明:MyDB为修复的数据名
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE MyDB SET EMERGENCY
GO
sp_dboption 'MyDB', 'single user', 'true'
GO
DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE MyDB SET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption 'MyDB', 'single user', 'false'
GO
版权声明:本文标题:SQLServer2005数据库可疑状态解决办法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703256226h444336.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论