创建只读实例

最近更新时间:2024-10-18 14:14:22

我的收藏

操作场景

云数据库 MySQL 支持用户创建一个或多个只读实例,以支持用户的读写分离和一主多从应用场景,可显著提高用户数据库的读负载能力。
目前已支持数据库代理,创建只读实例后,可以购买数据库代理并开启读写分离功能,在应用程序中配置数据库代理地址,就可以使写请求自动转发到主实例,读请求自动转发到各个只读实例。
说明:
只读实例费用请参见 产品定价
只读实例支持在实例详情页开启独立内网地址,并且支持内网 IP 和端口自定义修改。

集群版实例部署架构为一个读写节点和最多5个只读节点,若您购买的是集群版实例,增删只读节点的操作请参见 增加实例节点删除实例节点。集群版也支持新增独立只读实例,数量为1 - 15个,您可参考本文方法进行创建,需注意独立只读实例不支持切换为读写节点。

基本概念

RO 组:带有负载均衡功能的只读实例组。若 RO 组内有多个只读实例,可将用户读请求量均匀分配到组内的每个只读实例上。且 RO 组会对外提供 IP、PORT 供访问数据库。
只读实例:可以支持读请求的单节点(无从机)实例。只读实例无法单独存在,每个只读实例都属于某个 RO 组。

基础架构

只读实例采用 MySQL binlog 主从同步功能,将主实例(源数据库)的更改同步到所有只读实例中。只读实例均采用单节点(不含备机)架构,若只读实例宕机,我们将不断的尝试恢复,若需要更高的可用性,您可以选择 RO 组。
注意:
RO 组中只有一个只读实例的情况会存在单点风险,且此 RO 组不会计入云数据库 MySQL 服务的整体可用性计算中,单个只读实例不提供可用性 SLA 保证,建议 RO 组中至少选购2个只读实例,来保证 RO 组的可用性。


功能限制

同一个 RO 组内的实例类型需保持一致,不能既有通用型实例,又有独享型实例。
单节点云盘版实例不支持创建只读实例。
仅支持1GB内存、50GB硬盘及以上规格,且 MySQL 5.6 及以上版本、InnoDB 引擎的双节点、三节点、集群版主实例购买只读实例,若主实例低于此规格,请先升级主实例规格。
只读实例最低规格要求为1GB内存、50GB硬盘,且必须大于或等于主实例已购存储规格。
一个双节点、三节点主实例最多可以创建5个只读实例,一个集群版实例最多可以创建15个只读实例。
不支持备份以及回档功能。
不支持数据迁移至只读实例。
不支持创建/删除数据库,不支持 phpMyAdmin(PMA)。
不支持创建/删除账号,不支持为账号授权以及修改账号及密码。

注意事项

只读实例无需维护账号与数据库,均从主实例同步。
若 MySQL 版本为 5.6 但未开启 GTID,可通过控制台开启 GTID,再添加只读实例。 开启 GTID 过程耗时较长,且实例将会有几秒钟的闪断,建议在业务低谷期操作,并在访问数据库的程序中添加重连机制。
只读实例仅支持 InnoDB 引擎。
由于数据同步有延迟,多个只读实例之间可能存在少量数据不一致的情况。各只读实例与主实例之间的同步时延可在控制台查看。
只读实例的实例规格可以与主实例不一致,方便用户根据负载情况升级。建议同一 RO 组内的只读实例的实例规格保持一致。

操作步骤

1. 登录 MySQL 控制台,在实例列表,单击实例 ID 或操作列的管理,进入实例详情页。
2. 在实例详情页,单击实例架构图中的添加只读实例(集群版为新增独立只读实例),或在只读实例页,单击新建,进入购买页。
3. 在购买页,选择只读实例的相应配置,确认无误后,单击立即购买
说明:
如需统一只读实例与主实例的到期时间,可在 续费管理控制台 设置统一到期日,具体操作步骤请参见 统一到期日
集群版实例新增的独立只读实例,无指定 RO 组相关的操作。

参数
说明
指定 RO 组
支持系统自动分配、新建 RO 组、已有 RO 组。
系统自动分配:若一次购买多个实例,将为每个实例分配一个独立的 RO 组,权重分配方式默认为系统自动分配。
新建 RO 组:新建一个 RO 组,若一次购买多个实例,将都分配至这个 RO 组,权重分配方式默认为系统自动分配。
已有 RO 组:指定一个已有 RO 组,若一次购买多个实例,将都分配至这个 RO 组。权重分配方式与 RO 组设置相同:如果 RO 组设置为系统自动分配,则根据购买规格自动添加 RO 组;如果为自定义分配,则默认权重为零。由于同一 RO 组内网地址相同,因此若是 VPC 网络将共享同一个安全组设置。若选择已有 RO 组,则在购买时无法再自定义安全组。
设置 RO 组名称
选择新建 RO 组时需设置新 RO 组的名称,支持长度小于60的中文/英文/数字/"-"/"_"/"."
延迟超限剔除
选择是否启用剔除策略。若启用,则需设置延迟阈值和最小保留实例数,被剔除的实例权重自动设置为0。
若只读实例延迟超过阈值被剔除,会向用户发出告警(配置只读实例剔除告警和接收对象请参见 告警功能),且实例状态为停服同步中、权重为0,当只读实例延迟时间小于阈值时会重新加入到 RO 组。同时,不管实例是否启用延时超限剔除功能,当只读实例故障被剔除后,待实例修复也会重新加入到 RO 组。
计费模式
支持包年包月和按量计费。
可用区
新建 RO 组时,支持选择与主实例同可用区或跨可用区。不同可用区之间没有实质性区别,选择创建跨可用区 RO 组将提升数据容灾能力,但存在几毫秒的网络延迟。
4. 购买完成后,返回实例列表,待实例状态变为运行中,即可正常使用。

热点问题

只读实例剔除规则是什么?

启用延迟超限剔除后,RO 组会根据延迟阈值和最少保留实例数来判断剔除实例,被剔除的实例权重自动设置为0。若只读实例延迟超过阈值被剔除会向用户发出告警,且实例状态为停服同步中、权重为0,当只读实例延迟时间小于阈值时会重新加入到 RO 组。
延迟阈值:为只读实例设置延迟超限阈值,超过阈值的只读实例会被剔除 RO 组。
最少保留实例数:组内需要保证的实例下限数,若现有只读实例数小于等于此下限且延迟时间超过阈值,现有只读实例均不被剔除。

若只读实例销毁/退货,对主实例有什么影响?

只读实例销毁/退货,对主实例没有影响。

创建只读实例时,为什么无法选择某个可用区?

无法选择某个可用区,表示该可用区暂无资源,您可以根据实际购买页面选择其他可用区,不影响您使用只读实例。

创建只读实例时,是否可以选择和主实例分布在不同的可用区?

可以。创建只读实例,选择新建 RO 组时,支持选择和主实例不同的可用区,但如果创建只读实例时选择已有 RO 组,则该只读实例的可用区只能与所选的已有 RO 组所在可用区保持一致,不一定和主实例分布在同一可用区。