【问题标题】:Azure SQL database backups and restoreAzure SQL 数据库备份和还原
【发布时间】:2019-11-28 10:54:18
【问题描述】:

我们正在为 Azure 托管的应用程序准备 DR 计划,我在数据库还原文档中遇到了一些令人困惑的措辞。
据我了解,日志备份大约每 5 分钟进行一次,这些备份是地理冗余的,但是当我使用 -FromGeoBackup 标志进行还原时,最近的备份比这更旧。
我可以使用更新的备份进行时间点还原,但据我了解,这只能在同一台服务器上完成。
如果我们的主数据中心出现故障,我们需要恢复到新数据中心的新服务器怎么办?
是通过-FromGeoBackup 执行此操作的唯一方法,数据间隔大约为 1 小时,还是我可以使用异地冗余日志备份来获取更新的版本?
如果相关,这是使用标准层数据库。

【问题讨论】:

    标签: azure azure-sql-database database-backups


    【解决方案1】:

    是的,如果您没有使用故障转移组\地理复制,那么您有默认恢复选项 Geo-restore (Restore-AzureRmSqlDatabase -FromGeoBackup)。进行备份与将其异地复制到不同区域中的 Azure blob 之间存在延迟。因此,还原的数据库可能比原始数据库晚一小时。使用 Geo-restore,RTO 为 12 小时,RPO 为 1 小时。

    如果将数据库恢复到一小时前可能会导致业务责任或您的组织无法承受,那么您应该使用failover groups。这使您的数据库(和应用程序)能够在发生中断时快速恢复不同区域的可用性。

    对于自动故障转移组,RTO 为 1 小时(以确保故障转移符合中断规模)和 RPO 5 秒。然而,使用手动数据库故障转移,RTO 为 30 秒,RPO 为 5 秒。

    【讨论】:

      【解决方案2】:

      我觉得Point-in-time restore-FromPointInTimeBackup也许更适合你。

      您可以使用 Azure 门户、PowerShell 或 REST API 将独立数据库、池数据库或实例数据库还原到较早的时间点。该请求可以为恢复的数据库指定任何服务层或计算大小。确保将数据库还原到的服务器上有足够的资源。完成后,还原将在与原始数据库相同的服务器上创建一个新数据库。恢复的数据库根据其服务层级和计算大小按正常费率收费。在数据库还原完成之前,您不会产生任何费用。

      您通常将数据库还原到较早的点以进行恢复。您可以将恢复的数据库作为原始数据库的替代品,也可以将其作为数据源来更新原始数据库。

      数据库替换

      • 如果您打算将还原的数据库替换为 原始数据库,您应该指定原始数据库的计算 规模和服务层级。然后,您可以重命名原始数据库,然后 使用 ALTER 为恢复的数据库赋予原始名称 T-SQL 中的 DATABASE 命令。

      数据恢复

      • 如果您计划从已还原的数据库中检索数据以进行恢复 从用户或应用程序错误,您需要编写并执行 从恢复的数据库中提取数据的数据恢复脚本 并适用于原始数据库。虽然还原操作 可能需要很长时间才能完成,正在恢复的数据库是可见的 在整个还原过程中的数据库列表中。如果你删除 还原期间的数据库,还原操作将是 取消,您将不会为未取消的数据库付费 完成恢复。

        参考:Restore-AzSqlDatabase

      希望这会有所帮助。

      【讨论】:

      • 谢谢,但这实际上是在引用文档,这是我一开始就感到困惑的事情。所以要明确一点,我不能在不同的服务器上进行时间点恢复吗?例如,如果主数据中心出现故障......
      猜你喜欢
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 2021-12-08
      • 2014-02-12
      • 1970-01-01
      相关资源
      最近更新 更多