只能通过日志备份恢复,前提你要有全部备份
如果你有全部备份,以及到目前的日志(完好),赶紧备份日志,通过全部备份+日志可以恢复,但只恢复到目前的状态,如果你有前面的日志备份,可恢复到前面日志的状态

解决方案 »

  1.   

    将数据库还原到前一个状态
    有时要将数据库还原到更早的即时点。例如,如果数据库内的某个早期事务错误地更改了某些数据,则需将数据库还原到早于错误数据输入时间的即时点。为此,需将整个数据库恢复到事务日志内的某个点。可以将数据库恢复到事务日志内的特定即时点,或恢复到以前插入到日志中的某个命名标记。还原到某个即时点 执行使用 NORECOVERY 子句的 RESTORE DATABASE 语句。
    执行 RESTORE LOG 语句以应用每个事务日志备份,同时指定: 
    事务日志将应用到的数据库的名称。
    要从其中还原事务日志备份的备份设备。
    RECOVERY 和 STOPAT 子句。如果事务日志备份不包含要求的时间(例如,如果指定的时间超出了事务日志所包含的时间范围),则会生成警告,并且数据库将保持未恢复的状态。 
    示例
    下例将数据库还原到它在 1998 年 7 月 1 日上午 10:00 点的状态,并且举例说明涉及多个日志以及多个备份设备的还原操作。-- Restore the database backup.
    RESTORE DATABASE MyNwind
       FROM MyNwind_1, MyNwind_2
       WITH NORECOVERY
    GO
    RESTORE LOG MyNwind
       FROM MyNwind_log1
       WITH RECOVERY, STOPAT = 'Jul 1, 1998 10:00 AM'
    GO
    RESTORE LOG MyNwind
       FROM MyNwind_log2
       WITH RECOVERY, STOPAT = 'Jul 1, 1998 10:00 AM'
    GO
    如何还原到故障点 (Transact-SQL)
    还原到故障点 执行使用 NO_TRUNCATE 子句的 BACKUP LOG 语句以备份当前活动的事务日志。
    执行使用 NORECOVERY 子句的 RESTORE DATABASE 语句以还原数据库备份。
    执行使用 NORECOVERY 子句的 RESTORE LOG 语句以应用每个事务日志备份。
    执行使用 RECOVERY 子句的 RESTORE LOG 语句以应用步骤 1 中创建的事务日志备份。 
    示例
    下例备份 MyNwind 数据库的当前活动事务日志(即使 MyNwind 不可访问),然后使用以前创建的备份将数据库还原到故障点:-- Back up the currently active transaction log.
    BACKUP LOG MyNwind
       TO MyNwind_log2
       WITH NO_TRUNCATE
    GO
    -- Restore the database backup.
    RESTORE DATABASE MyNwind
       FROM MyNwind_1
       WITH NORECOVERY
    GO
    -- Restore the first transaction log backup.
    RESTORE LOG MyNwind
       FROM MyNwind_log1
       WITH NORECOVERY
    GO
    -- Restore the final transaction log backup.
    RESTORE LOG MyNwind
       FROM MyNwind_log2
       WITH RECOVERY
    GO