在 Azure DocumentDB 群集上管理跨区域和同一区域复制

Azure DocumentDB 允许连续数据流式传输到另一个或同一 Azure 区域中的副本群集。 此功能提供跨区域的灾难恢复(DR)保护,支持在跨区域和同一区域中的读性能伸缩性。 本文档为想要了解如何管理群集复制的开发人员提供快速指南。

先决条件

  • 一份 Azure 订阅。 如果没有 Azure 订阅,请创建一个试用帐户

启用跨区域或同一区域复制

可以在新群集预配期间或在现有群集上随时创建副本群集。

在新群集预配期间创建副本群集

若要 在创建群集期间在新群集上启用复制,请执行以下步骤:

  1. 按照步骤 开始创建群集,并完成新 Azure DocumentDB 群集的 “基本信息 ”选项卡
  2. (可选)在“网络”选项卡上为群集选择所需的网络访问设置。
  3. 在“多区域分发”选项卡上,为群集副本选择“启用”。
  4. 在“只读副本名称”字段中提供副本群集名称。
  5. 只读副本区域中选择一个区域。 副本群集托管在所选 Azure 区域中。
  6. 在“查看 + 创建”选项卡上,查看群集配置详细信息,然后选择“创建”

注释

副本群集在与其主群集相同的 Azure 订阅和资源组中创建。

为现有群集创建副本群集

若要在 创建群集后随时在新群集上启用复制,请执行以下步骤:

  1. 按照步骤 创建新的 Azure DocumentDB 群集
  2. 跳过 “多区域分发 ”选项卡。此选项卡用于在主群集预配期间创建群集副本。
  3. 创建群集后,在群集边栏的 “设置”下,选择 “多区域分发”。
  4. 选择 “添加新只读副本”。
  5. 在“只读副本名称”字段中提供副本群集名称。
  6. 只读副本区域中选择一个区域。 副本群集托管在所选 Azure 区域中。
  7. 验证所选内容,然后选择“保存”按钮以确认副本创建。

若要使副本群集可用于读取操作,请通过配置用于公共访问的防火墙规则或添加用于实现安全专用访问的专用终结点来调整其网络设置。

触发强制升级

本部分介绍副本群集的 强制 升级。 强制提升可让你对时机拥有最大的控制权,但它属于非计划故障转移,由于复制是异步进行的,因此可能会导致数据丢失。 对于可实现零数据丢失的替代方案,请使用 平滑提升。 若要让Azure在区域性中断期间自动升级副本,请启用服务管理的故障转移

若要将群集副本提升为读写群集,请执行以下步骤:

  1. 选择要在门户中提升的群集副本。
  2. 在群集边栏的 “设置”下,选择 “多区域分布”。
  3. “多区域分发 ”页上,选择 “强制升级”。
  4. 阅读警告文本,然后选择“ 确认”。

提升群集副本后,它将成为可读和可写群集。 如果在主群集(读/写)群集上启用了高可用性 (HA),则需要在升级后在副本群集上重新进行启用。

触发平滑提升

平滑提升是一次计划内切换,并在零数据丢失的情况下完成。 Azure DocumentDB 会暂停主群集上的写入,排空复制队列,使副本完全追上主群集的状态,然后将该副本提升为主副本。 对于计划维护或计划中的区域迁移,请使用平滑切换。 有关背景信息,请参阅 平滑晋升

Important

平滑提升要求主集群可访问,以便其处理完待复制的数据。 如果主要区域已不可用,请改用 强制升级 或服务 管理的故障转移

触发平滑提升:

  1. 选择要在门户中提升的群集副本。
  2. 在群集边栏的 “设置”下,选择 “多区域分布”。
  3. “多区域分发”页面上,选择“平滑提升”
  4. 阅读警告文本,然后选择“ 确认”。

在故障转移期间,写入请求将返回暂时性错误,直到交换机完成。 全局读写连接字符串会自动更新并指向新的主集群。 使用先前主库自身连接字符串的应用程序必须更新,以将写入操作指向新的主库。

启用由服务管理的故障转移

服务托管故障转移可让 Azure DocumentDB 在检测到主区域发生区域中断时自动将副本群集提升为主群集。 启用后,区域中断期间不需要操作员操作。 有关背景信息,请参阅 服务托管的故障转移

注释

服务管理的故障转移是计划外故障转移,由于复制延迟,可能会导致数据丢失。 若要在计划内维护期间以零数据丢失的方式切换区域,请改用 平滑提升。 这两个选项可以一起使用。

可在 Azure 门户中主群集的 多区域分发 页面上按群集配置服务托管故障转移。 启用后,Azure DocumentDB 监视主要区域,并在确定主要区域不可用时自动升级副本群集。 您可以随时在同一页面上禁用由服务管理的故障切换;禁用期间,如果发生区域性中断,您需要触发强制提升

检查群集复制角色和复制区域

若要检查群集的复制角色,请执行以下步骤:

  1. 选择现有的 Azure DocumentDB 群集。
  2. 选择“概述”页。
  3. 检查“读取区域”(在主群集上)或“写入区域”(在副本群集上)值。

如果未启用读取区域值,则此群集已禁用复制。

禁用跨区域或同一区域复制

若要禁用复制,请执行以下步骤:

  1. 选择 Azure DocumentDB 副本 群集。
  2. 选择 “概述”。
  3. 确认它是副本群集
  4. 在 Azure 门户中的副本群集的“概述”页上,选择“删除”
  5. 在“删除 <副本名称>”屏幕上,阅读警告文本,然后在“确认帐户名称”字段中输入群集的名称。
  6. 选择“删除”以确认删除该副本。

如果需要删除主群集和副本群集,则需要先删除副本群集。

使用连接字符串

可以像连接到常规读写群集一样连接到群集副本。 请按照以下步骤获取不同情况的连接字符串

  1. 在门户中选择主群集或其群集副本。
  2. 在群集边栏的“设置”下选择“连接字符串”
  3. 复制当前所选群集的自连接字符串,以连接到该群集。

自连接字符串会在进行群集副本升级后保留。 你可以继续使用字符串或全局读写连接字符串来支持读取操作。 如果使用自连接字符串支持写入操作,则需要将应用程序中的连接字符串更新为指向升级的副本群集,以便在升级完成后继续写入到相应数据库。