PostgreSQL只读实例简介

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

简介

创建只读实例时会从备实例复制数据,数据与主实例一致,主实例的数据更新也会在主实例完成操作后立即自动同步到所有只读实例。

说明
  • 本地盘主实例最多创建5个只读实例,云盘主实例最多创建32个只读实例。

  • 本地盘实例的只读实例为高可用架构。

  • 云盘实例的只读实例为单节点架构,没有备节点,因此无法保障可用性,建议您购买多个只读实例,使用libpq或JDBC实现自动故障转移,详情请参见自动故障转移和读写分离。您也可以通过数据库代理实现读写自动分离,更多信息,请参见什么是数据库代理

只读实例拓扑图如下图所示。

image

应用场景

  • 单个实例负载过大时,可以创建只读实例,将读请求转发至只读实例,用于缓解主实例负载。

  • 主实例因备份或维护等原因暂不可用时,可将读请求转发至只读实例,保证部分业务。

  • 报表分析等场景,使用只读实例查询分析大量数据,不影响主实例。

  • 读写分离场景,避免读写锁争抢问题,提升系统的性能和吞吐。

计费

支持包年包月和按量付费两种方式计费。包年包月费用请以实际购买页为准,按量付费具体费用请参见只读实例规格列表

功能特点

  • 地域和可用区:与主实例在同一地域,可以在不同的可用区。

  • 更改网络类型:可以与主实例不一致。

  • 账号与数据库管理:不需要维护账号与数据库,全部通过主实例同步。

  • 白名单:只读实例创建时会自动复制其主实例的白名单信息,但只读实例和主实例的白名单是相互独立的。若您需要修改只读实例的白名单,请参见设置白名单

  • 监控与报警:提供系统性能指标的监控视图,如磁盘容量、IOPS、连接数、CPU使用率等。

  • 自动读写分离:配合主实例数据库代理功能,可使写请求自动转发到主实例,读请求自动转发到各个只读实例,实现读写请求的自动分流,减轻主实例的压力。若您需要为主实例开通数据库代理功能,请参见什么是数据库代理

  • 只读实例的数量:云盘主实例最多创建32个只读实例,本地盘主实例最多创建5个只读实例。

注意事项

  • 实例备份:因主实例已有备份,只读实例暂不支持备份设置以及手动发起备份。

  • 数据迁移:不支持将数据迁移至只读实例。

  • 数据库管理:不支持创建和删除数据库。

  • 账号管理:不支持创建和删除账号,不支持为账号授权以及修改账号密码功能。

  • 规格及存储空间:

    • 云盘:只读实例的存储空间不能低于主实例,且如果主实例内存大于只读实例内存,主实例变配时会重启只读实例。

    • 本地盘:只读实例的规格和存储空间不能低于主实例。

  • 只读实例出现内核复制或其他不可预见的错误时,会重搭该只读实例。

  • 主实例被释放后,包年包月只读实例自动退款并释放,按量付费只读实例直接释放。