• MS sqlserver數據恢復


    [ 来源:guxx  更新时间:2005-1-11 ]

    用第三方工具

    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
    解压缩密码 http://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的時候,你還沒有誤刪數據  
    這正是我們要的效果

    转载请注明来源:文章大全 网址:http://www.itlearner.com/article/
  • 相关阅读:
    JDBC的URL
    使用CablleStatement调用存储过程
    PreparedStatement执行sql語句
    使用Statement执行DML和DQL语句
    使用Statement对象执行静态sql语句
    JDBC接口核心的API
    MapReduce源代码分析之JobSubmitter(一)
    React Native Android入门实战及深入源代码分析系列(2)——React Native源代码编译
    Oracle学习笔记(5)——查询
    springMVC4(5)RestTemplate控制层单元測试
  • 原文地址:https://www.cnblogs.com/oisiv/p/145612.html
Copyright © 2020-2023  润新知