当您面临数据库读取压力大幅增加时,云数据库RDS PostgreSQL支持创建只读实例来扩展读取能力,提高应用的整体吞吐量。只读实例使用物理复制技术,能够实时同步主实例数据,确保数据的一致性。
关于只读实例的更多介绍,请参见PostgreSQL只读实例简介。
前提条件
您已创建PostgreSQL主实例,主实例满足以下条件:
实例版本:目标实例版本仍在售卖中,已停售版本不支持创建只读实例,详情请参见已停售版本。
实例系列:高可用系列。
实例规格:
云盘:无特殊要求。
本地盘:规格为独享套餐(8核32 GB以上)。
计费方式:包年包月或按量付费,Serverless计费方式的实例暂不支持创建只读实例。
创建PostgreSQL只读实例前,请在基本信息页面确认实例系列及规格信息。如果不满足要求,且需要创建只读实例时,请单击变更配置,将基础系列变更为高可用系列后再创建只读实例,具体操作,请参见变更配置。
注意事项
创建只读实例时,必须选择与主实例相同的VPC,否则将会创建失败并且退款。
只能在主实例内创建只读实例,不能将已有实例切换为只读实例。
由于创建只读实例时是从备实例复制数据,因此不会影响主实例。
只读实例的参数不继承主实例上的参数设置,会生成默认的参数值,可以在只读实例的控制台上进行修改。
重要新通用型只读实例的参数会继承主实例上的参数设置。新通用型只读实例的更多信息,请参见RDS PostgreSQL只读实例规格列表。
创建的只读实例存储类型与主实例一致。
本地盘只读实例的规格和存储空间不能低于主实例。
云盘版只读实例的规格建议与主实例保持一致,或大于等于主实例规格的1/2,避免只读实例性能与主实例相差过大而导致的复制延迟、OOM等情况。
云盘版只读实例存储空间不能低于主实例,且如果主实例内存大于只读实例内存,主实例变配时会重启只读实例。
创建的只读实例内存需满足如下要求:
主实例内存范围
只读实例内存要求
(0 GB~64 GB]
至少为主实例内存的1/4
(64 GB~256 GB]
至少为主实例内存的1/6
(256 GB~9999 GB]
至少为主实例内存的1/8
本地盘主实例最多创建5个只读实例,云盘主实例最多创建32个只读实例。
本地盘实例的只读实例为高可用架构,云盘实例的只读实例为单节点架构(没有备节点)。
说明单节点架构没有备节点,因此无法保障可用性,建议您购买多个只读实例,使用libpq或JDBC实现自动故障转移,详情请参见自动故障转移和读写分离,您也可以通过数据库代理实现读写自动分离,更多信息,请参见什么是数据库代理。
创建只读实例会产生费用,支持包年包月和按量付费两种方式计费。包年包月费用请以实际购买页为准,按量付费具体费用请参见只读实例规格列表。
创建只读实例
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在实例分布区域找到只读实例,单击添加。
说明旧版控制台请在右侧单击添加只读实例。
设置只读实例的参数。
参数
说明
计费方式
包年包月:长期使用RDS只读实例推荐使用包年包月(一次性付费),在页面左下角选择购买时长
按量付费:短期使用RDS只读实例,请选择按量付费(按小时付费)。您可以先创建按量付费的只读实例,确认实例符合要求后再转包年包月。
产品类型
仅当主实例存储类型为ESSD云盘或通用云盘时,才支持选择倚天版。
标准版和倚天版的更多信息,请参见产品类型。
可用区
可用区是地域中的一个独立物理区域,不同可用区之间没有实质性区别。相比单可用区,多可用区能提供可用区级别的容灾。
实例规格
通用规格:通用型的实例规格,独享被分配的内存和I/O资源,与同一服务器上的其他通用型实例共享CPU和存储资源。
独享规格:独享或独占型的实例规格。独享型指独享被分配的CPU、内存、存储和I/O资源。独占型是独享型的顶配,独占整台服务器的CPU、内存、存储和I/O资源。
说明每种规格都有对应的CPU核数、内存、最大连接数和最大IOPS。本地盘主实例的只读实例规格不能低于主实例。规格详情请参见RDS PostgreSQL只读实例规格列表。
存储空间
存储空间包括数据空间、系统文件空间、wal文件空间和事务文件空间。调整存储空间时最小单位为5GB。
说明各规格的存储空间大小,请参见RDS PostgreSQL只读实例规格列表。
云盘主实例的只读实例存储空间不能低于主实例,且如果主实例内存大于只读实例内存,主实例变配时会重启只读实例。
本地盘主实例的只读实例存储空间不能低于主实例。
单击下一步:实例配置,设置如下参数。
参数
说明
网络类型
默认与主实例网络类型、VPC和主节点交换机保持一致。
实例释放保护
如果计费方式为按量付费,则可以为按量付费实例开启实例释放保护,防止按量付费实例被意外释放。更多信息,请参见开启和关闭实例释放保护。
资源组
默认与主实例资源组相同,不支持修改。
时区
默认与主实例时区保持一致。
SLR 授权
无需配置,购买主实例时已授权。SLR授权的相关信息,请参见【产品/功能变更】2022年10月10日起创建RDS PostgreSQL实例需SLR授权。
实例描述
设置实例名称,方便管理。
单击下一步:确认订单。
勾选服务协议,单击去支付,根据提示完成支付。
只读实例创建时间与主实例存储类型及磁盘大小相关,请参考以下预估时间,耐心等待只读实例创建。
主实例存储类型为SSD云盘,创建时间约为一次全量备份时间+20分钟。
主实例存储类型为ESSD云盘,创建时间约为20分钟。
创建只读实例期间对主实例无影响,创建成功后会在主实例中产生一个WAL Sender的进程,用于发送WAL日志到只读实例。
RDS PostgreSQL通过快照的方式搭建只读实例,与数据量大小无关。
查看只读实例
查看只读实例的延迟时间
只读实例同步主实例的数据时,可能会有一定的延迟。您可以在只读实例的基本信息页面查看延迟时间。
相关API
API | 描述 |
创建RDS只读实例 |
常见问题
Q:只读实例的计费方式可以转化吗?
Q:变更只读实例的配置、释放只读实例、转化只读实例计费方式会影响主实例吗?
A:不会。
Q:主实例上创建的账号在只读实例上可以用吗?
A:主实例创建的账号会同步到只读实例,只读实例无法管理账号。账号在只读实例上只能进行读操作,不能进行写操作。
Q:只读实例可以转变为常规实例吗?比如作为容灾实例?
A:暂不支持。
Q:能否对只读实例的数据进行备份?实例的自动备份能否在只读实例上进行?
A:无需对只读实例进行备份,备份在主实例上进行,由于RDS PostgreSQL的备份使用快照备份,对主实例没有性能开销。
Q:只读实例是否支持并行复制?
A:RDS PostgreSQL采用的是物理流复制,基于WAL日志文件同步加回放来实现数据复制能力,效率高,无需使用并行复制。
Q:事务日志的清除机制是怎样的?
A:RDS PostgreSQL的WAL日志备份完成后,由内核在Checkpoint操作中自动清理。
Q:如何通过只读实例延迟时间判断复制是否正常?
A:通常情况下只读实例延迟时间在1秒以内,如果超过1秒,说明数据同步延迟,极端场景下也可能出现断开的场景。
Q:复制延迟通常是什么原因引起的?