多可用区数据库集群部署(预览版) - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

多可用区数据库集群部署(预览版)

对于 RDS for MySQL 和 RDS for PostgreSQL,多可用区数据库集群提供预览版,并可能会发生变化。

一个多可用区数据库集群部署是 Amazon RDS 的高可用性部署模式,具有两个可读的备用数据库实例。多可用区数据库集群在同一个 Amazon 区域的三个独立可用区中有一个写入器数据库实例和两个读取器数据库实例。与多可用区数据库实例部署相比,多可用区数据库集群可提供高可用性、增加读取工作负载容量以及更低的写入延迟。

重要

多可用区数据库集群与 Aurora 数据库集群不同。有关使用 Aurora 数据库集群的更多信息,请参阅《Amazon Aurora 用户指南》。

多可用区数据库集群概览

使用多可用区数据库集群,Amazon RDS 使用数据库引擎的本机复制功能将数据从写入器数据库实例复制到两个读取器数据库实例。当对写入器数据库实例进行更改时,它会发送给每个读取器数据库实例。提交和应用更改需要至少一个读者读取器数据库实例的确认。读取器数据库实例可充当自动故障转移目标,还可提供读取流量以提高应用程序读取吞吐量。

下图显示了一个多可用区数据库集群。


				多可用区数据库集群

与多可用区数据库实例部署相比,多可用区数据库集群的写入延迟通常较低。RDS 控制台显示了写入器数据库实例的可用区和读取器数据库实例的可用区。您也可以使用 describe-db-clusters CLI 命令或 DescribeDBClusters API 操作来查找此信息。

多可用区数据库集群支持的数据库实例类

多可用区数据库集群支持以下数据库实例类。

实例类 vCPU ECU 内存 (GiB) 仅限 VPC EBS 优化 最大带宽 (Mbps) 网络性能
db.m6gd
db.m6gd.16xlarge 64 256 19000 25 Gbps
db.m6gd.12xlarge 48 192 13,500 20 Gbps
db.m6gd.8xlarge 32 128 9,000 12 Gbps
db.m6gd.4xlarge 16 64 4750 最高 10 Gbps
db.m6gd.2xlarge 8 32 最多 4,750 最高 10 Gbps
db.m6gd.xlarge 4 16 最多 4,750 最高 10 Gbps
db.m6gd.large 2 8 最多 4,750 最高 10 Gbps
db.r6gd
db.r6gd.16xlarge 64 512 19000 25 Gbps
db.r6gd.12xlarge 48 384 13,500 20 Gbps
db.r6gd.8xlarge 32 256 9,000 12 Gbps
db.r6gd.4xlarge 16 128 4750 最高 10 Gbps
db.r6gd.2xlarge 8 64 最多 4,750 最高 10 Gbps
db.r6gd.xlarge 4 32 最多 4,750 最高 10 Gbps
db.r6gd.large 2 16 最多 4,750 最高 10 Gbps

创建多可用区数据库集群

多可用区数据库集群在三个独立可用区中有一个写入器数据库实例和两个读取器数据库实例。与多可用区部署相比,多可用区数据库集群可提供高可用性、增加读取工作负载容量以及更低的延迟。有关多可用区数据库集群的更多信息,请参阅 多可用区数据库集群部署(预览版)

注意

仅 MySQL 和 PostgreSQL 数据库引擎支持多可用区数据库集群。

在以下主题中,您可以了解如何创建多可用区数据库集群。要了解其用法,请先参阅数据库集群先决条件

有关连接到多可用区数据库集群的说明,请参阅 连接到 Amazon RDS 数据库实例

数据库集群先决条件

请务必先完成 设置 Amazon RDS 中的任务,然后才能创建多可用区数据库集群。以下是创建多可用区数据库集群的其他先决条件。

VPC 先决条件

在具有至少三个可用区的 Amazon 区域中,您只能在基于 Amazon VPC 服务的 Virtual Private Cloud (VPC) 中创建一个多可用区数据库集群。为数据库集群选择的数据库子网组必须包含至少三个可用区。在极少数情况下,在发生可用区故障时,该配置确保数据库集群始终具有至少两个可用于故障转移的数据库实例。

如果使用 Amazon Web Services Management Console 创建多可用区数据库集群,您可以让 Amazon RDS 自动为您创建 VPC。或者,您也可以使用现有 VPC 或为您的多可用区数据库集群创建新的 VPC。要在多可用区数据库集群中使用您的 VPC,该 VPC 必须最少在三个可用区中均拥有一个子网。有关 VPC 的信息,请参阅 Amazon Virtual Private Cloud VPC 和 Amazon RDS

如果您没有原定设置 VPC 或尚未创建 VPC,并且您不打算使用控制台,请执行以下操作:

  • 在要部署数据库集群的 Amazon 区域中,创建最少在三个可用区中均至少有一个子网的 VPC。有关更多信息,请参阅 在 VPC 中使用数据库实例

  • 指定授权与您的 数据库集群的连接的 VPC 安全组。有关更多信息,请参阅 在 VPC 中使用数据库实例

  • 指定 RDS 数据库子网组,该子网组在 VPC 中定义至少三个可由多可用区数据库集群使用的子网。有关更多信息,请参阅 使用数据库子网组

其他先决条件

如果使用 Amazon Identity and Access Management(IAM)凭证连接到Amazon,您的Amazon账户必须拥有 IAM 策略来授予执行 Amazon RDS 操作所需的权限。有关更多信息,请参阅 Amazon RDS 中的 Identity and Access Management

如果要使用 IAM 访问 Amazon RDS 控制台,请先使用您的 IAM 用户凭证登录 Amazon Web Services Management Console。然后通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

要定制您的数据库集群的配置参数,请通过必需的参数设置来指定数据库集群的参数组。有关创建或修改数据库集群参数组的信息,请参阅 使用多可用区数据库集群的参数组

请确定要为数据库集群指定的 TCP/IP 端口号。有些公司的防火墙将会阻止通往这些原定设置端口的连接。如果您的公司防火墙阻止默认端口,请为数据库集群选择其他端口。数据库集群中的所有数据库实例均使用相同的端口。

创建数据库集群

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 创建多可用区数据库集群。

您可以通过选择 Availability and durability(可用性与持久性)部分中的 Multi-AZ DB cluster - preview(多可用区数据库集群 – 预览)来创建多可用区数据库集群。

要使用控制台创建多可用区数据库集群

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在 Amazon Web Services Management Console 的右上角,选择要在其中创建数据库集群的 Amazon 区域。

    对于预览版,只有美国东部(弗吉尼亚北部)、美国西部(俄勒冈)和欧洲(爱尔兰) Amazon 区域支持多可用区数据库集群。

  3. 在导航窗格中,选择 Databases (数据库)

  4. 选择创建数据库

    要创建多可用区数据库集群,请确保已选择 Standard Create(标准创建)并未选择 Easy Create(轻松创建)。

  5. Engine type(引擎类型)中,请选择 MySQLPostgreSQL

  6. 对于 Version(版本),请选择数据库引擎版本。

    您只能使用 MySQL 版本 8.0.26 和 PostgreSQL 版本 13.4 创建多可用区数据库集群。

  7. Templates(模板)中,请为您的部署选择适当的模板。

  8. Availability and durability(可用性与持久性)中,请选择 Multi-AZ DB cluster - preview(多可用区数据库集群 - 预览)。

    
                        多可用区数据库集群选择
  9. DB cluster identifier(数据库集群标识符)中,请输入数据库集群的标识符。

  10. Master username(主用户名)中,请输入您的主用户名,或者保持原定设置设置。

  11. 请输入您的主密码:

    1. 设置部分中,打开凭证设置

    2. 如果要指定密码,请取消勾选已选择的 Auto generate a password(自动生成密码)复选框。

    3. (可选)更改 Master username(主用户名)的值。

    4. 请在 Master password(主密码)和 Confirm password(确认密码)中输入相同的密码。

  12. DB instance class(数据库实例类)中,请选择数据库实例类。

  13. 对于其余部分,请指定数据库集群设置。有关每项设置的信息,请参阅 创建多可用区数据库集群的设置

  14. 选择创建数据库

    如果选择使用自动生成的密码,则数据库页面上将显示查看凭证详细信息按钮。

    要查看数据库集群的主用户名和密码,请选择查看凭证详细信息

    
                        自动生成密码后的主用户凭证。

    要以主用户身份连接到数据库集群,请使用显示的用户名和密码。

    重要

    您无法再次查看主用户密码。

  15. 对于 Databases(数据库),请选择新数据库集群的名称。

在 RDS 控制台上,将显示新数据库集群的详细信息。在此数据库集群完成创建、可供使用之前,此数据库集群的状态将为 Creating(正在创建)。当状态变为 Available(可用)时,您便可以连接到该数据库集群。根据所分配的数据库集群类和存储的不同,新数据库集群可能需要数分钟时间才可用。

在使用 Amazon CLI 创建多可用区数据库集群之前,您必须满足所需的先决条件,例如,创建 VPC 和 RDS 数据库子网组。有关更多信息,请参阅 数据库集群先决条件

要使用 Amazon CLI 创建多可用区数据库集群,请调用 create-db-cluster 命令。请指定 --db-cluster-identifier。对于 --engine 选项,请指定 mysqlpostgres

有关各选项的信息,请参阅创建多可用区数据库集群的设置

create-db-cluster 命令将为您的数据库集群创建写入器数据库实例,以及两个读取器数据库实例。每个数据库实例都位于不同的可用区。

例如,以下命令将创建一个名为 mysql-multi-az-db-cluster 的 MySQL 8.0 多可用区数据库集群。

对于 Linux、macOS 或 Unix:

aws rds create-db-cluster \ --db-cluster-identifier mysql-multi-az-db-cluster \ --engine mysql \ --engine-version 8.0.26 \ --master-user-password password \ --master-username admin \ --port 3306 \ --backup-retention-period 1 \ --db-subnet-group-name default \ --allocated-storage 4000 \ --storage-type io1 \ --iops 10000 \ --db-cluster-instance-class db.r6gd.xlarge

对于 Windows:

aws rds create-db-cluster ^ --db-cluster-identifier mysql-multi-az-db-cluster ^ --engine mysql ^ --engine-version 8.0.26 ^ --master-user-password password ^ --master-username admin ^ --port 3306 ^ --backup-retention-period 1 ^ --db-subnet-group-name default ^ --allocated-storage 4000 ^ --storage-type io1 ^ --iops 10000 ^ --db-cluster-instance-class db.r6gd.xlarge

以下命令将创建一个名为 postgresql-multi-az-db-cluster 的 PostgreSQL 13.4 多可用区数据库集群。

对于 Linux、macOS 或 Unix:

aws rds create-db-cluster \ --db-cluster-identifier postgresql-multi-az-db-cluster \ --engine postgres \ --engine-version 13.4 \ --master-user-password password \ --master-username postgres \ --port 5432 \ --backup-retention-period 1 \ --db-subnet-group-name default \ --allocated-storage 4000 \ --storage-type io1 \ --iops 10000 \ --db-cluster-instance-class db.r6gd.xlarge

对于 Windows:

aws rds create-db-cluster ^ --db-cluster-identifier postgresql-multi-az-db-cluster ^ --engine postgres ^ --engine-version 13.4 ^ --master-user-password password ^ --master-username postgres ^ --port 5432 ^ --backup-retention-period 1 ^ --db-subnet-group-name default ^ --allocated-storage 4000 ^ --storage-type io1 ^ --iops 10000 ^ --db-cluster-instance-class db.r6gd.xlarge

在使用 RDS API 创建多可用区数据库集群之前,您必须满足所需的先决条件,例如创建 VPC 和 RDS 数据库子网组。有关更多信息,请参阅 数据库集群先决条件

要使用 RDS API 创建多可用区数据库集群,请调用 CreateDBCluster 操作。请指定 DBClusterIdentifier。对于 Engine 参数,请指定 mysqlpostgresql

有关各选项的信息,请参阅创建多可用区数据库集群的设置

CreateDBCluster 操作将为您的数据库集群创建写入器数据库实例,以及两个读取器数据库实例。每个数据库实例都位于不同的可用区。

创建多可用区数据库集群的设置

有关创建多可用区数据库集群时所选设置的详细信息,请参阅下表。有关 Amazon CLI 选项的更多信息,请参阅 create-db-cluster。有关 RDS API 参数的更多信息,请参阅 CreateDBCluster

控制台设置 设置说明 CLI 选项和 RDS API 参数

分配的存储空间

为数据库集群中的每个数据库实例分配的存储量(以 GiB 为单位)。

有关更多信息,请参阅 Amazon RDS 数据库实例存储

CLI 选项:

--allocated-storage

API 参数:

AllocatedStorage

自动次要版本升级

请选择 Enable auto minor version upgrade(启用自动次要版本升级),以使数据库集群能够在首选次要数据库引擎版本升级可用时自动接收这些升级。Amazon RDS 在维护时段内执行自动次要版本升级。

CLI 选项:

--auto-minor-version-upgrade

--no-auto-minor-version-upgrade

API 参数:

AutoMinorVersionUpgrade

备份保留期

您希望数据库集群自动备份的保留天数。对于多可用区数据库集群,此值必须设置为 1 或更大。

有关更多信息,请参阅 使用备份

CLI 选项:

--backup-retention-period

API 参数:

BackupRetentionPeriod

备份时段

Amazon RDS 自动备份数据库集群的时间段。除非您知道需要何时进行数据库备份,否则,请使用 No preference(无首选项)的原定设置设置。

有关更多信息,请参阅“使用备份”。

CLI 选项:

--preferred-backup-window

API 参数:

PreferredBackupWindow

Database authentication

对于多可用区数据库集群,仅支持 Password authentication(密码身份验证)。

无,因为密码身份验证是原定设置。

数据库端口

要用于访问数据库集群的端口。显示的是默认端口。如果将数据库安全组用于数据库集群,该端口值必须与创建数据库安全组时提供的端口值相同。

在预览版中,创建数据库集群后将无法更改端口。

有些公司的防火墙将会阻止通往这些原定设置端口的连接。如果您的公司防火墙阻止原定设置端口,请为数据库集群输入其他端口。

CLI 选项:

--port

RDS API 参数:

Port

数据库集群标识符

数据库集群的名称。请使用与命名本地部署服务器相同的方式命名数据库集群。数据库集群标识符最多可以包含 63 个字母数字字符,且必须在所选 Amazon 区域中对于您的账户是唯一的。

CLI 选项:

--db-cluster-identifier

RDS API 参数:

DBClusterIdentifier

DB cluster instance class(数据库集群实例类)

多可用区数据库集群中各数据库实例(例如 db.r6gd.xlarge)的计算和内存容量。

如有可能,请选择足够大的数据库实例类以便典型查询工作集能够保留在内存中。如果在内存中保留工作集,系统可以避免写入到磁盘,从而提高性能。有关更多信息,请参阅 多可用区数据库集群支持的数据库实例类

CLI 选项:

--db-cluster-instance-class

RDS API 参数:

DBClusterInstanceClass

数据库集群参数组

要与数据库集群关联的数据库集群参数组。

有关更多信息,请参阅 使用多可用区数据库集群的参数组

CLI 选项:

--db-cluster-parameter-group-name

RDS API 参数:

DBClusterParameterGroupName

数据库引擎版本

要使用的数据库引擎的版本。

CLI 选项:

--engine-version

RDS API 参数:

EngineVersion

数据库参数组

要与数据库集群中的数据库实例关联的数据库实例参数组。

有关更多信息,请参阅 使用多可用区数据库集群的参数组

不适用。Amazon RDS 将每个数据库实例与适当的原定设置参数组向关联。

删除保护

启用删除保护以禁止删除数据库集群。如果使用控制台创建生产数据库集群,预设情况下将开启删除保护。

有关更多信息,请参阅 删除数据库实例

CLI 选项:

--deletion-protection

--no-deletion-protection

RDS API 参数:

DeletionProtection

加密

请选择 Enable Encryption(启用加密)以对该数据库集群开启静态加密。

预设情况下,将对多可用区数据库集群开启加密。

有关更多信息,请参阅 加密 Amazon RDS 资源

CLI 选项:

--kms-key-id

--storage-encrypted

--no-storage-encrypted

RDS API 参数:

KmsKeyId

StorageEncrypted

增强监控

选择 Enable enhanced monitoring(启用增强监控)可为您的数据库集群运行所在的操作系统开启实时指标收集。

有关更多信息,请参阅 使用增强监测来监控操作系统

CLI 选项:

--monitoring-interval

--monitoring-role-arn

RDS API 参数:

MonitoringInterval

MonitoringRoleArn

Initial database name (初始数据库名称

数据库集群的数据库名称。如果您未提供名称,则 Amazon RDS 不会在数据库集群上为 MySQL 创建数据库,但会在数据库集群上为 PostgreSQL 创建数据库。该名称不能是数据库引擎保留的单词,并且具有其他限制,具体取决于数据库引擎。

MySQL:

  • 必须包含 1–64 个字母数字字符。

PostgreSQL:

  • 必须包含 1–63 个字母数字字符。

  • 必须以字母或下划线开头。后续字符可以是字母、下划线或数字 (0-9)。

  • 初始数据库名称为 postgres

CLI 选项:

--database-name

RDS API 参数:

DatabaseName

维护时段

30 分钟时段,在这段时间内,将会应用对数据库集群的待处理修改。如果该时段无关紧要,请选择 No preference(无首选项)。

有关更多信息,请参阅“Amazon RDS 维护时段”。

CLI 选项:

--preferred-maintenance-window

RDS API 参数:

PreferredMaintenanceWindow

主密码

您的主用户账户密码。

CLI 选项:

--master-user-password

RDS API 参数:

MasterUserPassword

主用户名

用作登录数据库集群的主用户名,拥有所有数据库权限。

  • 它可以包含 1–16 个字母数字字符和下划线。

  • 它的第一个字符必须是字母。

  • 它不能是数据库引擎的保留字。

有关授予主用户权限的更多信息,请参阅 主用户账户权限

CLI 选项:

--master-username

RDS API 参数:

MasterUsername

Performance Insights

请选择 Enable Performance Insights(启用性能详情)以监控数据库集群负载,以便您可以分析数据库性能和解决数据库性能问题。

选择保留期以确定要保留的滚动数据历史记录数量。免费套餐中的默认值为 7 天。长期保留(两年)是按每月每个 vCPU 定价的。

选择一个主密钥以用来保护用于加密该数据库卷的密钥。请从您的账户的主密钥中进行选择,或输入来自其他账户的密钥。

有关更多信息,请参阅“在 Amazon RDS 上使用性能详情监控数据库负载”。

CLI 选项:

--enable-performance-insights

--no-enable-performance-insights

--performance-insights-retention-period

--performance-insights-kms-key-id

RDS API 参数:

EnablePerformanceInsights

PerformanceInsightsRetentionPeriod

PerformanceInsightsKMSKeyId

预置 IOPS

最初为数据库集群分配的预置 IOPS(每秒输入/输出操作数)量。仅当将预置 IOPS (io1) 选为了存储类型时,该设置才可用。

有关更多信息,请参阅 预置 IOPS SSD 存储

CLI 选项:

--iops

RDS API 参数:

Iops

公有访问权限

请选择 Publicly accessible(可公开访问)以为数据库集群提供公有 IP 地址,这表示可以在 VPC 外部访问该实例。要可供公开访问,数据库集群还必须在 VPC 的公有子网中。

请选择 Not publicly accessible(不可公开访问)以设置只能从 VPC 内部访问数据库集群。

有关更多信息,请参阅 从 Internet 隐藏 VPC 中的数据库实例

要从其 VPC 外部连接到数据库集群,该数据库集群必须可公开访问。此外,必须使用数据库集群安全组的入站规则授予访问权限,并且必须满足其他要求。有关更多信息,请参阅 无法连接到 Amazon RDS 数据库实例

如果您的数据库集群不可公开访问,则您可以使用 Amazon Site-to-Site VPN 连接或 Amazon Direct Connect 连接从专用网络访问该实例。有关更多信息,请参阅 互联网络流量隐私

CLI 选项:

--publicly-accessible

--no-publicly-accessible

RDS API 参数:

PubliclyAccessible

存储类型

数据库集群的存储类型。

对于预览版,仅支持 预置 IOPS (io1) 存储。

有关更多信息,请参阅 Amazon RDS 存储类型

CLI 选项:

--storage-type

RDS API 参数:

StorageType

子网组

与此数据库集群关联的数据库子网组。

有关更多信息,请参阅 使用数据库子网组

CLI 选项:

--db-subnet-group-name

RDS API 参数:

DBSubnetGroupName

Virtual Private Cloud (VPC)

要与此数据库集群关联的 Amazon VPC。

有关更多信息,请参阅 Amazon Virtual Private Cloud VPC 和 Amazon RDS

对于 CLI 和 API,您可以指定 VPC 安全组 ID。

VPC 安全组

要与数据库集群关联的安全组。

有关更多信息,请参阅 VPC 安全组

CLI 选项:

--vpc-security-group-ids

RDS API 参数:

VpcSecurityGroupIds

创建多可用区数据库集群时不适用的设置

Amazon CLI 命令 create-db-cluster 和 RDS API 操作 CreateDBCluster 中的设置不适用于预览版中的多可用区数据库集群。

您也无法在控制台中为多可用区数据库集群指定这些设置。

Amazon CLI 设置 RDS API 设置

--availability-zones

AvailabilityZones

--backtrack-window

BacktrackWindow

--character-set-name

CharacterSetName

--copy-tags-to-snapshot | --no-copy-tags-to-snapshot

CopyTagsToSnapshot

--domain

Domain

--domain-iam-role-name

DomainIAMRoleName

--enable-cloudwatch-logs-exports | --no-enable-cloudwatch-logs-exports

EnableCloudwatchLogsExports

--enable-global-write-forwarding | --no-enable-global-write-forwarding

EnableGlobalWriteForwarding

--enable-http-endpoint | --no-enable-http-endpoint

EnableHttpEndpoint

--enable-iam-database-authentication | --no-enable-iam-database-authentication

EnableIAMDatabaseAuthentication

--global-cluster-identifier

GlobalClusterIdentifier

--option-group-name

OptionGroupName

--pre-signed-url

PreSignedUrl

--replication-source-identifier

ReplicationSourceIdentifier

--scaling-configuration

ScalingConfiguration

管理多可用区数据库集群的连接

多可用区数据库集群具有三个数据库实例,而不是单个数据库实例。每个连接均由特定的数据库实例处理。在连接到多可用区数据库集群时,您指定的主机名和端口将指向名为端点的中间处理程序。多可用区数据库集群使用端点机制来提取这些连接。因此,当某些数据库实例不可用时,您不必对所有主机名进行硬编码或编写自己的逻辑来进行负载均衡和重新路由连接。

对于某些任务,不同的数据库实例或数据库实例组将执行不同的角色。例如,写入器数据库实例处理所有数据定义语言 (DDL) 和数据操作语言 (DML) 语句。

通过使用终端节点,您可以根据使用案例将每个连接映射到相应的数据库实例或数据库实例组。例如,要执行 DDL 和 DML 语句,您可以连接到作为写入器数据库实例的任一数据库实例。要执行查询,您可以连接到读取器终端节点,并通过多可用区数据库集群自动在所有读取器数据库实例之间执行负载均衡。对于诊断或优化,您可以连接到特定数据库实例端点以检查有关特定数据库实例的详细信息。

有关连接到数据库实例的信息,请参阅 连接到 Amazon RDS 数据库实例

多可用区数据库集群端点的类型

端点由包含主机地址的唯一标识符表示。可从多可用区数据库集群使用以下类型的端点。

集群终端节点

多可用区数据库集群的集群端点(或写入器端点)连接到该数据库集群的当前写入器数据库实例。此端点是唯一可以执行写操作(如 DDL 和 DML 语句)的端点。此端点还可以执行读取操作。

每个多可用区数据库集群均有一个集群端点和一个写入器数据库实例。

对数据库集群上的所有写入操作使用集群终端节点,这些操作包括插入、更新、删除和 DDL 更改。您还可以对读取操作(如查询)使用集群终端节点。

集群终端节点为数据库集群的读取/写入连接提供故障转移支持。如果数据库集群的当前写入器数据库实例失败,多可用区数据库集群将自动故障转移到新的写入器数据库实例。在故障转移期间,数据库集群将继续为从新的写入器数据库实例到集群端点的请求提供服务,对服务造成的中断最少。

以下示例介绍多可用区数据库集群中的集群端点。

mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com

读取器终端节点

多可用区数据库集群的读取器终端节点为数据库集群的只读连接提供了负载均衡支持。对读取操作 (如查询) 使用读取器终端节点。通过在读取器数据库实例上处理这些语句,此端点可减少写入器数据库实例上的开销。它还可以帮助集群扩展容量以同时 SELECT 查询。每个多可用区数据库集群均有一个读取器终端节点。

读取器终端节点在读取器数据库实例间对每个连接请求执行负载均衡。在会话中使用读取器终端节点时,您只能执行只读语句,例如该会话中的 SELECT

以下示例介绍多可用区数据库集群的读取器终端节点。

mydbcluster.cluster-ro-123456789012.us-east-1.rds.amazonaws.com

实例终端节点

实例端点会连接到多可用区数据库集群中的特定数据库实例。数据库集群中的每个数据库实例具有自己的唯一实例终端节点。因此,数据库集群的当前写入器数据库实例具有一个实例端点,并且数据库集群中的每个读取器数据库实例都具有一个实例端点。

实例端点提供对数据库集群连接的直接控制。此控制可以帮助您解决可能不适合使用集群端点或读取器终端节点的场景。例如,客户端应用程序可能根据工作负载类型需要更精细的负载均衡。在这种情况下,您可以配置多个客户端以连接到数据库集群中的不同读取器数据库实例,以便分配读取工作负载。

以下示例介绍多可用区数据库集群中数据库实例的实例端点。

mydbinstance.123456789012.us-east-1.rds.amazonaws.com

查看多可用区数据库集群的端点

在 Amazon Web Services Management Console 中,您可以在每个多可用区数据库集群的详细信息页面中查看集群端点和读取器终端节点。您可在每个数据库实例的详细信息页面中查看实例端点。

利用 Amazon CLI,您会在 describe-db-clusters 命令的输出中看到写入器和读取器终端节点。例如,以下命令显示当前 Amazon 区域中所有集群的终端节点属性。

aws rds describe-db-cluster-endpoints

利用 Amazon RDS API,您可以通过调用 DescribeDBClusterEndpoints 函数来检索终端节点。输出还将显示 Amazon Aurora 数据库集群端点(如果存在)。

使用集群终端节点

每个多可用区数据库集群都有一个内置读取器端点,其名称和其他属性均由 Amazon RDS 管理。您无法创建、删除或修改此类终端节点。

在管理数据库集群、执行提取、转换、加载 (ETL) 操作或开发和测试应用程序时,可以使用集群端点。集群端点将连接到集群的写入器数据库实例。写入器数据库实例是您可以在其中创建表和索引、运行 INSERT 语句以及执行其他 DDL 和 DML 操作的唯一数据库实例。

当故障转移机制将新数据库实例提升为集群的写入器数据库实例时,集群端点指向的物理 IP 地址会发生更改。如果您使用任意形式的连接池或其他多路复用,请准备刷新或减少任何缓存的 DNS 信息的生存时间。这样做可确保您不会尝试与在故障转移后不可用或现在为只读的数据库实例建立读/写连接。

使用读取器终端节点

您将读取器终端节点用于多可用区数据库集群的只读连接。此终端节点使用负载均衡机制来帮助您的集群处理查询密集型工作负载。读取器终端节点是您向在集群上执行报告或其他只读操作的应用程序提供的终端节点。

读取器终端节点对到多可用区数据库数据库集群中的可用读取器数据库实例的连接执行负载均衡。它不会对各个查询进行负载均衡。如果要对每个查询进行负载均衡以分布数据库集群的读取工作负载,请为每个查询打开与读取器终端节点的新连接。

每个多可用区集群都有一个内置读取器终端节点,其名称和其他属性由 Amazon RDS 管理。您无法创建、删除或修改此类终端节点。

使用实例终端节点

多可用区数据库集群中的每个数据库实例均有自己的内置实例端点,其名称和其他属性由 Amazon RDS 管理。您无法创建、删除或修改此类终端节点。使用多可用区数据库集群时,与实例端点相比,您通常会更频繁地使用写入器和读取器终端节点。

在日常操作中,使用实例端点的主要方式是诊断影响多可用区数据库集群中某个特定数据库实例的容量或性能问题。在连接到特定数据库实例时,您可以检查其状态变量、指标等。这样做可以帮助您确定该数据库实例与集群中其他数据库实例的不同之处。

多可用区数据库端点如何使用高可用性

对于高可用性非常重要的多可用区数据库集群,请使用写入器端点进行读/写或通用型连接,并使用读取器终端节点进行只读连接。写入器和读取器终端节点比实例终端节点更好地管理数据库实例故障转移。与实例终端节点不同,如果集群中的数据库实例变得不可用,写入器和读取器终端节点会自动更改其连接到的数据库实例。

如果数据库集群的写入器数据库实例失败,Amazon RDS 将自动故障转移到新的写入器数据库实例。它通过将读取器数据库实例提升为新的写入器数据库实例来实现这一目标。如果发生了故障转移,您可以使用写入器端点重新连接到新提升的写入器数据库实例。或者,您可以使用读取器终端节点重新连接到数据库集群中的读取器数据库实例之一。在故障转移期间,在将读取器数据可实例提升为新的写入器数据库实例之后,读取器终端节点可能会在很短的时间内将连接定向到数据库集群的新写入器数据库实例。如果您设计自己的应用程序逻辑来管理实例端点连接,则可以手动或以编程方式搜索数据库集群中生成的可用数据库实例集。

使用 Amazon Web Services Management Console 管理多可用区数据库集群

您可以使用控制台管理多可用区数据库集群。

要使用控制台管理多可用区数据库集群

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases(数据库),然后选择要管理的多可用区数据库集群。

下图显示了控制台中的多可用区数据库集群。


				Amazon Web Services Management Console 中的多可用区数据库集群

Actions(操作)菜单中可用的操作取决于是选择了多可用区数据库集群还是集群中的数据库实例。

选择多可用区数据库集群以查看集群详细信息并在集群级别执行操作。


				Amazon Web Services Management Console 中的多可用区数据库集群操作

在多可用区数据库集群中选择数据库实例以查看数据库实例详细信息并在数据库实例级别执行操作。


				Amazon Web Services Management Console 中多可用区数据库集群中的数据库实例操作

修改多可用区数据库集群

多可用区数据库集群在三个独立可用区中有一个写入器数据库实例和两个读取器数据库实例。与多可用区部署相比,多可用区数据库集群可提供高可用性、增加读取工作负载容量以及更低的延迟。有关多可用区数据库集群的更多信息,请参阅 多可用区数据库集群部署(预览版)

您可以修改多可用区数据库集群以更改其设置。您还可以对多可用区数据库集群执行操作,例如获取其快照。但是,您无法修改多可用区数据库集群中的数据库实例,唯一受支持的操作是重启数据库实例。

注意

仅 MySQL 和 PostgreSQL 数据库引擎支持多可用区数据库集群。

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 修改多可用区数据库集群。

要修改多可用区数据库集群

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases(数据库),然后选择要修改的多可用区数据库集群。

  3. 选择修改。此时会显示修改数据库集群页面。

  4. 根据需要更改任意设置。有关每项设置的信息,请参阅 修改多可用区数据库集群的设置

  5. 当所有更改都达到您的要求时,选择继续并查看修改摘要。

  6. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致停机。有关更多信息,请参阅 使用“立即应用”设置

  7. 在确认页面上,检查您的更改。如果更改正确无误,请选择 Modify DB cluster(修改数据库集群)以保存更改。

    也可以选择 Back (返回) 编辑您的更改,或选择 Cancel (取消) 取消更改。

要使用 Amazon CLI 修改多可用区数据库集群,请调用 modify-db-cluster 命令。指定数据库集群标识符以及要修改的选项值。有关各选项的信息,请参阅修改多可用区数据库集群的设置

以下代码修改 my-multi-az-dbcluster,将备份保留期设置为 1 周 (7 天)。该代码使用 --deletion-protection 启用删除保护。要关闭删除保护,请使用 --no-deletion-protection。将在下一维护时段使用 --no-apply-immediately 应用这些更改。使用 --apply-immediately 可立即应用更改。有关更多信息,请参阅 使用“立即应用”设置

对于 Linux、macOS 或 Unix:

aws rds modify-db-cluster \ --db-instance-identifier my-multi-az-dbcluster \ --backup-retention-period 7 \ --deletion-protection \ --no-apply-immediately

对于 Windows:

aws rds modify-db-cluster ^ --db-instance-identifier my-multi-az-dbcluster ^ --backup-retention-period 7 ^ --deletion-protection ^ --no-apply-immediately

要使用 Amazon RDS API 修改多可用区数据库集群,请调用 ModifyDBCluster 操作。指定数据库集群标识符,以及您要修改的设置参数。有关每个参数的信息,请参阅修改多可用区数据库集群的设置

使用“立即应用”设置

修改多可用区数据库集群后,您可立即应用更改。要立即应用更改,请选中 Amazon Web Services Management Console中的立即应用选项。或者,您可以在调用 Amazon CLI 时使用 --apply-immediately 选项,或在使用 Amazon RDS API 时将 ApplyImmediately 参数设置为 true

如果您没有选择立即应用更改,更改将被放置在等待修改队列中。队列中的所有等待更改都将在下一维护时段应用。如果您选择立即应用更改,将应用您的新更改以及等待修改队列中的所有更改。

重要

如果任何待处理修改需要数据库集群暂时不可用(停机),则选择立即应用选项可能会导致意外停机。

当您选择立即应用更改时,任何待定修改也将立即应用,而不是在下一个维护时段内应用。

如果您不想将待定更改应用到下一个维护时段,您可以修改数据库实例来恢复更改。您可以通过使用 Amazon CLI 和指定 --apply-immediately 选项来执行此操作。

一些数据库设置的更改会立即应用,即使您选择延迟更改也是如此。要查看不同数据库的设置如何与“立即应用”设置进行交互,请参阅修改多可用区数据库集群的设置

修改多可用区数据库集群的设置

有关可用于修改多可用区数据库集群的设置的详细信息,请参见下表。有关 Amazon CLI 选项的更多信息,请参阅 modify-db-cluster。有关 RDS API 参数的更多信息,请参阅 ModifyDBCluster

控制台设置 设置说明 CLI 选项和 RDS API 参数 发生更改时 停机说明

分配的存储空间

为数据库集群中的每个数据库实例分配的存储量(以 GiB 为单位)。

有关更多信息,请参阅 Amazon RDS 数据库实例存储

CLI 选项:

--allocated-storage

API 参数:

AllocatedStorage

如果您选择立即应用更改,则更改立即生效。

如果您不选择立即应用更改,则更改会在下一个维护时段中生效。

在此更改期间,不会出现停机。

自动次要版本升级

请选择 Enable auto minor version upgrade(启用自动次要版本升级),以使数据库集群能够在首选次要数据库引擎版本升级可用时自动接收这些升级。Amazon RDS 在维护时段内执行自动次要版本升级。

CLI 选项:

--auto-minor-version-upgrade

--no-auto-minor-version-upgrade

API 参数:

AutoMinorVersionUpgrade

更改立即发生。此设置忽略“立即应用”设置。

在此更改期间,不会出现停机。

备份保留期

您希望数据库集群自动备份的保留天数。对于任何重要的数据库集群,请将该值设置为 1 或更大。

有关更多信息,请参阅 使用备份

CLI 选项:

--backup-retention-period

API 参数:

BackupRetentionPeriod

如果您选择立即应用更改,则更改立即生效。

如果不选择立即应用更改,并且您将该设置从一个非零值更改为另一个非零值,则会尽快异步应用更改。否则,更改在下一维护时段内生效。

如果从 0 改为非零值或从非零值改为 0,则会发生停机。

备份时段

Amazon RDS 自动备份数据库集群的时间段。除非您知道需要何时进行数据库备份,否则,请使用 No preference(无首选项)的原定设置。

有关更多信息,请参阅“使用备份”。

CLI 选项:

--preferred-backup-window

API 参数:

PreferredBackupWindow

更改会尽快异步应用。

在此更改期间,不会出现停机。

Database authentication

对于多可用区数据库集群,仅支持 Password authentication(密码身份验证)。

无,因为密码身份验证是原定设置。

如果您选择立即应用更改,则更改立即生效。

如果您不选择立即应用更改,则更改会在下一个维护时段中生效。

在此更改期间,不会出现停机。

DB cluster instance class(数据库集群实例类)

多可用区数据库集群中各数据库实例(例如 db.r6gd.xlarge)的计算和内存容量。

如有可能,请选择足够大的数据库实例类以便典型查询工作集能够保留在内存中。如果在内存中保留工作集,系统可以避免写入到磁盘,从而提高性能。有关更多信息,请参阅 多可用区数据库集群支持的数据库实例类

CLI 选项:

--db-cluster-instance-class

RDS API 参数:

DBClusterInstanceClass

如果您选择立即应用更改,则更改立即生效。

如果您不选择立即应用更改,则更改会在下一个维护时段中生效。

在此更改期间发生停机。

数据库集群参数组

要与数据库集群关联的数据库集群参数组。

有关更多信息,请参阅 使用多可用区数据库集群的参数组

CLI 选项:

--db-cluster-parameter-group-name

RDS API 参数:

DBClusterParameterGroupName

参数组更改会立即发生。

在此更改期间,不会出现中断。当您更改参数组时,对某些参数的更改将立即应用于多可用区数据库集群中的数据库实例,而无需重新启动。而对其他一些参数进行的更改,只有在重新启动数据库实例之后才会应用。

数据库引擎版本

要使用的数据库引擎的版本。

CLI 选项:

--engine-version

RDS API 参数:

EngineVersion

如果您选择立即应用更改,则更改立即生效。

如果您不选择立即应用更改,则更改会在下一个维护时段中生效。

在此更改期间发生服务中断。

删除保护

启用删除保护以禁止删除数据库集群。

有关更多信息,请参阅 删除数据库实例

CLI 选项:

--deletion-protection

--no-deletion-protection

RDS API 参数:

DeletionProtection

更改立即发生。此设置忽略“立即应用”设置。

在此更改期间,不会出现中断。

维护时段

30 分钟时段,在这段时间内,将会应用对数据库集群的待处理修改。如果该时段无关紧要,请选择 No preference(无首选项)。

有关更多信息,请参阅“Amazon RDS 维护时段”。

CLI 选项:

--preferred-maintenance-window

RDS API 参数:

PreferredMaintenanceWindow

更改立即发生。此设置忽略“立即应用”设置。

如果有一个或多个待处理的操作导致停机,并且维护时段经过更改,加入了当前时间,则立即应用这些待处理的操作并会出现停机。

新建主密码

您的主用户账户密码。

CLI 选项:

--master-user-password

RDS API 参数:

MasterUserPassword

更改会尽快异步应用。此设置忽略“立即应用”设置。

在此更改期间,不会出现停机。

预置 IOPS

最初为数据库集群分配的预置 IOPS(每秒输入/输出操作数)量。仅当将预置 IOPS (io1) 选为了存储类型时,该设置才可用。

有关更多信息,请参阅 预置 IOPS SSD 存储

CLI 选项:

--iops

RDS API 参数:

Iops

如果您选择立即应用更改,则更改立即生效。

如果您不选择立即应用更改,则更改会在下一个维护时段中生效。

在此更改期间,不会出现停机。

公有访问权限

请选择 Publicly accessible(可公开访问)以为数据库集群提供公有 IP 地址,这表示可以在 Virtual Private Cloud (VPC) 外部访问该实例。要可供公开访问,数据库集群还必须在 VPC 的公有子网中。

请选择 Not publicly accessible(不可公开访问)以设置只能从 VPC 内部访问数据库集群。

有关更多信息,请参阅 从 Internet 隐藏 VPC 中的数据库实例

要从其 VPC 外部连接到数据库集群,该数据库集群必须可公开访问。此外,必须使用数据库集群安全组的入站规则授予访问权限,并且必须满足其他要求。有关更多信息,请参阅 无法连接到 Amazon RDS 数据库实例

如果您的数据库集群不可公开访问,则您可以使用 Amazon Site-to-Site VPN 连接或 Amazon Direct Connect 连接从专用网络访问该实例。有关更多信息,请参阅 互联网络流量隐私

CLI 选项:

--publicly-accessible

--no-publicly-accessible

RDS API 参数:

PubliclyAccessible

更改立即发生。此设置忽略“立即应用”设置。

在此更改期间,不会出现中断。

存储类型

数据库集群的存储类型。

对于预览版,仅支持 预置 IOPS (io1) 存储。

有关更多信息,请参阅 Amazon RDS 存储类型

CLI 选项:

--storage-type

RDS API 参数:

StorageType

对于预览版,您将无法更改存储类型。

对于预览版,您将无法更改存储类型。

VPC security group (VPC 安全组)。

要与数据库集群关联的安全组。

有关更多信息,请参阅 VPC 安全组

CLI 选项:

--vpc-security-group-ids

RDS API 参数:

VpcSecurityGroupIds

更改会尽快异步应用。此设置忽略“立即应用”设置。

在此更改期间,不会出现中断。

修改多可用区数据库集群时不适用的设置

Amazon CLI 命令 modify-db-cluster 和 RDS API 操作 ModifyDBCluster 中的以下设置不适用于预览版中的多可用区数据库集群。

您也无法在控制台中为多可用区数据库集群修改这些设置。

Amazon CLI 设置 RDS API 设置

--allow-major-version-upgrade|--no-allow-major-version-upgrade

AllowMajorVersionUpgrade

--backtrack-window

BacktrackWindow

--cloudwatch-logs-export-configuration

CloudwatchLogsExportConfiguration

--copy-tags-to-snapshot | --no-copy-tags-to-snapshot

CopyTagsToSnapshot

--db-instance-parameter-group-name

DBInstanceParameterGroupName

--domain

Domain

--domain-iam-role-name

DomainIAMRoleName

--enable-global-write-forwarding | --no-enable-global-write-forwarding

EnableGlobalWriteForwarding

--enable-http-endpoint | --no-enable-http-endpoint

EnableHttpEndpoint

--enable-iam-database-authentication | --no-enable-iam-database-authentication

EnableIAMDatabaseAuthentication

--new-db-cluster-identifier

NewDBClusterIdentifier

--option-group-name

OptionGroupName

--port

Port

--scaling-configuration

ScalingConfiguration

重启多可用区数据库集群和读取器数据库实例

您可能需要重启多可用区数据库集群,通常是出于维护目的。例如,如果要进行某些修改,或要更改与数据库集群关联的数据库集群参数组,则您必须重启该数据库集群以使更改生效。

如果数据库集群未使用对其关联的数据库集群参数组所做的最新更改,则 Amazon Web Services Management Console 将显示状态为 pending-reboot 的数据库集群参数组。pending-reboot 参数组状态不会在下一个维护时段期间导致自动重启。要向该数据库集群应用最新的参数更改,请手动重启数据库集群。有关参数组的更多信息,请参阅 使用多可用区数据库集群的参数组

重启数据库集群会重新启动数据库引擎服务。重启数据库集群将导致短暂中断,在此期间,数据库集群状态将被设为 rebooting(正在重启)。

如果数据库集群未处于 Available(可用)状态,则无法重启。您的数据库可能会由于几个原因而不可用,例如,正在进行备份、以前请求的修改或维护时段操作。

重要

当您重启多可用区数据库集群的写入器实例时,它不会影响该数据库集群中的读取器数据库实例,也不会发生故障转移。在重启读取器数据库实例时,不会发生故障转移。要对多可用区数据库集群进行故障转移,请在控制台中选择 Failover(故障转移),调用 Amazon CLI 命令 failover-db-cluster,或调用 API 操作 FailoverDBCluster

重启数据库集群所需的时间取决于崩溃恢复过程、重启时的数据库活动以及特定数据库集群的行为。为优化重新启动的时间,建议在重启过程中尽可能减少数据库活动。减少数据库活动可减少中转事务的回滚活动。

多可用区数据库集群不支持通过故障转移重启。

要重启数据库集群

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,请选择 Databases(数据库),然后选择要重启的多可用区数据库集群。

  3. 对于操作,选择重启

    此时将显示 Reboot DB cluster(重启数据库集群)页面。

  4. 请选择 Reboot(重启)以重启您的数据库集群。

    或者选择 Cancel(取消)

要使用 Amazon CLI 重启多可用区数据库集群,请调用 reboot-db-cluster 命令。

aws rds reboot-db-cluster --db-cluster-identifier mymultiazdbcluster

要使用 Amazon RDS API 重启多可用区数据库集群,请调用 RebootDBCluster 操作。

使用多可用区数据库集群的参数组

在多可用区数据库集群中,数据库集群参数组就像是引擎配置值的容器,这些值可应用于多可用区数据库集群中的每个数据库实例。数据库集群参数组还包括所有实例级参数的原定设置值。

在多可用区数据库集群中,数据库参数组设置为数据库引擎和数据库引擎版本的原定设置数据库参数组。数据库集群参数组中的设置用于集群中的所有数据库实例。

有关参数组的信息,请参阅 使用数据库参数组

多可用区数据库集群的故障转移流程

如果由于基础设施缺陷而导致多可用区数据库集群中的写入器数据库实例发生计划内或计划外的中断时,Amazon RDS 会自动切换到另一个可用区中的读取器数据库实例。完成故障转移所用的时间取决于在写入器数据库实例变为不可用时的数据库活动和其他条件。故障转移时间通常为 20–40 秒。当两个读取器数据库实例都应用了来自失败写入器的未完成事务后,故障转移即完成。完成故障转移后,RDS 控制台还需要一段时间才能反映新的可用区。

自动故障转移

Amazon RDS 会自动处理故障转移,因此,您可以尽快恢复数据库操作而无需管理干预。要进行故障转移,写入器数据库实例将自动切换到读取器数据库实例。

手动对多可用区数据库集群执行故障转移

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 手动对多可用区数据库集群执行故障转移。

要手动对多可用区数据库集群执行故障转移

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 选择要进行故障转移的多可用区数据库集群。

  4. 对于 Actions(操作),请选择 Failover(故障转移)。

    此时将会显示 Failover DB Cluster(故障转移数据库集群)页面。

  5. 请选择 Failover(故障转移)以确认手动进行故障转移。

要手动对多可用区数据库集群执行故障转移,请使用 Amazon CLI 命令 failover-db-cluster

aws rds failover-db-cluster --db-cluster-identifier mymultiazdbcluster

要手动对多可用区数据库集群执行故障转移,请调用 Amazon RDS API FailoverDBCluster 然后指定 DBClusterIdentifier

确定多可用区数据库集群是否已完成故障转移

要确定多可用区数据库集群是否发生故障转移,您可以执行以下操作:

  • 将数据库事件订阅设置为在故障转移启动时向您发送电子邮件或 SMS 通知。有关 事件的更多信息,请参阅 使用 Amazon RDS 事件通知

  • 使用 Amazon RDS 控制台或 API 操作查看数据库事件。

  • 使用 Amazon RDS 控制台、Amazon CLI 以及 RDS API 查看多可用区数据库集群的当前状态。

有关如何响应故障转移、缩短恢复时间以及 Amazon RDS 的其他最佳实践的信息,请参阅 Amazon RDS 的最佳实践

设置 DNS 名称查找的 JVM TTL

故障转移机制自动更改数据库实例的域名系统 (DNS) 记录,使其指向读取器数据库实例。因此,您需要重新建立与数据库实例之间的所有现有连接。在 Java 虚拟机 (JVM) 环境中,由于 Java DNS 缓存机制的工作原理,您可能需要重新配置 JVM 设置。

JVM 缓存 DNS 名称查找。当 JVM 将主机名解析为 IP 地址时,它会在指定时间段内 (称为存活时间 (TTL)) 缓存 IP 地址。

由于 Amazon 资源使用偶尔变更的 DNS 名称条目,因此建议您为 JVM 配置的 TTL 值不超过 60 秒。这样做可确保在资源的 IP 地址发生更改时,您的应用程序可以通过重新查询 DNS 来接收和使用资源的新 IP 地址。

对于一些 Java 配置,将设置 JVM 默认 TTL,以便在重新启动 JVM 之前绝不刷新 DNS 条目。因此,如果 Amazon 资源的 IP 地址在应用程序仍在运行时发生更改,则在您手动重新启动 JVM 并刷新缓存的 IP 信息之前,将无法使用该资源。在此情况下,设置 JVM 的 TTL,以便定期刷新其缓存的 IP 信息是极为重要的。

注意

默认 TTL 是变化的,具体取决于 JVM 的版本以及是否安装安全管理器。许多 JVM 提供的默认 TTL 小于 60 秒。如果您使用此类 JVM 并且未使用安全管理器,则您可以忽略本主题的剩余内容。有关 Oracle 中安全管理器的更多信息,请参阅 Oracle 文档中的安全管理器

要修改 JVM 的 TTL,请设置 networkaddress.cache.ttl 属性值。根据您的需求,使用下列方法之一:

  • 要为使用 JVM 的所有应用程序全局设置属性值,请在 networkaddress.cache.ttl 文件中设置 $JAVA_HOME/jre/lib/security/java.security

    networkaddress.cache.ttl=60
  • 要仅在本地为应用程序设置属性,请在建立任何网络连接之前,在应用程序的初始化代码中设置 networkaddress.cache.ttl

    java.security.Security.setProperty("networkaddress.cache.ttl" , "60");

创建多可用区数据库集群的快照

创建多可用区数据库集群快照时,请确保标识要备份的多可用区数据库集群,然后为数据库集群快照命名,以便稍后从此快照还原。

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 创建多可用区数据库集群快照。

创建数据库集群快照

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 在列表中,请选择要为其创建快照的多可用区数据库集群。

  4. 对于操作,选择拍摄快照

    将显示 Take DB snapshot (拍摄数据库快照) 窗口。

  5. Snapshot name(快照名称)框中,请输入快照的名称。

  6. 选择 Take snapshot (拍摄快照)

Snapshots(快照)页面将会显示,其中新多可用区数据库集群快照的状态将显示为 Creating。在其状态为 Available 后,您可以看到其创建时间。

您可以使用 Amazon CLI create-db-cluster-snapshot 命令来创建多可用区数据库集群快照,该命令带有以下选项:

  • --db-cluster-identifier

  • --db-cluster-snapshot-identifier

在此示例中,您将为名为 mymultiazdbcluster 的数据库集群创建名为 mymultiazdbclustersnapshot 的多可用区数据库集群快照

对于 Linux、macOS 或 Unix:

aws rds create-db-cluster-snapshot \ --db-cluster-identifier mymultiazdbcluster \ --db-cluster-snapshot-identifier mymultiazdbclustersnapshot

对于 Windows:

aws rds create-db-cluster-snapshot ^ --db-cluster-identifier mymultiazdbcluster ^ --db-cluster snapshot-identifier mymultiazdbclustersnapshot

您可以使用 Amazon RDS API CreateDBClusterSnapshot 操作创建多可用区数据库集群快照,并采用以下参数:

  • DBClusterIdentifier

  • DBClusterSnapshotIdentifier

从快照还原到多可用区数据库集群

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 将快照还原为多可用区数据库集群。您可以将以下每种类型的快照还原到多可用区数据库集群:

  • 单可用区部署的快照

  • 具有单个数据库实例的多可用区数据库实例部署快照

  • 多可用区数据库集群的快照

提示

您可以通过还原快照将单可用区部署或多可用区数据库实例部署迁移到多可用区数据库集群部署。

要将快照还原到多可用区数据库集群

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择快照

  3. 选择要从其还原的快照。

  4. 对于操作,选择还原快照

  5. Restore snapshot(还原快照)页面的 Availability and durability(可用性与持久性)项下,请选择 Multi-AZ DB cluster - preview(多可用区数据库集群 - 预览)。

    
									多可用区数据库集群选择
  6. DB instance class(数据库实例类)中,请选择数据库实例类。

    有关更多信息,请参阅 多可用区数据库集群支持的数据库实例类

  7. 对于 DB cluster identifier(数据库集群标识符),请输入您还原的多可用区数据库集群的名称。

  8. 对于其余部分,请指定数据库集群设置。有关每项设置的信息,请参阅 创建多可用区数据库集群的设置

  9. 选择还原数据库实例

要从快照还原多可用区数据库集群,请使用 Amazon CLI 命令 restore-db-cluster-from-snapshot

在该示例中,您将从先前创建的名为 mysnapshot 的快照中进行还原。您将还原为名为 mynewmultiazdbcluster 的新多可用区数据库集群。您还可以指定多可用区数据库集群中数据库实例使用的数据库实例类。为数据库引擎指定 mysqlpostgres

对于 Linux、macOS 或 Unix:

aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mynewmultiazdbcluster \ --snapshot-identifier mysnapshot \ --engine mysql|postgres \ --db-cluster-instance-class db.r6gd.xlarge

对于 Windows:

aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier mynewmultiazdbcluster ^ --snapshot-identifier mysnapshot ^ --engine mysql|postgres ^ --db-cluster-instance-class db.r6gd.xlarge

在还原数据库集群后,请确保将多可用区数据库集群添加到数据库集群使用的安全组或用于创建快照的数据库实例中。这样做是为了提供与之前的数据库集群或数据库实例相同的功能。

要从快照还原多可用区数据库集群,请调用 RDS API 操作 RestoreDBClusterFromSnapshot,并采用以下参数:

  • DBClusterIdentifier

  • SnapshotIdentifier

  • Engine

您还可以选择指定以下参数。

在还原数据库集群后,请确保将多可用区数据库集群添加到数据库集群使用的安全组或用于创建快照的数据库实例中。这样做是为了提供与之前的数据库集群或数据库实例相同的功能。

将多可用区数据库集群还原到指定时间

当您将多可用区数据库集群还原到某个时间点时,您可以选择原定设置 VPC 安全组或将自定义 VPC 安全组应用到您的多可用区数据库集群中。

经过还原的多可用区数据库集群会自动与原定设置数据库集群参数组关联。但是,您可以通过在还原期间指定客户数据库集群参数组来加以应用。

RDS 会不断将多可用区数据库集群的事务日志上载到 Amazon S3。要查看多可用区数据库集群的最近可还原时间,请使用 Amazon CLI describe-db-clusters 命令。查看在数据库集群的 LatestRestorableTime 字段中返回的值。

您可以还原至备份保留期内的任何时间点。要查看多可用区数据库集群的最早可还原时间,请使用 Amazon CLI describe-db-clusters 命令。查看在数据库集群的 EarliestRestorableTime 字段中返回的值。

注意

我们建议您恢复到与源数据库集群相同或相似的多可用区数据库集群大小,如果您使用了 预置 IOPS 存储,则还应还原到类似的 IOPS。例如,如果您选择具有不兼容 IOPS 值的数据库集群大小,则可能会出现错误。

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 将多可用区数据库集群还原到某个时间点。

要将多可用区数据库集群还原到指定的时间点

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 选择要还原的多可用区数据库集群。

  4. 对于 Actions (操作),选择 Restore to point in time (还原到时间点)

    此时会显示还原到时间点窗口。

  5. 选择最近可还原时间以还原到可能的最近时间,或选择自定义来选择时间。

    如果您选择 Custom(自定义),请输入要将多可用区数据库集群还原到的日期和时间。

    注意

    时间以您的本地时区显示,表示为协调世界时 (UTC) 的偏移量。例如,UTC-5 是东部标准时间/中部夏令时。

  6. 对于 DB cluster identifier(数据库集群标识符),请输入您还原的多可用区数据库集群的名称。

  7. Availability and durability(可用性与持久性)中,请选择 Multi-AZ DB cluster - preview(多可用区数据库集群 - 预览)。

    
									多可用区数据库集群选择
  8. DB instance class(数据库实例类)中,请选择数据库实例类。

    有关更多信息,请参阅 多可用区数据库集群支持的数据库实例类

  9. 对于其余部分,请指定数据库集群设置。有关每项设置的信息,请参阅 创建多可用区数据库集群的设置

  10. 选择还原到时间点

要将多可用区数据库集群还原到指定时间,请使用 Amazon CLI 命令 restore-db-cluster-to-point-in-time 以创建新的多可用区数据库集群。

对于 Linux、macOS 或 Unix:

aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier mysourcemultiazdbcluster \ --db-cluster-identifier mytargetmultiazdbcluster \ --restore-to-time 2021-08-14T23:45:00.000Z \ --db-cluster-instance-class db.r6gd.xlarge

对于 Windows:

aws rds restore-db-cluster-to-point-in-time ^ --source-db-cluster-identifier mysourcemultiazdbcluster ^ --db-cluster-identifier mytargetmultiazdbcluster ^ --restore-to-time 2021-08-14T23:45:00.000Z ^ --db-cluster-instance-class db.r6gd.xlarge

要将数据库集群还原到指定时间,请调用 Amazon RDS API RestoreDBClusterToPointInTime 操作,并使用以下参数:

  • SourceDBClusterIdentifier

  • DBClusterIdentifier

  • RestoreToTime

删除多可用区数据库集群

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 删除数据库多可用区数据库集群。

删除多可用区数据库集群所需的时间可能会有所不同,具体取决于备份保留期(也即,要删除的备份数)、要删除的数据量以及是否获取了最终快照。

当启用了删除保护时,您将无法删除多可用区数据库集群。有关更多信息,请参阅 删除保护。您可以通过修改多可用区数据库集群来关闭删除保护。有关更多信息,请参阅 修改多可用区数据库集群

要删除多可用区数据库集群

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,请选择 Databases(数据库),然后选择要删除的多可用区数据库集群。

  3. 对于 Actions (操作),选择 Delete (删除)

  4. 请选择 Create final snapshot(是否创建最终快照?)来为多可用区数据库集群创建最终数据库快照。

    如果创建最终快照,请为 Final snapshot name(最终快照名称)输入名称。

  5. 请选择 Retain automated backups(保留自动备份)以保留自动备份。

  6. 在框中输入 delete me

  7. 选择 Delete

要使用 Amazon CLI 删除多可用区数据库集群,请调用 delete-db-cluster 命令,并采用以下选项:

  • --db-cluster-identifier

  • --final-db-snapshot-identifier—或者—--skip-final-snapshot

例 拥有最终快照

对于 Linux、macOS 或 Unix:

aws rds delete-db-cluster \ --db-cluster-identifier mymultiazdbcluster \ --final-db-snapshot-identifier mymultiazdbclusterfinalsnapshot

对于 Windows:

aws rds delete-db-instance ^ --db-cluster-identifier mymultiazdbcluster ^ --final-db-snapshot-identifier mymultiazdbclusterfinalsnapshot

例 没有最终快照

对于 Linux、macOS 或 Unix:

aws rds delete-db-instance \ --db-cluster-identifier mymultiazdbcluster \ --skip-final-snapshot

对于 Windows:

aws rds delete-db-instance ^ --db-cluster-identifier mymultiazdbcluster ^ --skip-final-snapshot

要使用 Amazon RDS API 删除多可用区数据库集群,请调用 DeleteDBCluster 操作,并采用以下参数:

  • DBClusterIdentifier

  • FinalDBSnapshotIdentifier—或者—SkipFinalSnapshot

多可用区数据库集群指标

多可用区数据库集群包括以下 Amazon CloudWatch 指标。

指标 控制台名称 描述 单位
FreeLocalStorage

Free Local Storage (MB)(可用本地存储 (MB))

可用本地存储空间的大小。

字节

ReadIOPSLocalStorage

Read IOPS Local Storage (Count/Second)(读取 IOPS 本地存储(计数/秒))

每秒至本地存储的平均磁盘读取输入/输出操作数。

计数/秒

ReadLatencyLocalStorage

Read Latency Local Storage (Milliseconds)(读取延迟本地存储(毫秒))

每个磁盘对本地存储输入/输出操作所需的平均时间。

ReadThroughputLocalStorage

Read Throughput Local Storage (MB/Second)(读取吞吐量本地存储(MB/秒))

每秒从磁盘至本地存储读取的平均字节数。

Bytes/Second

ReplicaLag

副本滞后(毫秒)

多可用区数据库集群中写入器数据库实例上的最新事务与读取器数据库实例上的最新应用事务之间的时间差异。

毫秒

WriteIOPSLocalStorage

Write IOPS Local Storage (Count/Second)(写入 IOPS 本地存储(计数/秒))

多可用区数据库集群中的本地存储上每秒进行的磁盘写入输入/输出操作平均数。

计数/秒

WriteLatencyLocalStorage

Write Latency Local Storage (Milliseconds)(写入延迟本地存储(毫秒))

多可用区数据库集群中的本地存储上每个磁盘输入/输出操作所需的平均时间。

毫秒

WriteThroughputLocalStorage

Write Throughput Local Storage (MB/Second)(写入吞吐量本地存储(MB/秒))

本地存储每秒写入磁盘的平均字节数。

Bytes/Second

有关 Amazon CloudWatch 指标的更多信息,请参阅 使用 Amazon CloudWatch 监控 Amazon RDS 指标

多可用区数据库集群的限制

多可用区数据库集群预览版适用以下限制:

  • 您只能使用 MySQL 版本 8.0.26 和 PostgreSQL 版本 13.4 创建多可用区数据库集群。

  • 您只能在以下 Amazon 区域中创建多可用区数据库集群:

    • 美国东部(弗吉尼亚北部)

    • 美国西部(俄勒冈)

    • 欧洲(爱尔兰)

  • 多可用区数据库集群仅支持预置 IOPS 存储。

  • 您无法将单可用区数据库实例部署或多可用区数据库实例部署更改为多可用区数据库集群。作为替代方法,您可以将单可用区数据库实例部署或多可用区数据库实例部署的快照还原为多可用区数据库集群。

  • 您无法将多可用区数据库集群快照还原为多可用区数据库实例部署或单可用区部署。

  • 多可用区数据库集群不支持在数据库实例级别进行修改,因为所有修改都是在数据库集群级别完成的。

  • 多可用区数据库集群不支持以下功能:

    • Amazon RDS 代理

    • Amazon Backup

    • 将多可用区数据库集群快照数据导出到 Amazon S3 存储桶

    • IAM 数据库身份验证

    • Kerberos 身份验证

    • 修改端口

      作为替代方法,您可以将多可用区数据库集群还原到某个时间点并指定其他端口。

    • 选项组

    • 将日志发布到 CloudWatch Logs

    • 只读副本

    • 预留数据库实例

    • 从 Amazon S3 存储桶还原多可用区数据库集群快照

    • 通过设置最大分配的存储空间来执行存储弹性伸缩

      作为替代方法,您可以手动扩展存储。

    • 停止并启动数据库集群。

    • 标签

  • RDS for MySQL 多可用区数据库集群不支持复制到外部目标数据库。

  • RDS for MySQL 多可用区数据库集群不支持 Amazon RDS SQL 上的 MySQL 参考 中所述的存储过程。

  • RDS for PostgreSQL 多可用区数据库集群不支持以下 PostgreSQL 扩展:aws_s3pg_transportpglogical

  • RDS for PostgreSQL 多可用区数据库集群不支持使用自定义 DNS 服务器进行出站网络访问。

  • RDS for PostgreSQL 多可用区数据库集群的 RDS 不支持逻辑复制。