我开始在我的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上安装了一些错误,我们需要进行完全恢复,并且我希望每周完整备份一次包含增量日志文件,以防我们需要恢复一个数据库.