找出特定日期时间之前提交的交易

Find out committed transactions before specific datetime

我们有一个遗留系统。我们正在迁移到新平台。我们于2021年1月6日对生产数据库进行了备份,并在UAT环境中进行了恢复。

在查询下面,我们运行从UAT环境中获取生产数据库的备份日期时间。 Reference Article

SELECT 
    [rs].[destination_database_name], 
    [rs].[restore_date], 
    [bs].[backup_start_date], 
    [bs].[backup_finish_date], 
    [bs].[database_name] AS [source_database_name], 
    [bmf].[physical_device_name] AS [backup_file_used_for_restore]
FROM 
    msdb..restorehistory rs
INNER JOIN 
    msdb..backupset bs ON [rs].[backup_set_id] = [bs].[backup_set_id]
INNER JOIN 
    msdb..backupmediafamily bmf ON [bs].[media_set_id] = [bmf].[media_set_id] 
ORDER BY 
    [rs].[restore_date] DESC
destination_database_name restore_date backup_start_date backup_finish_date source_database_name backup_file_used_for_restore
our_DB 2021-01-06 06:02:21.620 2021-01-06 00:12:55.000 2021-01-06 00:39:06.000 our_DB E:\our_DB.bak

在生产数据库中,我们不断处理入站平面文件。我们处理文件并在它们到来时提交它们。

我们想要提取增量平面文件列表,它是在我们进行备份之后出现的,尚未处理。

那么,我们应该考虑 backup_finish_datetime (2021-01-06 00:39:06.000) 还是 backup_start_date (2021-01-06 00:12:55.000) 从生产中获取增量文件?

考虑到在备份完成时间确定已提交事务和正在进行的事务所涉及的复杂性,我们决定不将备份完成时间作为增量时间。

我们决定从今天开始 (2021-01-06 00:00:00.000) 开始获取所有增量增量文件,我们知道会有一些重复的条目,我们必须处理它相应地在新系统中。

由于我们没有审计列,我们决定采用此选项。它突出了审计列的重要性。