日期:2014-05-18  浏览次数:20312 次

如何通过数据库的日志文件恢复数据
因误操作执行了delete   table且没有数据库备份,能否通过SQLSERVER的日志文件来恢复数据?该怎么做请高人指点!

------解决方案--------------------
只要日志在, 去找一个叫 log explorer 的软件生成 undo 的语句就行了.
------解决方案--------------------
用Log Explorer恢复。


Log Explorer

http://www.ttdown.com/SoftDown.asp?ID=14562
http://www.yiii.net/app/servlet/net.yiii.club.DownloadServlet?Information_Id=I00023471
解压缩密码 www.heibai.net

http://www.ttdown.com/softview_8647.htm


注册机产生的是注册码,是两个

用解压缩密码解开后,压缩包里也有一个注册机的
打开log explorer file=> attach log file-> 选择服务器和登陆方式-> connect->
选择数据库-> attach-> 左面对话框中browse-> view log-> 就可以看到log记录了
想恢复的话: 右键log记录 undo transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行
T-sql代码就可以了

例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....


系统中有一个数据库DB1,系统正在使用的过程中,不小心删除了某表T1的数据
现我可以按照用完整备份文件加日志备份时间点TIME1恢复的方法来恢复该数据库

但问题出在该数据库一直还必须在使用中,所以除了你删除了数据的TA表外,其它的
表的数据你不能只是恢复到错误时间点TIME1处,因为,TIME1以后也有数据变化

解决这个问题有两个方法
1:用LOG EXEPLORE 可以轻松搞定

2:先建立一个数据库DB2,将完整备份文件恢复到DB2中,再用DB2中的T1数据来更新
DB1中的T1数据即可.


--查看备份信息
RESTORE FILELISTONLY FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup '

--还原旧的备份
RESTORE DATABASE db2 FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup ' with replace,norecovery,
move 'db1_Data ' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_data.mdf ',
move 'db1_Log ' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_log.ldf '

--还原数据日志到时间点
restore log db2 from disk= 'db_log_backup ' with stopat= '2003/4/22 9:57 '



------解决方案--------------------
log explorer 的undo恢复,我有log exploer4.10