log文件损坏,如何恢复数据库
小弟今天遇到个问题,今天在删除数据的时候出现突然断电(数据未删除完毕还在执行).
上电后发现数据库变为灰色.请各位老大们帮忙恢复下数据库.显示为yinyu(offline)
用bring online 提示如下:error 823:210 38(到达文件结尾)detected during red at off set 0x0000000a0d0000 in file'c:\program files\microsoft SQL Server\mssql\data\yinyu_log.ldf'
问题点数:100、回复次数:11Top
1 楼didoleo(冷月无声)回复于 2005-02-22 15:19:14 得分 0
数据库服务器怎能没有 ups保护?Top
2 楼631799(杭州工人)回复于 2005-02-22 15:20:04 得分 70
.新建一个同名的数据库
2.再停掉sql server
3.用suspect数据库的文件覆盖掉这个新建的同名数据库
4.再重启sql server
5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
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', 'true'
Go
6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.
转贴:
问题:
Sql2000数据的附加时出错:
错误 3624
location:recovery.c:1996
express:curr->lon_length>0
spdi:51
process id:768
最后提示附加失败
服务器: 消息 5105,级别 16,状态 4,行 1
设备激活错误。物理文件名 'f:\database\fdzz1204_Data.ldf' 可能有误。
解决:
新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数据库文件,启动数据库,该数据库被设未suspect
然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'
把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )
恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override
然后用DBCC CHECKDB ('数据库名')看看有没有错误
如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------Top
3 楼ckw675901(龙族★旺仔)回复于 2005-02-22 15:41:20 得分 0
to 631799(杭州工人)
以上方法都有试过还是不行还有什么办法吗?
我试过用attach 也不行,它每次都提示我log文件问题把知道问题出在
那里啊.直接附加数据库不是应该直接生成一个1M的log文件的吗?
急!!!!!Top
4 楼Softlee81307(孔腎)回复于 2005-02-22 16:21:09 得分 0
upTop
5 楼oursaviour()回复于 2005-02-22 16:50:01 得分 10
先分离数据库,然后把ldf文件移走,重新附加数据库,这时应该会生成一个新的log文件.然后set online应该可以了Top
6 楼ckw675901(龙族★旺仔)回复于 2005-02-23 08:03:47 得分 0
分离不了数据库啊,数据库不是在线状态怎么分离。Top
7 楼ckw675901(龙族★旺仔)回复于 2005-02-23 08:05:50 得分 0
昨天就试过分离数据库后再附加,不行的。还有没有其他办法啊。
邹建老大在不啊有没有更好的办法啊。Top
8 楼oursaviour()回复于 2005-02-25 14:33:30 得分 10
数据库不是在线状态也可以分离的.你有没有把原来的ldf文件删除?Top
9 楼haoztao(.NET一族)回复于 2005-02-25 14:42:43 得分 0
根据log文件Top
10 楼ckw675901(龙族★旺仔)回复于 2005-03-01 08:19:24 得分 0
我试过删除了,但在不能分离,他提示本来就不在线的数据库是没办法分离的,连接不上。
用语句也不行。我也试过直接删除点log文件再附加,但他自己老是提示log文件有问题,并且没办法自动生成新的log文件。所以附加不成功Top
11 楼yesyesyes()回复于 2005-03-01 09:05:36 得分 10
照理没有ldf也能附加的
可能是mdf损坏了吧?Top




