

# 在具有读取可用性的情况下重启 Aurora 集群
<a name="aurora-mysql-survivable-replicas"></a><a name="survivable_replicas"></a>

在使用读取可用性特征的情况下，您可以重启 Aurora 集群的写入器实例，而无需重启主要或辅助数据库集群中的读取器实例。这样做有助于在重启写入器实例时维持集群的高可用性，以进行读取操作。您可以稍后按照方便的时间安排重启读取器实例。例如，在生产集群中，您可以一次重启一个读取器实例，但只有在主实例完成重启后才能开始。对于您重启的每个数据库实例，请按照 [重启 Aurora 集群内的数据库实例](aurora-reboot-db-instance.md) 中的步骤操作。

主数据库集群的读取可用性特征在 Aurora MySQL 版本 2.10 及更高版本中可用。辅助数据库集群的读取可用性在 Aurora MySQL 版本 3.06 及更高版本中可用。

对于 Aurora PostgreSQL，原定设置情况下，此功能在以下版本中可用：
+ 15.2 及更高的 15 版本
+ 14.7 及更高的 14 版本
+ 13.10 及更高的 13 版本
+ 12.14 及更高的 12 版本

有关 Aurora PostgreSQL 中读取可用性功能的更多信息，请参阅[提高 Aurora 副本的读取可用性](AuroraPostgreSQL.Replication.md#AuroraPostgreSQL.Replication.Replicas.SRO)。

在推出此特征之前，重启主实例会同时导致每个读取器实例重启。如果您的 Aurora 集群运行的是旧版本，请改用[在没有读取可用性功能的情况下重启 Aurora 集群](aurora-reboot-cluster.md)中的重启过程。

**注意**  
对于 Aurora MySQL 版本低于 3.06 的 Aurora 全局数据库，在具有读取可用性的 Aurora 数据库集群中对重启行为的更改有所不同。如果重启 Aurora 全局数据库中主集群的写入器实例，则主集群中的读取器实例仍可用。但是，所有辅助集群中的数据库实例都会同时重启。  
Aurora PostgreSQL 12.16、13.12、14.9、15.4 及更高版本的 Aurora 全局数据库支持改进的读取可用性特征的有限版本。

在对集群参数组进行更改后，您需要经常重启集群。您可以按照 [Amazon Aurora 的参数组](USER_WorkingWithParamGroups.md) 中的过程进行参数更改。假设您重启 Aurora 集群中的写入器数据库实例，以便对集群参数应用更改。部分或全部读取器数据库实例可能会继续使用旧的参数设置。但是，不同的参数设置不会影响集群的数据完整性。任何影响数据文件条理性的集群参数只能由写入器数据库实例使用。

例如，在 Aurora MySQL 集群中，您可以先更新写入器实例上的集群参数（如 `binlog_format` 和 `innodb_purge_threads`），然后再对读取器实例进行相同的操作。只有写入器实例需要编写二进制日志并清除撤消记录。对于更改查询解释 SQL 语句或查询输出方式的参数，您可能需要注意立即重启读取器实例。这样做是为了避免查询期间出现意外的应用程序行为。例如，假设您更改了 `lower_case_table_names` 参数并重启了写入器实例。在这种情况下，只有全部重启后，读取器实例才可能可以访问新建的表。

有关所有 Aurora MySQL 集群参数的列表，请参阅 [集群级别的参数](AuroraMySQL.Reference.ParameterGroups.md#AuroraMySQL.Reference.Parameters.Cluster)。

有关所有 Aurora PostgreSQL 集群参数的列表，请参阅[Aurora PostgreSQL 集群级参数](AuroraPostgreSQL.Reference.ParameterGroups.md#AuroraPostgreSQL.Reference.Parameters.Cluster)。

**提示**  
如果您的集群正在处理高吞吐量的工作负载，Aurora MySQL 可能仍会重启部分读取器实例以及写入器实例。  
在故障转移操作过程中，重新启动次数减少也会如此。Aurora MySQL 在故障转移期间仅重启写入器数据库实例和故障转移目标。集群中的其他读取器数据库实例仍然可以通过与读取器终端节点的连接来继续处理查询。因此，您可以通过在集群中拥有多个读取器数据库实例来提高故障转移期间的可用性。