Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
如何为 Amazon Aurora MySQL 数据库实例创建只读副本?
我有一个 Amazon Aurora MySQL 集群。我想为 Aurora 数据库集群创建区域内或跨区域只读副本或者添加区域。我该如何操作?
简短描述
Aurora 副本增加了 Aurora MySQL 数据库集群内的计算容量。这些副本有助于在区域内分配读取工作负载(读取扩展),还可以作为失效转移目标。这意味着,如果您的主数据库实例发生故障,Aurora 副本会升级为主实例。
跨区域只读副本使用 MySQL 二进制日志记录将您的数据复制到另一个区域中的集群。您可以将读取操作扩展到离用户更近的次要区域。这有助于提高灾难恢复能力。它还可以让您更轻松地从一个 AWS 区域迁移到另一个 AWS 区域。
Amazon Aurora 全球数据库可以跨越多个 AWS 区域。这些数据库允许低延迟的全球读取,并支持从可能影响整个 AWS 区域的罕见中断中恢复过来。Aurora 使用自己的复制协议和专用基础设施将数据复制到次要 AWS 区域,从而达到通常小于一秒的延迟。
使用以下步骤创建区域内或跨区域只读副本,或向 Aurora MySQL 数据库集群添加新区域。
除了 Aurora 管理的二进制日志记录外,您还可以设置和管理自己的二进制日志记录复制环境。在这种环境中,Aurora 可以是来源也可以是目标。
**注意:**这些步骤不适用于 Aurora Serverless 或 Aurora 多主集群。
解决方法
**注意:**如果您在运行 AWS Command Line Interface(AWS CLI)命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
为 Aurora MySQL 集群创建区域内只读副本
使用 Amazon RDS 控制台
1. 打开 Amazon RDS 控制台**,**然后从导航窗格中选择 Databases(数据库)。
2. 选择要向其添加新数据库实例的数据库集群。
3. 在 Actions(操作)部分中,选择 Add reader(添加阅读器)。
4. 在 Add reader(添加阅读器)页面上,自定义 Aurora 副本的选项。
5. 选择 Add reader(添加阅读器)以创建副本。
使用 AWS CLI
要使用 AWS CLI 在数据库集群中创建 Aurora 副本,请运行 create-db-instance 命令。使用 --db-cluster-identifier 选项包括数据库集群的名称。您还可以使用可用区参数为 Aurora 副本指定可用区(AZ)。
此示例命令为 Aurora MySQL 创建只读副本(相同区域且兼容 Aurora MySQL 5.7 和 Aurora MySQL 8.0 )。
Linux、macOS 或 Unix:
aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a \ --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r6g.large \ --availability-zone us-west-2a
Windows:
aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a ^ --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r6g.large ^ --availability-zone us-west-2a
注意:如果要为兼容 Aurora MySQL 5.6 的集群创建只读副本,请在此命令中将 --engine parameter 修改为**--engine aurora**。
为 Aurora MySQL 集群创建跨区域只读副本
在创建跨区域只读副本之前,您必须为源 Aurora MySQL 数据库集群开启二进制日志记录。跨区域复制使用 MySQL 二进制复制在跨区域只读副本集群上重放更改。然后,使用 Amazon RDS 控制台或 AWS CLI 创建跨区域集群。
注意:您无法为未加密的 Aurora 数据库集群创建加密的 Aurora 副本。您无法为加密的 Aurora 数据库集群创建未加密的 Aurora 副本。
为您的数据库集群开启二进制日志记录
1. 更新源数据库集群的 binlog_format 参数。这是默认集群参数组中的集群级别参数。
2. 如果数据库集群使用默认数据库集群参数组,请创建一个新的数据库集群参数组,以修改 binlog_format 设置。最佳做法是将 binlog_format 设置为 MIXED。如果需要特定的二进制日志格式,也可以将 binlog_format 设置为 ROW 或 STATEMENT。
3. 重新启动 Aurora 数据库集群以使更改生效。
使用 Amazon RDS 控制台创建跨区域集群
1. 打开 Amazon RDS 控制台 **,**然后选择托管源数据库集群的 AWS 区域。
2. 从导航窗格中,选择 Instances(实例)。
3. 选择要为其创建跨区域只读副本的数据库实例的复选框。
4. 对于 Actions(操作),选择 Create cross region read replica(创建跨区域只读副本)。
5. 在 Create cross region read replica(创建跨区域只读副本 )页面上,选择跨区域只读副本数据库集群的选项设置。
使用 AWS CLI 创建跨区域集群
要使用 AWS CLI 创建跨区域集群,请首先使用 create-db-cluster 调用在目标区域中创建集群本身。然后,使用 create-db-instance 调用来创建读取器实例。
此示例使用 Linux、macOS 或 Unix 创建跨区域副本,并且兼容 Aurora MySQL 5.7 和 Aurora MySQL 8.0。
1. 通过运行与以下内容类似的命令来创建集群:
aws rds create-db-cluster \ --db-cluster-identifier sample-replica-cluster \ --engine aurora-mysql \ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-source-cluster
2. 验证集群是否可用:
aws rds describe-db-clusters --db-cluster-identifier sample-replica-cluster
3. 在集群中创建实例:
aws rds create-db-instance \ --db-cluster-identifier sample-replica-cluster \ --db-instance-class db.r6g.large \ --db-instance-identifier sample-replica-instance \ --engine aurora-mysql
要在 Windows 上使用 CLI 创建相同的内容,请使用相同步骤,但使用 ^ 符号而不是 ** 作为行分隔符。
向 Aurora 预置集群添加 AWS 区域以创建 Aurora 全球数据库
使用 Amazon RDS 控制台
1.打开 Amazon RDS console(Amazon RDS 控制台)。
2.在导航窗格中,选择 Databases(数据库)。
- 选择需要次要 Aurora 数据库集群的 Aurora 全球数据库。确保主 Aurora 数据库集群处于 Available(可用)状态。
4.在 Actions(操作)中,选择 Add region(添加区域)。
5.选择要添加的 AWS 区域。
**注意:**您不能为同一 Aurora 全球数据库选择已经有次要 Aurora 数据库集群的 AWS 区域。此外,您不能选择与主 Aurora 数据库集群的区域相同的 AWS 区域。
6.填写新 AWS 区域中次要 Aurora 集群的其余字段。然后,选择 Add rule(添加规则)。
使用 AWS CLI
在 AWS CLI 上运行以下脚本。
注意:如果您使用的是 Windows,请将 \ 行分隔符替换为 ^ 符号。
aws rds --region us-east-2 \ create-db-cluster \ --db-cluster-identifier secondary_cluster_id \ --global-cluster-identifier global_database_id \ --engine aurora-mysql \ --engine-version version aws rds --region us-east-2 \ create-db-instance \ --db-instance-class db.r6g.large \ --db-cluster-identifier secondary_cluster_id \ --db-instance-identifier db_instance_id \ --engine aurora-mysql
相关信息

相关内容
- AWS 官方已更新 4 个月前
- AWS 官方已更新 3 个月前
- AWS 官方已更新 2 年前