为什么 Amazon RDS 数据库实例会重启、恢复或失效转移?

2 分钟阅读
0

我想知道 Amazon Relational Database Service (Amazon RDS) 数据库实例发生重启、恢复或失效转移的根本原因。

简短描述

在以下情况下,Amazon RDS 数据库实例会自动执行重启:

当数据库实例显示潜在问题且未能响应 RDS 运行状况检查时,RDS 会自动为单可用区部署启动单可用区恢复,为多可用区部署启动多可用区失效转移。然后,数据库实例会重新启动,以便尽快恢复数据库操作而无需管理干预。

解决方法

要确定中断原因,请检查 RDS 数据库实例的以下日志和指标。

Amazon RDS 事件

要确定实例意外中断的根本原因,请查看过去 24 小时内的所有 Amazon RDS 事件。默认情况下,所有事件都在 UTC/GMT 时间内注册。要更长时间存储事件,请将 Amazon RDS 事件发送到 Amazon CloudWatch Events。有关更多信息,请参阅创建对 Amazon RDS 事件触发的规则。当您的实例重启时,您会在 RDS 事件通知中看到以下消息之一:

  • **客户修改了 RDS 实例:**此 RDS 事件消息表示失效转移是由 RDS 实例修改启动的。

  • **应用对数据库实例类的修改:**此 RDS 事件消息表示数据库实例类的类型已更改。

    • 在此扩展操作期间,单可用区部署会出现在几分钟内不可用的情况。
    • 在实例进行失效转移期间,多可用区部署不可用。此持续时间通常约为 60 秒。这是因为备用数据库在调整大小后的数据库发生失效转移之前进行了升级。然后,数据库重新启动,引擎执行恢复,以确保数据库保持一致状态。
  • 用户请求对数据库实例进行失效转移:此消息表示您使用重启通过失效转移重启选项启动了数据库实例手动重启

  • **RDS 多可用区实例的主机运行不正常:**此原因表示存在短暂的底层硬件问题,导致与主实例的通信丢失。此问题可能导致实例运行状况不正常,因为 RDS 监控系统无法与 RDS 实例通信以执行运行状况检查。

  • **由于网络连接丢失,RDS 多可用区实例的主机无法访问:**此原因表示多可用区失效转移和数据库实例重启是由影响多可用区部署主机的暂时性网络问题引起的。内部监控系统检测到此问题并启动了失效转移。

  • **RDS 多可用区主实例繁忙且无响应,多可用区实例激活已启动或多可用区实例激活已完成:**事件日志在以下情况中显示这些消息:

    • 主数据库实例没有响应。
    • 过多内存消耗导致数据库中的内存资源紧张,从而使 RDS 监控系统无法与底层主机联系。因此,作为一项主动措施,监控系统重新启动数据库。
    • 数据库实例在底层主机上遇到间歇性的网络问题。
    • 该实例经历了数据库负载。在这种情况下,您可能注意到以下 CloudWatch 指标出现激增:CPUUtilizationDatabaseConnectionsIOPS metrics(IOPS 指标)和Throughput details(吞吐量详细信息)。您还可能注意到 Freeablememory 耗尽。
  • 数据库实例已修补:此消息表示数据库实例在维护时段期间进行了次要版本升级,因为实例上已启用次要版本自动升级设置。

CloudWatch 指标

查看 Amazon RDS 实例的 CloudWatch 指标,以检查数据库负载问题是否引发了中断。有关更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon RDS 指标。检查以下关键指标(这些指标表示 RDS 实例的可用性和运行状况)的峰值:

  • DatabaseConnections
  • CPUUtilization
  • FreeableMemory
  • WriteIOPS
  • ReadIOPS
  • ReadThroughput
  • WriteThroughput
  • DiskQueueDepth

增强监控

Amazon RDS 将增强监控中的指标传输到您的 Amazon CloudWatch Logs 账户中。这将实时提供关于运行数据库实例的操作系统的指标。您可以在控制台上查看数据库实例的所有系统指标和进程信息。

您可以将增强监控功能的粒度设置为 1、5、10、15、30 或 60。

要为 Amazon RDS 实例启用增强监控,请参阅设置和启用增强监控

Performance Insights

Performance Insights 控制面板包含与数据库性能相关的信息,可帮助您分析性能问题并对这些问题进行故障排除。您还可以确定在数据库实例上消耗过多资源的查询和等待事件。Performance Insights 采集数据库级别的数据,并在 Performance Insights 控制面板中显示数据。有关更多信息,请参阅使用 Amazon RDS 上的 Performance Insights 监控数据库负载。当应用程序端出现资源消耗增加时,请使用 Performance Insights 控制面板中的支持 SQL ID 并将其与相应的查询进行匹配。最佳实践是在 DBA 的指导下,使用这些信息来调整查询性能并优化工作负载:

  1. 打开 Amazon RDS console(Amazon RDS 控制台)。
  2. 在导航窗格中,选择 Performance Insights(性能详情)。
  3. 在 Performance Insights 页面上,选择您的数据库实例。您可以查看此数据库实例的 Performance Insights 控制面板。
  4. 选择发生问题的时间范围。
  5. 选择 Top SQL(首要 SQL)选项卡。
  6. 选择 settings(设置)图标,然后打开 Support ID(支持 ID)。
  7. 选择 Save(保存)。

RDS 数据库日志

要对 Amazon RDS 数据库实例的中断原因进行故障排除,您可以使用 Amazon RDS 控制台或 Amazon RDS API 操作查看、下载或监控数据库日志文件。您还可以查询加载到数据库表中的数据库日志文件。有关更多信息,请参阅监控 Amazon RDS 日志文件

处理 RDS 实例中断时,请记住以下最佳实践:


相关信息

Amazon RDS 最佳实践

哪些因素会影响 Amazon RDS 中的停机时间或数据库性能?

为什么我的 Amazon RDS 数据库实例进行失效转移?

如何在所需的 Amazon RDS 维护期间最大程度地缩短停机时间?

如何检查 Amazon RDS 或 Amazon Aurora PostgreSQL 兼容版数据库实例正在运行的查询并诊断资源消耗问题?

AWS 官方
AWS 官方已更新 2 年前