首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >时间点恢复失败-错误3456‘无法重做日志记录’

时间点恢复失败-错误3456‘无法重做日志记录’
EN

Database Administration用户
提问于 2019-05-08 11:36:28
回答 1查看 537关注 0票数 4

我有一个数据库,所有的表都是偶然被删除的。不幸的是,我们没有“完美”的备份,现在我的问题来了:

  • 完全备份是从昨天下午6点开始的。
  • 日志备份有几天没有进行。该备份是在删除之后手动执行的。
  • 这两个文件都可用于执行实时恢复。

为了恢复时间点,我用NORECOVERY恢复了完全备份。然后我试着应用日志备份。在GUI达到100%之后,我得到以下错误:

LSN-全备份信息:

LSN-日志备份信息:

我说得对吗?完全备份和日志备份的重叠LSNs就是这里的问题吗?我认为来自错误的PrevPageLSN与完整备份的FirstLSN匹配并不是偶然的。想法如何使数据库及时恢复?

EN

回答 1

Database Administration用户

发布于 2019-05-08 12:59:27

来自医生们

作为实时恢复的先决条件,必须首先还原结束点早于目标还原时间的完整数据库备份。

你有旧的全备份吗?与流行的观点相反,完全备份不会破坏“日志备份链”。因此,您应该能够恢复一个较旧的完整备份(满足此要求),然后从删除后的日志备份中执行点恢复。

另一个可能出现的问题是:您可能有日志备份正在运行,而您并不知道这些备份。在这一点上,这似乎不太可能,但您可以通过查询msdb.dbo.backupset来检查:

代码语言:javascript
运行
复制
USE [msdb];
GO

SELECT TOP (100) 
    [name],
    first_lsn,
    last_lsn,
    checkpoint_lsn,
    backup_start_date,
    backup_finish_date,
    [type],
    [database_name]
FROM dbo.backupset
WHERE [database_name] = 'hydra1'
ORDER BY backup_start_date DESC;

如果在完整备份之后有type = 'L'备份,而不是您创建的备份,那么您也需要恢复这些备份。

由于您已经确认完整备份中没有损坏,所以您试图使用的日志备份中可能存在损坏。您可以尝试在活动数据库上运行CHECKDB以查看当前日志已损坏。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/237646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档