

# Amazon Aurora DSQL 中的韧性
<a name="disaster-recovery-resiliency"></a>

AWS 全球基础设施围绕 AWS 区域和可用区（AZ）构建。AWS 区域提供多个在物理上独立且隔离的可用区，这些可用区与延迟低、吞吐量高且冗余性高的网络连接在一起。利用可用区，您可以设计和操作在可用区之间无中断地自动实现失效转移的应用程序和数据库。与传统的单个或多个数据中心基础设施相比，可用区具有更高的可用性、容错能力和可扩展性。Aurora DSQL 的设计使您可以利用 AWS 区域基础设施，同时提供最高的数据库可用性。默认情况下，Aurora DSQL 中的单区域集群具有多可用区可用性，可以容忍可能影响对完整可用区进行访问的重大组件故障和基础设施中断。多区域集群提供了多可用区韧性的所有优势，同时仍能提供强一致性数据库可用性，即使在应用程序客户端无法访问 AWS 区域的情况下也是如此。

有关 AWS 区域 和可用区的更多信息，请参阅 [AWS 全球基础设施](https://aws.amazon.com/about-aws/global-infrastructure/)。

除了 AWS 全球基础设施之外，Aurora DSQL 还提供了多种功能，有助于支持您的数据韧性和备份需求。

## 备份与还原
<a name="disaster-recovery-resiliency-backup-and-restore"></a>

Aurora DSQL 支持使用 AWS Backup 控制台进行备份和还原。您可以对单区域和多区域集群执行完整备份和还原。有关更多信息，请参阅 [Amazon Aurora DSQL 的备份和还原备份和还原](backup-aurora-dsql.md)。

## 复制
<a name="disaster-recovery-resiliency-replication"></a>

根据设计，Aurora DSQL 将所有写入事务提交到分布式事务日志，并将所有提交的日志数据同步复制到三个可用区中的用户存储副本。多区域集群在读取区域和写入区域之间提供完整的跨区域复制功能。

指定的见证区域支持仅事务日志写入，并且不占用任何存储空间。见证区域没有端点。这意味着见证区域仅存储加密的事务日志，无需管理或配置，并且用户无法访问。如果见证区域受损，则集群可用性不会受到影响。在见证区域恢复之前，写入事务的延迟可能会略有增加。

Aurora DSQL 事务日志和用户存储空间分布在各处，所有数据都作为单个逻辑卷呈现给 Aurora DSQL 查询处理器。Aurora DSQL 根据数据库主键范围和访问模式，自动拆分、合并和复制数据。Aurora DSQL 根据读取访问频率，自动纵向扩展和缩减只读副本。

集群存储副本分布在多租户存储实例集之间。如果组件或可用区受损，Aurora DSQL 会自动将访问重定向到依然正常运行的组件，并异步修复缺失的副本。一旦 Aurora DSQL 修复了受损副本，Aurora DSQL 就会自动将其添加回存储仲裁，并使其可供您的集群使用。

## 高可用性
<a name="disaster-recovery-resiliency-high-availability"></a>

默认情况下，Aurora DSQL 中的单区域和多区域集群处于主动-主动状态，您无需手动预置、配置或重新配置任何集群。Aurora DSQL 可实现集群恢复的完全自动化，从而无需进行传统的主要-辅助失效转移操作。复制始终是同步的，并在多个可用区中完成，因此，在故障恢复期间，不会由于复制滞后或失效转移到异步辅助数据库而导致丢失数据的风险。

单区域集群提供多可用区冗余端点，该端点可自动实现跨三个可用区的并发访问，并具有很强的数据一致性。这意味着，这三个可用区中任何一个可用区上的用户存储副本始终向一个或多个读取器返回相同的结果，并且始终可以接收写入。可以跨 Aurora DSQL 多区域集群的所有区域提供这种强一致性和多可用区韧性。这意味着多区域集群提供了两个强一致性区域端点，因此客户端可以不加区分地对任一区域进行读取或写入，提交时复制滞后为零。

Aurora DSQL 为单区域集群提供 99.99% 的可用性，并为多区域集群提供 99.999% 的可用性。

## 故障注入测试
<a name="fault-injection-testing"></a>

Amazon Aurora DSQL 与 AWS Fault Injection Service（AWS FIS）集成，后者是完全托管式服务，用于运行受控的故障注入实验来提高应用程序的韧性。通过使用 AWS FIS，您可以：
+ 创建定义特定故障场景的实验模板
+ 注入故障（集群连接错误率提升），来验证应用程序错误处理和恢复机制
+ 测试多区域应用程序行为，验证当一个 AWS 区域出现高连接错误率时，流量在 AWS 区域之间的转移情况

 例如，在横跨美国东部（弗吉尼亚州北部）和美国东部（俄亥俄州）的多区域集群中，您可以在美国东部（俄亥俄州）运行实验来进行故障测试，同时美国东部（弗吉尼亚州北部）继续正常运行。这种受控测试有助于确定并解决潜在的问题，以防这些问题影响到生产工作负载。

有关 AWS FIS 所支持操作的完整列表，请参阅《AWS FIS User Guide**》中的 [Action targets](https://docs.aws.amazon.com/fis/latest/userguide/action-sequence.html#action-targets)。

有关在 AWS FIS 中可用的 Amazon Aurora DSQL 操作的信息，请参阅《AWS FIS User Guide**》中的 [Aurora DSQL actions reference](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#dsql-actions-reference)。

要开始运行故障注入实验，请参阅《AWS FIS 用户指南**》中的 [Planning your AWS FIS experiments](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-planning.html)。