Eri*_*ild 9 database sql-server azure sql-server-2014
我开始在我的SQL服务器上使用托管备份.它已经运作了一年多.它似乎每周备份一次dbs,每2小时取一次增量.
一个月前,我们将VM备份解决方案更改为Azure恢复服务.我们每晚都开始运行它.当Azure Recovery Services在晚上运行时,从Windows和SQL日志看起来,它会在执行卷影复制之前对每个数据库进行备份.它们以TYPE = VIRTUAL_DEVICE:和一个大的GUID输入到日志中,并创建一个新的数据库lsn编号.发生此VM备份时,我的每周托管备份无效.
当我查看SQL托管备份存储其记录以跟踪其备份的msdb.dbo.smart_backup_files表时,我可以看到有两个字段似乎很重要.backup_type.当它等于1时,它是完整备份,当它是2时,它是一个日志.下一个字段是backup_database_lsn.此字段表示可以应用日志的完整备份.
当SQL托管备份每周运行一次完整备份时,会创建一个新的lsn编号,并且在afterwords之后创建的每个日志文件都有一个backup_database_lsn编号中的值,该值指向完整SQL托管备份的lsn编号.那个星期.
现在,当Azure Recovery Services每晚运行时,将从日志中的TYPE = VIRTUAL_DEVICE行创建一个新的完整数据库lsn编号.当我查看托管备份表(msdb.dbo.smart_backup_files)时,我可以看到所有后来指向托管备份的完整lsn编号的后续日志文件现在指向恢复服务备份的VIRTUAL_DEVICE的新lsn编号.
如果我需要还原托管备份,我只能获得完整备份和1天的日志.之后,所有日志文件现在都指向Recovery Services VIRTUAL_DEVICE备份,该备份实际上并不存在.
我找了VIRTUAL_DEVICE备份.当我通过Enterprise Manager打开数据库,并单击"还原"以查找数据库时,它会提取最新的完整备份(在本例中为Recovery Manager完全备份)及其日志文件.如果我单击完整备份条目,它会认为该文件位于SQL Server备份文件夹中,文件名是GUID.该文件不存在,或者它可能存在于我无法在Azure恢复服务中查看的夜间VM备份中.无论哪种方式,我的每周托管备份在本周剩余时间内都无效.
有谁知道如何让这两个一起工作?我希望有一个完整的VM备份,以防在SQL Server上安装了一些错误,我们需要进行完全恢复,并且我希望每周完整备份一次包含增量日志文件,以防我们需要恢复一个数据库.
听起来好像您正在寻找差异备份。这些将包含上次完整备份后添加到数据库的所有内容。
即,您在周日晚上进行完整备份,之后每天进行差异备份。周一晚上,您的差异备份将包含自备份以来添加的所有内容。周二,它将包含周一所包含的所有内容,以及自那以后发生的所有变化。
如果您使用事务日志备份执行相同的操作,则周一晚上的备份实际上与上述差异备份相同。但是,星期二版本的事务日志备份将仅包含自星期一事务日志备份以来的更改。
当谈到恢复时,这意味着为了恢复到某个时间点,您必须恢复最新的完整备份(周日),然后按顺序恢复此后的每个事务日志备份(周一、周二等)。 )。
但是,使用差异备份,您将恢复最新的完整备份(周日),然后恢复最新的差异备份(周二,如果您要在周三恢复)。