gpt4 book ai didi

sql-server - Azure 恢复服务和 SQL 2014 托管备份不能很好地协同工作

转载 作者:太空狗 更新时间:2023-10-30 01:45:08 24 4
gpt4 key购买 nike

我开始在 SQL 服务器上使用托管备份。它已经运行良好一年多了。好像每周备份一次数据库,每2小时进行一次增量。

一个月前,我们将虚拟机备份解决方案更改为 Azure 恢复服务。我们开始每天晚上运行它。当 Azure 恢复服务在晚上运行时,从 Windows 和 SQL 日志来看,它会在执行卷影复制之前对每个数据库进行备份。它们以 TYPE=VIRTUAL_DEVICE: 和一个大 GUID 的形式输入到日志中,并创建一个新的数据库 lsn 号。当发生此虚拟机备份时,我每周的托管备份将失效。

当我查看 SQL 托管备份存储其记录以跟踪其备份的 msdb.dbo.smart_backup_files 表时,我可以看到有 2 个字段似乎很重要。备份类型。当它等于 1 时,它是完整备份,当它是 2 时,它是日志。下一个字段是 backup_database_lsn。该字段代表日志可以应用的完整备份。

当 SQL 托管备份每周运行一次完整备份时,会创建一个新的 lsn 编号,并且随后创建的每个日志文件的 backup_database_lsn 编号中都有一个值,该值指向完整 SQL 的该 lsn 编号那周的托管备份。

现在,当 Azure 恢复服务每晚运行时,会从日志中的 TYPE=VIRTUAL_DEVICE 行创建一个新的完整数据库 lsn 编号。当我查看托管备份表 (msdb.dbo.smart_backup_files) 时,我可以看到用于指向托管备份的完整 lsn 编号的所有后续日志文件现在都指向恢复服务备份的 VIRTUAL_DEVICE 的新 lsn 编号.

如果我需要恢复托管备份,我只能获取完整备份和 1 天的日志。之后,所有日志文件现在都指向恢复服务 VIRTUAL_DEVICE 备份,而该备份实际上并不存在。

我已查找 VIRTUAL_DEVICE 备份。当我通过企业管理器打开数据库并单击数据库的“还原”时,它会提取最新的完整备份(在本例中为恢复管理器完整备份)及其日志文件。如果我单击完整备份条目,它认为该文件位于 SQL Server 备份文件夹中,文件名是 GUID。该文件不存在,或者它可能存在于我无法在 Azure 恢复服务中查看的夜间 VM 备份中。不管怎样,我每周的托管备份在本周剩余的时间里都会失效。

有谁知道如何让这两个一起工作吗?我希望有一个完整的虚拟机备份,以防 SQL Server 上安装了错误的东西,并且我们需要进行完整恢复,并且我希望每周进行一次包含增量日志文件的完整备份,以防我们需要恢复数据库。

最佳答案

听起来好像您正在寻找差异备份。这些将包含上次完整备份后添加到数据库的所有内容。

即您在周日晚上进行完整备份,之后每天进行差异备份。周一晚上,您的差异备份将包含自备份以来添加的所有内容。周二,它将包含周一所包含的所有内容,以及自那以后发生的所有变化。

如果您使用事务日志备份执行相同的操作,则周一晚上的备份实际上与上述差异备份相同。但是,星期二版本的事务日志备份将仅包含自星期一事务日志备份以来的更改。

说到恢复,这意味着为了恢复到某个时间点,您必须恢复最新的完整备份(周日),然后是自此以来的每个事务日志备份,按顺序(周一、周二等)。

但是,使用差异备份,您将恢复最新的完整备份(周日),然后恢复最新的差异备份(周二,如果您要在周三恢复)。

关于sql-server - Azure 恢复服务和 SQL 2014 托管备份不能很好地协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com