更新时间:2026-05-14 GMT+08:00
分享

只读实例简介

什么是只读实例?

在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法抵抗读取压力,甚至对主业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以在某个区域中创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求,以此增加应用的吞吐量。

只读实例与主实例之间采用异步复制方案,存在一定的复制延时,只读实例上的数据最终将与主实例上的数据一致。对于能够适应这种延时的场景,可以使用只读实例。

只读实例架构

只读实例为单个物理节点架构或高可用架构:

  • 单机版只读实例:推荐开启数据库代理功能,并购买单机版只读实例。当单个只读故障后,数据库代理可以将流量分担到其他可用只读实例或主实例。购买单机只读实例时,注意表库名的大小写敏感要与主实例保持一致。
  • 高可用只读实例:当只读实例所在物理机故障后,备用只读实例自动顶替。购买高可用只读实例时,注意表库名的大小写敏感要与主实例保持一致。

推荐用法:

  • 主实例下包含2个及以下只读实例时,高可用只读作用比较好。
  • 主实例下包含2个以上只读实例时,建议开启数据库代理,获得更好的性价比。

当只读实例与主数据库之间复制异常后,单机版和高可用版只读都需要较长时间重建和恢复(取决于数据量)。

图1 单机版只读实例
图2 高可用只读实例

典型应用

  • 创建只读实例后,您可以开通数据库代理,并在设置路由模式时选择该只读实例。数据库代理开通成功后,通过代理地址,写请求自动访问主实例,读请求按照数据库代理的路由模式分发到各个实例,进行读写分离,降低主实例的负载。
  • 只读实例发生故障时,重建需要花费较长时间,如果您的业务依赖只读实例,可以开通数据库代理,解决读业务中断问题。
  • 如果未开通读写分离,您需要在应用程序中分别配置主实例和每个只读实例的连接地址,才能实现将写请求发往主实例而将读请求发往只读实例。

计费说明

只读实例需要额外收费。支持按需计费,购买方式灵活,按实际使用时长计费;也支持包年/包月计费,相对于按需计费提供更大的折扣,对于长期使用者,推荐该方式。

计费详情请参见云数据库RDS产品价格详情中的只读实例部分。

功能特点

  • 降低工作负荷:只读实例帮助主实例分担读取密集型工作负荷,降低主实例的工作负荷。
  • 区域和可用区:只读实例与主实例在同一区域,但可以部署在不同的可用区。
  • 存储类型:只读实例的存储类型与主实例一致。
  • 存储空间:只读实例的存储空间大小与主实例一致。
  • 性能规格:只读实例规格可以与主实例不一致,并且可以随时更改。建议只读实例规格大于等于主实例规格,否则易导致只读实例异常、延迟高、负载高等现象。
  • 网络配置:只读实例的VPC、安全组与主实例一致。
  • 管理员账号和密码:只读实例的管理员账号为root,密码与主实例一致。修改主实例的密码时,只读实例的密码会被同步修改。
  • 监控与告警:提供系统性能监控。
  • 异常事件诊断:对内存超限风险、长事务、慢SQL高频、容量空间不足等异常事件进行诊断,并提供诊断异常的处理建议,详见实例概览简介
  • 只读升主:只读实例可以升级为主实例,断开与主实例的数据复制关系,成为独立的单机实例。
  • 只读架构转换:单机版只读可以转换为高可用只读,但高可用只读不能变为单机版只读。

功能限制

  • 1个主实例最多可以创建10个只读实例。
  • 不支持单独购买只读实例,需要购买主实例后才能购买只读实例。
  • 不支持单独停止只读实例。停止主实例时,如果存在只读实例,会同时停止只读实例。
  • 主实例、备实例及只读实例的数据都是一致的,暂不支持过滤库或者表不同步。
  • 备份设置:不支持自动备份设置以及手动备份。只读实例没有备份文件,不会提供Binlog。
  • 实例恢复:不支持通过备份文件或任意时间点创建只读实例,不支持通过备份集覆盖只读实例。
  • 数据迁移:不支持将数据迁移至只读实例。
  • 数据库管理:不支持创建和删除数据库。
  • 账号管理:只读实例不提供创建账号权限。请在主实例上创建,请参见创建数据库账号
  • 回收站:不支持加入回收站管理。

相关文档