Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用 Amazon Aurora 进行复制

Aurora 副本是 Aurora 数据库群集中独立的终端节点,最适用于扩展读取操作以及提高可用性。在一个区域中某数据库群集所跨的多个可用区中,可以分配最多 15 个 Aurora 副本。虽然数据库群集卷由数据库群集的多个数据副本组成,但群集卷中的数据表示为数据库群集中的主实例和 Aurora 副本的单个逻辑卷。

因此,所有 Aurora 副本均返回相同的查询结果数据,且副本滞后时间非常短,通常远远少于主实例写入更新后的 100 毫秒。副本滞后因数据库更改速率而异。也就是说,在对数据库执行大量写入操作期间,您可能发现副本滞后时间变长。

Aurora 副本十分适用于读取扩展,因为它们完全专用于群集卷上的读取操作。写入操作由主实例进行管理。由于群集卷是在数据库群集中的所有实例间共享的,因此无需其他操作即可复制每个 Aurora 副本的数据副本。相比之下,MySQL 只读副本必须在单个线程上重播从主数据库实例到其本地数据存储的所有写入操作,这可能会影响 MySQL 只读副本支持大量读取流量的能力。

要提高可用性,可以使用 Aurora 副本作为故障转移目标。也就是说,如果主实例失败,Aurora 副本将提升为主实例,提升过程只造成短暂的中断,在此期间,对主实例发出的读写请求将失败,并且会出现异常。如果 Aurora 数据库群集不包括任何 Aurora 副本,将在故障事件期间重新创建主实例。不过,提升 Aurora 副本要比重新创建主实例快得多。对于高可用性方案,建议您在 Aurora 数据库群集的不同可用区中创建一个或多个 Aurora 副本 (具有与主实例的类型相同的数据库实例类)。有关将 Aurora 副本作为故障转移目标的更多信息,请参阅 Aurora 数据库群集的容错能力

重要

对于在 InnoDB 表上的操作,Aurora 副本始终使用 REPEATABLE READ 默认事务隔离级别。仅对于 Amazon Aurora 数据库群集的主实例,您可使用 SET TRANSACTION ISOLATION LEVEL 命令更改事务级别。此限制避免 Aurora 副本上出现用户级别的锁定,并且允许 Aurora 副本缩放以支持成千上万的有效用户连接,同时仍将副本滞后时间保持在最小。

有关如何创建 Aurora 副本的详细信息,请参阅使用控制台创建 Aurora 副本

您可以在不同 AWS 区域中的两个 Amazon Aurora 数据库群集之间设置复制。有关详细信息,请参阅 跨 AWS 区域复制 Amazon Aurora 数据库群集

可以使用 MySQL 二进制日志 (binlog) 复制在两个 Amazon Aurora 数据库群集之间设置复制。有关详细信息,请参阅 Aurora 与 MySQL 之间或 Aurora 与其他 Aurora 数据库群集之间的复制

您可以创建 MySQL 数据库实例的 Aurora 只读副本,从而在 RDS MySQL 数据库实例 (作为主实例) 和 Aurora 数据库群集之间设置复制。此方法通常适用于迁移到 Aurora 而不是持续复制。有关详细信息,请参阅 使用只读副本,从 MySQL 数据库实例将数据迁移到 Amazon Aurora 数据库群集。

注意

重启 Amazon Aurora 数据库群集的主实例也会自动重启该数据库群集的 Aurora 副本,以便重新建立入口点,保证数据库群集中的读/写一致性。

监控 Aurora 复制

读取扩展和高可用性依赖于尽可能短的滞后时间。您可通过监控 Amazon CloudWatch ReplicaLag 指标来监控 Aurora 副本滞后于 Aurora 数据库群集主实例的时间。由于 Aurora 副本从主实例所在的同一个群集卷读取数据,因此 ReplicaLag 指标对于 Aurora 数据库群集有不同的含义。Aurora 副本的 ReplicaLag 指标表示 Aurora 副本的页面缓存相较主实例页面缓存的滞后时间。

如果需要 Aurora 副本滞后的最新值,可在您的 Aurora 数据库群集中查询 mysql.ro_replica_status 表并查看 Replica_lag_in_msec 列中的值。此列值作为 ReplicaLag 指标值提供给 Amazon CloudWatch。Aurora 数据库群集中的 INFORMATION_SCHEMA.REPLICA_HOST_STATUS 表中还提供了 mysql.ro_replica_status 中的值。

有关监控 RDS 实例和 CloudWatch 指标的更多信息,请参阅监控 Amazon RDS

本页内容: