程序人生,软件一生。

欢迎来到顾祥先的网站
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

用第三方工具

Log Explorer 3.2

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 for SQL Server v4.0.2
http://js.fixdown.com/soft/8324.htm

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

用解压缩密码解开后,压缩包里也有一个注册机的

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

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

log explorer使用的几个问题

1)对数据库做了完全 差异 和日志备份
备份时选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时
提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才的记录了


如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志

2)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复

3)然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.


3)
不要用SQL的备份功能备份,搞不好你的日志就破坏了.

正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.

然后启动SQL服务,用log explorer恢复数据


--------------------------------------------------------------------------------------
怎么样用数据库日志文件恢复数据库?
1:在企业管理器中恢复  
2:用sql语句恢复  
3:other  
---------------------------------------------------------------  
 
用数据库日志文件恢复数据库  
必需是在有完整備份的基礎上進行的      
 
 
1:在企业管理器中恢复:  
   所有工作中有一個retore  database  菜單  
   先進行完整備份數據的恢復  
   如果有差異備份可以同事恢復  
 
     然後再進行日志備份的數據恢復,選擇到某個時間進行恢復即可恢復到該時間點的數據。  
 
2:SQL  
   restore  database  res  from  disk='res.bak'    with  norecovery    (完整備份的恢復)  
RESTORE  log  res  from  disk='restran.bak'    with  stopat='2002/10/18  16:00'  
 
 
 
---------------------------------------------------------------  
 
我上面說的就是可以將數據庫恢復到某時間之前啊  
 
前提是你必需有完整備份  
如果你的完整備份是早上8:00做的  
然後你在12:00做了一次日志備份  
用以上語句你就可以恢復到8:00--12:00任何一個時刻的數據  
 
 
光有日志備份是沒有用的  
我想除非微軟的人自己才可以  
 
 
---------------------------------------------------------------  
 
恢复之前,要将DATABASE配置成"SINGLE  USE  "  
USE  MASTER  
GO  
SP_DBOPTION  'RES','single  user',true  
go  
restore  database  res  from  disk='res.bak'    with  norecovery  --(完整備份的恢復)  
go  
RESTORE  log  res  from  disk='restran.bak'    with  stopat='2002/10/18  16:00'  
go  
SP_DBOPTION  'RES','single  user',false  
go  
 
---------------------------------------------------------------  
 
我們來模擬一下好嗎  
假如每天早上8:00我們會為sql做一個完整備份  
中午12:00時候,你不小心將一個table的數據給幹掉了  
 
這個時候如果你隻是用8:00做的完整備份去恢復的話  
你隻能將數據恢復到8:00時候的數據,而8:00後的數據都將丟失  
 
但是如果你在12:00  馬上做一個日志備份  
這個時候你先用8:00  時候的完整備份做恢復  
然後又用日志備份去恢復8:00之後的數據  
 
假如你是12:00誤刪了數據,  
你可以用stopat=''2002/11/8  11:59'  的日志恢復方法  
將數據恢復到11:59的狀態  
 
而11:59的時候,你還沒有誤刪數據  
這正是我們要的效果