介绍用于 PaaS 部署的高可用性和灾难恢复选项

已完成

PaaS 在可用性方面有所不同;你只能配置 Azure 提供的选项。

对于 Azure SQL 数据库和 Azure SQL 数据库托管实例,其基于 SQL Server 的选项是活动异地复制(仅限 Azure SQL 数据库)和自动故障转移组(Azure SQL 数据库或 Azure SQL 数据库托管实例)。

Azure Database for MySQL 具有一个服务级别协议,该协议可保证 99.99 的可用性,这意味着几乎不会遇到故障时间。 对于 Azure Database for MySQL,如果发生节点级问题(如硬件故障),则内置的故障转移机制将会启动。 MySQL 数据库的所有事务性更改都会在提交时同步写入存储。 如果发生节点级中断,数据库服务器会自动新建节点,并附加数据存储。

从应用程序的角度来看,你需要编写必要的重试逻辑代码,因为在启动新节点的过程中会删除所有连接,任何正在运行的事务都将丢失。 此过程被视为所有云应用程序的最佳做法,因为它们应该能够用于处理暂时性故障。

Azure Database for PostgreSQL 在其标准部署模型中使用类似于 MySQL 的模型;但 Azure PostgreSQL 还提供名为 Citus 的横向扩展超大规模解决方案。 Citus 为服务器组提供了横向扩展和额外的高可用性。 如果启用,则会为服务器组的每个节点配置一个备用副本,这还会增加成本,因为它会使组中的服务器数量增加一倍。 在这种情况下,原始节点出现问题(例如无响应或完全故障)时,备用节点会取而代之。 数据通过 PostgreSQL 同步流式复制保持同步。

与 Azure Database for MySQL 一样,使用 Azure Database for PostgreSQL 的解决方案还必须在应用程序中包含重试逻辑,因为连接会被删除,正在进行的事务也会丢失。

Azure Database for MySQL 和 Azure Database for PostgreSQL 都支持只读副本选项。 这意味着,副本可用于报告等活动,以便从主数据库卸载工作。 只读副本位于另一个区域中,因此还可增强可用性。