由于操作失误,数据库中全部表都被删除,怎么用LDF日志文件恢复数据库呀!急呀!

解决方案 »

  1.   

    --通过日志恢复数据库 USE   master --创建数据库 
    CREATE   DATABASE   db 
    ON   PRIMARY( 
            NAME='db_data', 
            FILENAME=   'c:\db_data.mdf') 
    LOG   ON( 
            NAME='db_log', 
            FILENAME   ='c:\db.ldf') 
    GO --创建表 
    CREATE   TABLE   db.dbo.ta(id   int) 
    INSERT   db.dbo.ta   SELECT   id   FROM   sysobjects 
    GO 
    --做文件组备份 
    BACKUP   DATABASE   db   TO   DISK='c:\db.bak'   WITH   FORMAT --备份后,再做数据处理 
    CREATE   TABLE   db.dbo.tb(id   int) 
    INSERT   db.dbo.tb   SELECT   id   FROM   sysobjects 
    GO /*--下面演示了破坏数据文件的处理,这些操作在操作系统中进行 1.   停止SQL   Server服务(msqlserver服务) 
    2.   删除文件   c:\db_data.ndf   (模拟破坏) 
    3.   重新SQL   Server服务,此时数据库DB置疑 
    --*/ 
    GO --下面演示了如何恢复数据 
    --首先要备份当前日志 
    BACKUP   LOG   db   TO   DISK='c:\db_log.bak'   WITH   FORMAT,NO_TRUNCATE 
    --利用文件组备份恢复破坏的文件 
    RESTORE   DATABASE   db   FROM   DISK='c:\db.bak'   WITH   NORECOVERY 
    --还原到日志点 
    RESTORE   LOG   db   FROM   DISK='c:\db_log.bak'   WITH   RECOVERY 
    --显示已经恢复的数据 
    SELECT   COUNT(*)   FROM   db.dbo.ta 
    SELECT   COUNT(*)   FROM   db.dbo.tb 
    GO --删除测试 
    DROP   DATABASE   db
      

  2.   

    用日志工具Log   Explorer 
    步骤: 
    1、查看日志 
          a、打开log   explorer,选择菜单File--> attach   log   file       
          b、在Log   File   Selection窗口中,填写连接到要恢复数据的数据库服务器机器名、数据库登录ID及密码,然后点击"Connect"按钮。 
          c、若连接成功,则窗口左边树将显示命令菜单,这时我们点击Browser下的View   Log命令,此时窗口右边则出现该数据库的Log。 
    2、恢复数据库 
          这时您只要选择您要恢复对事件点,右键点击选择"undo   transation"命令,保存T-SQL代码,然后在查询分析器中执行该T-SQL代码
      

  3.   

    我是菜鸟!!Log   Explorer 已经安装到了计算机!输入SQL帐户无法找到数据库!---------------------------
    Evaluation Version
    ---------------------------
    Thank you for evaluating Log Explorer.The evaluation version provides all the functionality of the full version, with the following restrictions:   1) Expires 30 days after installation.   2) Permits you to attach only to the Northwind or pubs sample databases (provided by Microsoft) or to the LumigentDemoDB database (created by the Log Explorer Guided Tour).Be sure to take advantage of the Log Explorer Guided Tour for a fully interactive tutorial of the major features of Log Explorer.To discuss expanding your evaluation to include tests against your production or test databases, please contact Lumigent at (+1) 978-206-3700 or send e-mail to [email protected].
    ---------------------------
    确定   
    ---------------------------
    这个是错误提示确定后只能找到pubs和northwind两个数据库
      

  4.   

    2楼的liangCK说了啊,File--> attach log file 让log explorer分析log并产生undo语句
      

  5.   

    --通过日志恢复数据库USE master--创建数据库
    CREATE DATABASE db
    ON PRIMARY(
        NAME='db_data',
        FILENAME= 'c:\db_data.mdf')
    LOG ON(
        NAME='db_log',
        FILENAME ='c:\db.ldf')
    GO--创建表
    CREATE TABLE db.dbo.ta(id int)
    INSERT db.dbo.ta SELECT id FROM sysobjects
    GO
    --做文件组备份
    BACKUP DATABASE db TO DISK='c:\db.bak' WITH FORMAT--备份后,再做数据处理
    CREATE TABLE db.dbo.tb(id int)
    INSERT db.dbo.tb SELECT id FROM sysobjects
    GO/*--下面演示了破坏数据文件的处理,这些操作在操作系统中进行1. 停止SQL Server服务(msqlserver服务)
    2. 删除文件 c:\db_data.ndf (模拟破坏)
    3. 重新SQL Server服务,此时数据库DB置疑
    --*/
    GO--下面演示了如何恢复数据
    --首先要备份当前日志
    BACKUP LOG db TO DISK='c:\db_log.bak' WITH FORMAT,NO_TRUNCATE
    --利用文件组备份恢复破坏的文件
    RESTORE DATABASE db FROM DISK='c:\db.bak' WITH NORECOVERY
    --还原到日志点
    RESTORE LOG db FROM DISK='c:\db_log.bak' WITH RECOVERY
    --显示已经恢复的数据
    SELECT COUNT(*) FROM db.dbo.ta
    SELECT COUNT(*) FROM db.dbo.tb
    GO--删除测试
    DROP DATABASE db