sql server 备份恢复全备和日志备份时间相近恢复失败
在数据库恢复的时候提示
38008:nsrsqlrc: The log in this backup set begins at LSN 675000000211200001,
which is too recent to apply to the database.
An earlier log backup that includes LSN 675000000207200001 can be restored. 153416:nsrsqlrc: (Error: 4305)
,查找原因发现:
| backup_set_id | first_lsn | last_lsn | checkpoint_lsn | database_backup_lsn | backup_start_date | backup_finish_date | type |
| 43067 | 390000000206400001 | 390000000221600001 | 390000000218400001 | 390000000211200037 | 2025-10-28 00:07:12.000 | 2025-10-28 00:07:12.000 | L |
| 43072 | 390000000221600001 | 390000000228000001 | 390000000225600001 | 390000000211200037 | 2025-10-28 04:07:03.000 | 2025-10-28 04:07:03.000 | L |
| 43075 | 390000000228000001 | 390000000234400001 | 390000000232000001 | 390000000211200037 | 2025-10-28 08:06:55.000 | 2025-10-28 08:06:55.000 | L |
| 43080 | 390000000234400001 | 390000000240800001 | 390000000238400001 | 390000000211200037 | 2025-10-28 12:07:09.000 | 2025-10-28 12:07:10.000 | L |
| 43084 | 390000000240800001 | 390000000253600001 | 390000000251200001 | 390000000211200037 | 2025-10-28 16:07:08.000 | 2025-10-28 16:07:08.000 | L |
| 43087 | 390000000253600001 | 390000000264800001 | 390000000261600038 | 390000000211200037 | 2025-10-28 20:06:44.000 | 2025-10-28 20:06:46.000 | D |
| 43088 | 390000000253600001 | 390000000268000001 | 390000000261600038 | 390000000211200037 | 2025-10-28 20:06:51.000 | 2025-10-28 20:06:51.000 | L |
| 43098 | 390000000268000001 | 390000000275200001 | 390000000272800001 | 390000000261600038 | 2025-10-29 00:06:57.000 | 2025-10-29 00:06:57.000 | L |
| 43103 | 390000000275200001 | 390000000281600001 | 390000000279200001 | 390000000261600038 | 2025-10-29 04:07:07.000 | 2025-10-29 04:07:07.000 | L |
| 43107 | 390000000281600001 | 390000000288000001 | 390000000285600001 | 390000000261600038 | 2025-10-29 08:07:08.000 | 2025-10-29 08:07:08.000 | L |
| 43110 | 390000000288000001 | 390000000294400001 | 390000000292000001 | 390000000261600038 | 2025-10-29 12:07:06.000 | 2025-10-29 12:07:06.000 | L |
| 43114 | 390000000294400001 | 390000000300800001 | 390000000298400001 | 390000000261600038 | 2025-10-29 16:07:02.000 | 2025-10-29 16:07:02.000 | L |
| 43118 | 390000000300800001 | 390000000312000001 | 390000000308800037 | 390000000261600038 | 2025-10-29 20:06:44.000 | 2025-10-29 20:06:46.000 | D |
| 43120 | 390000000300800001 | 390000000315200001 | 390000000308800037 | 390000000261600038 | 2025-10-29 20:06:47.000 | 2025-10-29 20:06:47.000 | L |
| 43129 | 390000000315200001 | 390000000322400001 | 390000000320000001 | 390000000308800037 | 2025-10-30 00:06:57.000 | 2025-10-30 00:06:57.000 | L |
| 43133 | 390000000322400001 | 390000000328800001 | 390000000326400001 | 390000000308800037 | 2025-10-30 04:07:07.000 | 2025-10-30 04:07:07.000 | L |
| 43137 | 390000000328800001 | 390000000335200001 | 390000000332800001 | 390000000308800037 | 2025-10-30 08:07:00.000 | 2025-10-30 08:07:00.000 | L |
| 43142 | 390000000335200001 | 390000000341600001 | 390000000339200001 | 390000000308800037 | 2025-10-30 12:07:09.000 | 2025-10-30 12:07:09.000 | L |
因为日志备份和全备的时间相离太近,导致43120 这条日志备份的database_backup_lsn的依据竟然是根据上上次的全备来的,导致恢复失败,后来调整了全备的时间,在恢复可以了。
select backup_set_id ,checkpoint_lsn ,first_lsn ,last_lsn ,database_backup_lsn, backup_start_date, backup_finish_date, type, database_name
, compressed_backup_size ,
begins_log_chain
from msdb.dbo.backupset a
where a.backup_start_date>'2025-10-25'
--AND database_name='dbname'
order by database_name ,1
