我有一个数据库,所有的表都是偶然被删除的。不幸的是,我们没有“完美”的备份,现在我的问题来了:
为了恢复时间点,我用NORECOVERY恢复了完全备份。然后我试着应用日志备份。在GUI达到100%之后,我得到以下错误:
LSN-全备份信息:
LSN-日志备份信息:
我说得对吗?完全备份和日志备份的重叠LSNs就是这里的问题吗?我认为来自错误的PrevPageLSN
与完整备份的FirstLSN
匹配并不是偶然的。想法如何使数据库及时恢复?
发布于 2019-05-08 12:59:27
来自医生们:
作为实时恢复的先决条件,必须首先还原结束点早于目标还原时间的完整数据库备份。
你有旧的全备份吗?与流行的观点相反,完全备份不会破坏“日志备份链”。因此,您应该能够恢复一个较旧的完整备份(满足此要求),然后从删除后的日志备份中执行点恢复。
另一个可能出现的问题是:您可能有日志备份正在运行,而您并不知道这些备份。在这一点上,这似乎不太可能,但您可以通过查询msdb.dbo.backupset
来检查:
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
以查看当前日志已损坏。
https://dba.stackexchange.com/questions/237646
复制相似问题