

# Amazon Aurora MySQL 的零停机重启 (ZDR)
<a name="AuroraMySQL.Replication.Availability"></a><a name="zdr"></a>

零停机重启 (ZDR) 特征可以在某些类型的重启期间保留与数据库实例的部分或全部活动连接。ZDR 适用于 Aurora 自动执行以解决错误条件的重启，例如，当副本开始远远落后于源时。

**重要**  
ZDR 机制运作以尽力而为作为原则。Aurora MySQL 版本、实例类、错误条件、兼容的 SQL 操作以及确定 ZDR 应用位置的其他因素随时可能会发生变化。

Aurora MySQL 2.x 的 ZDR 需要版本 2.10 及更高版本。ZDR 在 Aurora MySQL 3.x 的所有次要版本中都可用。在 Aurora MySQL 版本 2 和 3 中，ZDR 机制默认处于开启状态，且 Aurora 不使用 `aurora_enable_zdr` 参数。

Aurora 会在 **Event（事件)** 页面中报告与零停机时间重新启动相关的活动。Aurora 在尝试使用 ZDR 机制重新启动时会记录一个事件。此事件说明了 Aurora 重启的原因。然后，在重启完成后，Aurora 会记录另一个事件。这最后一个事件报告了进程所用时长，以及在重启期间保留或丢弃的连接数。您可以查看数据库错误日志，了解有关重启期间所发生情况的更多详细信息。

尽管成功执行 ZDR 操作后连接保持不变，但一些变量和特征会重新初始化。通过零停机重启进行重启后，以下类型的信息将不会保留：
+ 全局变量。Aurora 将恢复会话变量，但重启后不会恢复全局变量。
+ 状态变量。特别是，引擎状态报告的正常运行时间值将重置。
+ `LAST_INSERT_ID`. 
+ 表的内存中 `auto_increment` 状态。重新初始化内存中的自动增量状态。有关自动增量值的更多信息，请参阅 [MySQL 参考手册](https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html#innodb-auto-increment-initialization)。
+ 来自 `INFORMATION_SCHEMA` 和 `PERFORMANCE_SCHEMA` 表的诊断信息。这些诊断信息也会显示在 `SHOW PROFILE` 和 `SHOW PROFILES` 等命令的输出中。

下表显示了版本、实例角色以及确定在重启集群中的数据库实例时 Aurora 是否可以使用 ZDR 机制的其他情况。


| Aurora MySQL version | ZDR 适用于写入器吗？ | ZDR 适用于读取器吗？ | ZDR 始终处于启用状态？ | 注意 | 
| --- | --- | --- | --- | --- | 
|  2.x，低于 2.10.0  |  否  |  否  |  不适用  |  ZDR 不适用于这些版本。  | 
|  2.10.0–2.11.0  |  是  |  是  |  是  |  Aurora 回滚活动连接上正在执行的所有事务。您的应用程序必须重试事务。 Aurora 取消任何使用 TLS/SSL、临时表、表锁定或用户锁定的连接。  | 
|  2.11.1 及更高版本  |  是  |  是  |  是  |  Aurora 回滚活动连接上正在执行的所有事务。您的应用程序必须重试事务。 Aurora 取消任何使用临时表、表锁定或用户锁定的连接。  | 
|  3.01–3.03  |  是  |  是  |  是  |  Aurora 回滚活动连接上正在执行的所有事务。您的应用程序必须重试事务。 Aurora 取消任何使用 TLS/SSL、临时表、表锁定或用户锁定的连接。  | 
|  3.04 及更高版本  |  是  |  是  |  是  |  Aurora 回滚活动连接上正在执行的所有事务。您的应用程序必须重试事务。 Aurora 取消任何使用临时表、表锁定或用户锁定的连接。  | 