MySQL只读实例
在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求,增加应用的吞吐量。
其他引擎只读实例请参见:
简介
创建只读实例时会从备实例复制数据,数据与主实例一致,主实例的数据更新也会在主实例完成操作后立即自动同步到所有只读实例,您也可以在只读实例上设置只读实例延时复制。
其他只读实例同步延迟问题请参见RDS MySQL只读实例同步延迟原因与处理。
前提条件
RDS MySQL主实例需满足以下条件:
数据库版本:8.0、5.7或5.6
计费类型:包年包月或按量付费,Serverless实例不支持创建只读实例。
实例系列:高可用系列
您可以前往实例基本信息页面查看以上信息。
支持创建高可用系列或基础系列的只读实例;其中高可用系列的只读实例为高可用架构(由主节点和备节点组成)。更多详情,请参见高可用系列。
只读实例、备实例和灾备实例三者之间的区别
只读实例和主备实例在同一地域,可以在不同可用区;备实例和主实例在同一个地域;灾备实例和主备实例在不同地域。
只读实例可以根据需要创建最多10个;备实例数量是固定的1~2个,高可用系列1个;灾备实例是不同地域的一主一备。
只读实例创建并设置读权重后就会持续提供服务;备实例和灾备实例在主实例正常运行时都不会提供服务。
只读实例、主备实例和灾备实例拓扑图如下。
应用场景
单个实例负载过大时,可以创建只读实例,将读请求转发至只读实例,用于分担主实例负载。
主实例因备份或维护等原因暂不可用时,可将读请求转发至只读实例,保证部分业务正常运行。
在报表分析等场景下,使用只读实例查询、分析大量数据,不影响主实例业务。
在读写分离场景下,使用只读实例可以避免读写锁争抢问题,提升系统的性能和吞吐量。
计费
计费方式为包年包月或按量付费。具体费用,请参见只读实例规格列表。
注意事项
创建包年包月只读实例时,若主实例也为包年包月,则可以选择只读实例与主实例生命周期对齐。
主实例到期锁定期间,若只读实例未到期,则依然可以正常访问只读实例,只读实例状态会更改为运行中(主实例锁定)。
主实例被释放后,包年包月只读实例自动退款并释放,按量付费只读实例直接释放。
已开通共享代理的RDS MySQL实例,需要释放掉所有的只读实例,在最后一个只读实例被释放时,会自动下发删除代理读写连接地址的操作。如果此时有客户端使用该连接地址,会造成业务访问失败等影响。
功能特点
计费方式:按量付费,使用更灵活。长期使用也可以包年包月,费用更便宜。
地域和可用区:与主实例在同一地域,可以在不同的可用区。
规格:可以与主实例不一致,并且可以随时更改。建议只读实例规格不小于主实例规格,否则易导致只读实例延迟高、负载高等现象。
存储类型:只读实例的存储类型需要和主实例保持一致。
存储空间:只读实例的存储空间不能低于主实例。
网络类型:可以与主实例不一致。
账号与数据库管理:不需要维护账号与数据库,全部通过主实例同步。
白名单:只读实例创建时会自动复制其主实例的白名单信息,但只读实例和主实例的白名单是相互独立的。若您需要修改只读实例的白名单,请参见设置IP白名单。
监控与报警:提供近20个系统性能指标的监控视图,如磁盘容量、IOPS、连接数、CPU使用率、网络流量等。
性能优化(仅MySQL支持):提供多种优化建议,如存储引擎检查、主键检查、大表检查、索引偏多、缺失索引等,用户可以根据优化建议并结合自身的应用特点来对数据库进行优化。
主备切换:高可用系列的只读实例支持主备库切换和查看主备切换日志功能。
功能限制
可创建的只读实例数量:10个。
实例备份:因主实例已有备份,只读实例仅支持设置本地日志保留策略,暂不支持设置自动备份策略以及手动发起备份。
实例恢复:
恢复全量数据(实例级恢复能力限制):只读实例不支持通过备份集或任意时间点恢复数据到新实例中。
库表恢复(库表级恢复能力限制):只读实例不支持通过备份集或任意时间点恢复数据到原实例或新实例中。
数据迁移:不支持将数据迁移至只读实例。
数据库管理:不支持创建和删除数据库。
账号管理:不支持创建和删除账号,不支持为账号授权以及修改账号密码功能。
创建只读实例
常见问题
主实例上创建的账号在只读实例上可以用吗?
主实例创建的账号会同步到只读实例,只读实例无法管理账号。账号在只读实例上只能进行读操作,不能进行写操作。
只读实例能否暂停扣费?将读权重调为0可以不扣费吗?
只读实例无法暂停扣费。如果不需要使用只读实例,请及时释放实例,详情请参见释放实例。
没有开通数据库代理服务,可以配置只读实例的业务分配权重吗?
没有开通数据库代理服务,无法配置只读实例的业务分配权重,您可以在不同的应用程序中配置不同的连接地址(只读实例或主实例连接地址),实现读写分离和负载均衡。
在什么情况下,需要购买高可用系列的只读实例?
在有大量读需求时,建议购买高可用系列的只读实例,保证读业务的稳定性。
如果主实例已经有备实例,还需要买高可用系列的只读实例吗?
备实例用来保证业务的可用性的,只读实例用来做读写分离,处理读需求。如果您有大量读需求,建议购买高可用系列的只读实例。