如何在服务器发生故障时恢复差异备份

时间:2017-12-01 08:09:46

标签: sql-server database database-backups database-restore

备份和还原计划

myTextModel: string;
updateMyTextModel(): void {
    this.myTextModel = "updated model value";
    //todo- set form dirty (or invalid or touched) here
}

恢复模式:简单

我正在(网络电脑)不同位置备份(.bak)

当我尝试恢复没有恢复的完整数据库时它恢复正常但我无法备份差异备份文件,它说“由于LSN链中断而无法创建恢复计划”

1 个答案:

答案 0 :(得分:2)

备份数据库时,在backup header和msdb(backupset表)中会写入一些数据。

如果是完整备份和差异备份,则会感兴趣database_backup_lsncheckpoint_lsnis_copy_only

您只能通过相应的 differential备份恢复full备份。

要找出给定full backup的正确differential backup,您应该只考虑非copy_only的完整备份。相应的完整备份将checkpoint_lsn等于给定差异备份的database_backup_lsn

以下是我用相同颜色full backup标记的图片,可以作为differential backup s的基础:

enter image description here

现在您要查找相应的full backup

首先你应该找到差异备份database_backup_lsn,在我的例子中它是23064679000002372000077。然后进行这样的查询,你会找到相应的full备份。

select type,
       backup_start_date, 
       backup_finish_date,
       database_backup_lsn,
       checkpoint_lsn,
       is_copy_only,
       f.family_sequence_number,
       f.physical_device_name
from msdb..backupset s 
     join msdb..backupmediafamily f
        on f.media_set_id = s.media_set_id  
where database_name = 'basedati_bi' and type = 'D' and is_copy_only = 0 and checkpoint_lsn = 23064679000002372000077