本文将探讨Azure Cosmos DB服务中可用的备份选项。备份是非常重要的,可以在数据损坏、数据删除、系统故障或任何不可预见的情况下保护我们的数据,如DR。我们已经为我们的内部数据库进行了规划、配置和管理,无论是SQL Server、Oracle、DB2,还是各种机器上的系统文件。DBA和基础设施管理员已经确保对所有这些系统进行备份,以保护他们的数据。同样,我们也必须确保我们的数据托管在云环境中的任何服务,无论是Azure虚拟机、Azure SQL、Cosmos Db账户,还是其他任何服务。今天,我们将谈一谈可用于保护cosmos DB数据库及其内容的备份选项。
Azure Cosmos DB是一个完全管理的、高度安全的、全球分布的数据库服务,是为新时代的高级应用开发而设计的。它定期自动为其数据库运行备份,以确保数据保护,以防你因各种原因(如损坏、删除、错误的数据更新等)而需要恢复数据。备份是在后端独立的Azure blob存储上进行的,不会影响性能、可用性和配置的资源单位(RUs)。这些备份存储在你配置了cosmos DB账户的本地。
Azure Cosmos DB提供两种策略来运行备份。
- 定期备份
- 连续备份
让我们在下面的章节中详细讨论这两种备份策略。
周期性备份
这种备份模式是任何Azure Cosmos DB账户的默认配置。它根据定义的可配置的周期,以定期的时间间隔运行。从数据恢复的角度来看,你可以将其保留一个月。这意味着你可以通过在Azure门户上向支持团队创建一个支持票,从其保留时间范围内恢复任何数据。运行这个备份对cosmos DB账户的性能或cosmos DB账户的配置吞吐量没有影响。备份副本存储在Azure存储账户上,这与用于Cosmos DB的存储账户不同。备份被复制到Azure区域的配对区域,以确保弹性。
默认情况下,周期性备份每4小时自动运行一次,并在任何时间点保持2个备份副本,没有任何费用。你可以改变备份执行间隔以及它的保留期,随时使用Azure门户将备份文件保存在存储账户上。请记住,保存2份以外的其他备份副本将被额外收费。
这些配置需要在cosmos DB账户级别执行,然后这个配置将适用于存储在该cosmos DB账户的所有容器。做这些改变将花费你额外的费用,所以在计划备份的时候也要确保考虑到这个方面。你不能控制保存在存储系统上的备份副本的数量,而这取决于备份间隔和备份保留的配置值。你需要在备份间隔和保留之间找到一个平衡点,这样你就不需要为保存不需要的多个备份文件而付出更多的成本。
如果你选择了定期备份作为你的cosmos DB账户的备份策略,那么你必须记住一件事,那就是你不能恢复它的备份文件,你需要提出Azure支持票来恢复或复原任何数据。你需要注意的是,只有当要求的备份副本来自于备份保留期,而不是在保留窗口之外,才能恢复数据。
连续备份
这是另一个可用于配置cosmos DB账户的备份的选项。这个备份策略只支持MongoDB和核心(SQL)API。你可以将其保留30天,你可以使用Azure门户恢复过去30天内的任何数据集的时间点。连续备份为每个副本运行,这些副本在全球范围内分布到其他地区,并将其备份存储在各自副本的本地冗余存储上,所以这意味着你将拥有与你的Azure Cosmos DB账户的副本数量相等的备份副本。如果任何特定区域有可用性区域,那么备份副本将被存储在区域冗余存储账户上。如果你需要用最新的可能的数据来恢复你的数据库,那么你应该考虑存储在写区域副本中的备份副本,因为读区域副本可能因为网络延迟而有点落后。
连续备份支持时间点恢复,所以你可以根据你的需要在特定的时间点恢复你的数据。在这种备份模式下,你不需要创建一个支持票来恢复你的数据。使用连续备份模式配置Azure Cosmos DB账户的一个不利方面是,你不能移回定期备份模式,所以在采用这种模式的备份选项之前要仔细计划。
这种备份模式也有一些限制,你必须考虑或验证Azure是否已经克服了这种限制,或者在你选择这种备份策略时,这种限制仍然存在。以下是一些限制。
- 除了SQL核心和MongoDB API外,不能为其他API配置连续备份。这种备份只支持MongoDB和SQL核心API。
- 如果你启用了多区域写入,那么你不能使用这种备份。
- 你不能在你的源数据账户区域之外恢复数据。这意味着你必须只恢复到存在Azure Cosmos DB账户的区域。
- 时间点恢复总是在新的cosmos DB账户中进行恢复。你不能在同一个账户上恢复。
- 不支持使用客户管理的密钥的Azure Cosmos DB账户,所以不能对这类账户使用此备份。
你还必须注意定价,因为在备份配置中做任何改变都会向你收取额外费用。如果您的cosmos DB账户被配置为使用连续备份,那么您将被收取n次费用,其中n是您分布在cosmos DB账户的区域数量,因为每个区域将保留其备份。如果您正在执行基于数据大小的恢复,将会有额外的费用。如果你没有执行任何还原操作,那么你不需要支付当月的还原费用。
备份和恢复的基本公式如下。
- 每月的备份费用 - 0.20美元x数据库大小 x区域数量
- 每次尝试的恢复成本 - 0.15美元x数据库大小
检查Cosmos DB账户的备份配置
本节将解释如何检查Azure Cosmos DB账户的现有备份策略。登录到Azure门户。在搜索栏中输入 "Azure Cosmos DB",然后按回车键,得到cosmos DB账户仪表板页面。在这里,我打开了一个新的账户创建窗口,以查看其创建过程中可用的备份策略选项。我从新账户创建表格中访问了备份策略选项卡,在这里你可以看到备份策略的默认值、备份间隔、备份保留和存储账户上保留的备份副本数量,如下图所示。如果你不做任何改变,那么备份策略将按照下面的细节进行配置。备份策略选项显示为灰色,并选择了定期选项,这意味着在全局分布选项卡下,多区域写入选项已启用。

如果你想保存更多的备份副本或想增加它们的保留期,那么你需要从上面的屏幕上修改其各自的数值来做到这一点。你可以在上述屏幕的帮助下,按照你的期望值改变备份保留。你还会注意到,备份副本的数量也将以同样的方式改变。如果你仍然想只保留2份副本,那么你需要相应地增加备份间隔,使其只保留2份,否则保留超过2份的备份文件将向你收取更多的费用。
你也可以通过访问cosmos DB账户的 "设置"选项卡下的 "备份和恢复"选项卡来检查现有Azure Cosmos DB账户的备份策略、其保留和间隔,如下图所示。下图显示了cosmos DB账户cosmosdb25nov2021的备份时间间隔和保留。

你也可以通过访问Azure Cosmos DB账户的设置标签下给出的功能选项,确保你的cosmos DB账户是否启用了另一个备份策略连续备份。

总结
我已经探讨了Azure Cosmos DB账户可用的备份选项。在这篇文章中,我们了解了两种备份选项的细节--定期备份和连续备份。我还演示了验证cosmos DB账户的现有备份策略配置的步骤。请继续关注我的下一篇文章,我将在那里谈论更多关于这些备份和它们的各种方法的主题。