开机后,sql数据库置疑

ChinaJiaBing 2009-08-12 09:30:12
断电后,数据库置疑的解决方法汇总?
...全文
2809 点赞 收藏 32
写回复
32 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
小_爱 2009-08-27
[Quote=引用 5 楼 happyflystone 的回复:]
先试试多次重启DB ,试试自恢行不行
[/Quote]

这个不错我成功过
回复
xiaozejun 2009-08-27
楼上的都是一些牛人啊
回复
xu_119 2009-08-27
up
回复
等待戈多12 2009-08-18

--以下方法自己用过,一定机率可行
一、分离数据库,再附加
二、
1.将已破坏的老数据库更名如Test_Data.Mdf ==>Test_Data.Md_ ,并在原来位置新建一同名数据库 如Test_Data.Mdf .
2. 停止SQL, 将新数据库更名(Test_Data.Mdf ==> Test_Data.Md2),
待修复老数据库更名为原先名称Test_Data.Md_ ==> Test_Data.Mdf
3.启动SQL , 并进入查询分析器中, 执行如下命令:
USE MASTER
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = 'Test'
4. 把LDF文件改名,再执行
DBCC REBUILD_LOG ('Test', 'E:\test\Test_Log.LDF' )
5. 恢复数据库紧急模式
update sysdatabases set status = 0 where name = 'Test'
6. 执行
restore database Test WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override
7. 检查数据库看看有没有错误, 应该可以看到数据了
DBCC CHECKDB ('Test')

回复
zhangben1986 2009-08-18
学习学习啊
回复
ai_li7758521 2009-08-14
网上很多质疑恢复办法,石头哥的最简洁。
回复
alisafan123 2009-08-13
[Quote=引用 14 楼 wsxcdx 的回复:]
收藏学习
[/Quote]收藏学习
回复
ks_reny 2009-08-13
[Quote=引用 6 楼 soft_wsx 的回复:]
太长了,
这是我的实际经验
SQL code1、无法打开数据库qpos,恢复操作已将数据库标记为supect’ 数据库置疑(用DBCC时提示数据处于回避恢复模式)
方法1)新建数据库,用有问题的数据库覆盖有问题的数据库,并删除新建数据库中的日志文件2)设置数据库允许直接操作系统表use mastergo sp_configure'allow updates',1goreconfigurewith overridego3)设置数据为紧急恢复模式update sysdatabasesset status=-32768where dbid=DB_ID('qpos_old')4)重建数据库的日志文件dbcc rebuild_log('qpos_old','D:\sql\MSSQL\Data\qpos_old_log.ldf')5)检查数据是否正常dbcc checkdb('qpos_old')CHECKDB发现了0个分配错误和0个一致性错误(在数据库'test'中),说明数据库已恢复6)设置数据库为多用户sp_dboption'qpos_old','dbo use only','false'7)将数据库允许直接操作系统表取消 sp_configure'allow updates',0goreconfigurewith overrideEXEC sp_dboption'qpos_old','Single User','TRUE' 将数据库改名为正式数据库名EXEC sp_renamedb'qpos_old','qpos'EXEC sp_dboption'qpos','Single User','FALSE'
[/Quote]
支持原创。
回复
zzz1975 2009-08-13
学习贴
有价值,我就不重复贴了
回复
SQL77 2009-08-13
重启一下,或者用备份恢复一下,上次有人这样解决了
回复
da003 2009-08-13
先停止MSSQL服务,备份MDF和LDF(即复制到其它地方),再开服务,在管理器里分离,再附加.
回复
xiequan2 2009-08-13
[Quote=引用 18 楼 xiequan2 的回复:]
用备份还原可以解决
[/Quote] 如果以前有完全备份的话,做一个日志备份,用完全备份和日志备份就可以还原到故障前
回复
csdyyr 2009-08-13
--把tigerzz改为你的数据库

--1,先停止服务器,然后备份tigerzz_Data.mdf和tigerzz_Log.ldf文件。
--2,启动服务器,然后删除数据库tigerzz。
--3,建立一个供恢复使用的数据库tigerzz。
--4,停止数据库服务器。
--5,将刚才生成的数据库的日志文件tigerzz_Log.ldf删除,用要恢复的数据库tigerzz_Data.mdf文件
-- 覆盖刚才生成的数据库数据文件tigerzz_Data.mdf。
--6, 启动数据库服务器。此时数据库tigerzz的状态为“置疑”。
--7,在查询分析器运行下面代码,允许对系统目录修改
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
--8,设置数据库tigerzz为紧急修复模式
update sysdatabases set status = 32768 where name ='tigerzz'
go
--9,重建数据库日志文件
dbcc rebuild_log('tigerzz','E:\Program Files\Microsoft SQL Server\MSSQL\Data\tigerzz_Log') --改为你的目录
go
--10,验证数据库一致性
DBCC CHECKDB('tigerzz')
go
--11,恢复数据库为正常状态
sp_dboption 'tigerzz','dbo use only','false'
go
--12,禁止修改系统选项
sp_configure 'allow updates',0
go
reconfigure with override
go
回复
xiequan2 2009-08-13
用备份还原可以解决
回复
zc_0101 2009-08-13

MSDB数据库置疑后的恢复:

USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1
RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb'
Go
sp_dboption 'msdb', 'single user', 'true'
Go
DBCC CHECKDB('msdb')
Go
update sysdatabases set status =28 where name='msdb'
Go
sp_configure 'allow updates', 0
reconfigure with override
Go
sp_dboption 'msdb', 'single user', 'false'
Go

回复
Andy__Huang 2009-08-13
进入企业管理器分离数据库,然后再附加数据库

如果访问数据库不是sa,那么附加后先把原来用户删除,再建立与原来一样的用户

回复
Zoezs 2009-08-13
up,sf
回复
wsxcdx 2009-08-13
收藏学习
回复
lao_bulls 2009-08-13
收藏学习
回复
ChinaJiaBing 2009-08-13
有没有遇到过,是sql2000...
我是新建一个数据库,然后一张一张表导的解决的
回复
加载更多回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2009-08-12 09:30
社区公告
暂无公告