构建可复原数据服务
你的组织具有分布在不同环境中的多个工作负载。 所有工作负荷都依赖于保存安全且及时的数据。 可以采取多种措施为数据构建复原能力。
在此单元中,了解 Always On 可用性组如何帮助复制数据。 了解 Azure SQL 数据库中的自动备份和自动故障转移如何帮助保护数据安全。 同时了解如何使用 Azure Cosmos DB 异地复制功能将数据透明地复制到其他区域,并使数据可供读取和写入。
通过 AlwaysOn 可用性组复制数据库
AlwaysOn 可用性组可帮助实现在虚拟机上运行的 SQL Server 数据库的高可用性。
可以将指定的数据库组存储在可用性副本中:
- 主要副本保存主数据库。
- 次要副本保存主数据库的同步次要副本。
如果出现故障,则次要副本作为故障转移目标。 主要副本是可读和可写的。 数据在每个主数据库和每个关联的辅助数据库之间同步。
还可以将辅助副本设置为可读。 这样,客户端可以访问多个数据库中的数据,并且多个副本之间分布的需求增加。
AlwaysOn 可用性组在 Windows Server 故障转移群集之上运行,该群集由一组同步工作的计算机组成。 此体系结构为运行在这些计算机上的工作负荷提供了高可用性。 使用 AlwaysOn 可用性组,群集中的每个节点(计算机)都承载一个副本,可以是主要副本或次要副本。 每个副本保存一组数据库。
可以通过创建两个可用性集在 Azure 中配置 Always On 可用性组:一个用于 Windows Server 故障转移群集节点,另一个用于域控制器。
Windows Server 故障转移群集至少需要包含三台计算机。 群集中应有一台 SQL Server 计算机用于主要副本,另一台用于次要副本。 第三台服务器应充当文件共享见证,或者可以使用 Azure 文件共享作为见证。
Azure SQL 数据库故障转移
可以使用 SQL 数据库自动故障转移组来配置 SQL 数据库服务器上数据库组的故障转移和复制。 你可以将已定义的策略放在一起,这些策略可根据需要执行故障转移。 如有必要,还可以手动触发故障转移。 如果发生故障,SQL 数据库可以自动将数据库故障转移到次要区域中的辅助服务器。
SQL 数据库自动故障转移辅助数据库可用作可读数据库。 你可以使用这些辅助数据库为任何连接客户端的数据读取访问提供服务,并在主数据库和辅助数据库之间分散使用和需求。
如果使用自动故障转移策略,当主数据库组中至少有一个数据库发生故障时,就会触发到辅助数据库的自动故障转移。 在故障转移期间,终结点保持不变。 当导致故障的问题已经解决并且准备就绪后,可以故障回复到原始位置。 可以手动将组故障转移到其原始位置。
数据库服务器中的数据库可以包含在单个自动故障转移组中。 还可以将所有数据库放在一个弹性池中的单个故障转移组中。 当主数据库是弹性池的一部分时,辅助数据库也将在弹性池中进行预配。 此辅助池与主弹性池具有相同的名称。
Azure SQL 数据库的自动备份
Azure SQL 数据库可以备份数据库并将备份存储 7 到 35 天。 SQL 数据库使用异地冗余存储来存储备份,并提供对不同区域中数据的读取访问权限。 即使数据中心出现问题,数据库也是安全的。
通过在单个数据库或弹性池上建立长期保留策略,可以将备份保留期延长到最多 10 年。 SQL 数据库中的所有数据库备份都是静态加密的。 默认情况下,创建的所有 SQL 数据库都启用透明数据加密。
SQL 数据库在后台自动备份。 它会根据备份类型以不同的时间间隔创建数据库备份。 例如,它会创建以下备份类型:
- 每隔 5 到 10 分钟备份事务日志。
- 每周对数据库进行完整备份。 首次完整备份在创建数据库后立即进行。 SQL 数据库完成完整备份需要的时间取决于数据库大小。
- 每 12 小时对自上次完整备份以来发生更改的任何数据进行差异备份。
SQL 数据库在提供读取访问权限的存储 Blob 中保留备份。 然后,它将这些备份复制到配对的数据中心。
数据库可以还原到备份版本。 如果配置了长期保留,此备份可以保留最多 10 年。 你可以将已删除的数据库还原到删除前的时间,最早可以还原到保留策略中的保留限制时间。
SQL 数据库可以将数据库恢复到不同的地理区域。 此过程是通过异地还原完成的,如果整个区域发生问题,异地还原可以将数据库从一个区域恢复到另一个区域。
使用 Azure Cosmos DB 进行异地复制
Azure Cosmos DB 是一种低延迟、多模型数据库服务,它允许你在全球范围内分发数据,并且可以灵活、快速地进行缩放。
在 Azure Cosmos DB 中,所有数据都透明地复制到为 Azure Cosmos DB 帐户设置的区域中。 Azure Cosmos DB 将数据保存在构成数据库的容器中,并且对所有容器进行分区。
所有分区都将跨每个区域复制。 在每个区域中,将每个副本分布到多个容错域之间之前,都会先复制分区。
数据至少复制四次。 可以设置 Azure Cosmos DB 帐户,并将 Azure Cosmos DB 数据库配置为分布在五个区域。 为五个区域配置此数据库时,Azure Cosmos DB 保证至少拥有所有数据的 4 x 5 个副本。
应将 Azure Cosmos 数据库配置为至少跨两个区域。 拥有的区域越多,数据可复原能力越强。 还应将 Azure Cosmos DB 数据库显示设置为具有多个写入区域,以便可以从所有区域执行读取和写入操作。
还可以为某些区域配置区域冗余。 借助区域冗余,Azure Cosmos DB 将数据副本放置在任何单个区域的多个可用性区域中,以实现额外的可复原能力。