RDS PostgreSQL提供数据库代理服务,支持读写分离,本文介绍配置方法。
前提条件
RDS PostgreSQL实例需要满足以下要求:
- 实例大版本为PostgreSQL 10或以上版本。
- 实例存储类型为云盘。
- 实例系列为高可用版。
- 实例为主实例。
- RDS PostgreSQL数据库代理功能正在逐步开放中,当前支持的地域及可用区如下:
地域 可用区 华东1(杭州) 可用区G、可用区H、可用区I和可用区J 华东2(上海) 可用区B、可用区E、可用区F、可用区G和可用区I 华北2(北京) 可用区F、可用区G、可用区H和可用区I 华北3(张家口) 可用区A、可用区B和可用区C 华南1(深圳) 可用区D、可用区E和可用区F 中国(香港) 可用区B 新加坡 可用区A、可用区B和可用区C 马来西亚(吉隆坡) 可用区A和可用区B 印度尼西亚(雅加达) 可用区A、可用区B和可用区C 德国(法兰克福) 可用区A 美国(弗吉尼亚) 可用区B
费用说明
请参见数据库代理费用。
注意事项
- 开通数据库代理后,不建议迁移主实例可用区。如果迁移主实例可用区,将会导致主实例与数据库代理不在同一可用区,从而使数据库访问延迟增高,响应变慢。
- 请确保已创建只读实例。没有只读时,可以开启数据库代理功能,但无法设置代理终端。创建方法,请参见创建PostgreSQL只读实例。
操作步骤
步骤一:开启数据库代理服务
步骤二:设置代理终端
开通数据库代理后,您还需要设置代理终端,配置数据库代理的核心功能。
设置完成后,您需要在应用程序中配置代理终端地址,就可以使写请求自动转发到主实例,读请求自动转发到各个只读实例。
读写属性处理逻辑
读写属性 | 权限分配方式 | 主实例权重 | 正常情况 | 删除最后一个只读实例 | 只读实例全部故障 |
---|---|---|---|---|---|
只读 | 系统分配或自定义 | 主实例权重不可设置 |
|
|
|
读写 | 系统分配 | 大于0
具体请参见系统权重分配规则。 |
|
|
|
自定义 | 大于0 |
|
|
|
|
等于0 |
|
|
|
相关API
API | 描述 |
---|---|
ModifyDBProxy | 开启或者关闭数据库代理功能。 |
DescribeDBProxy | 查询数据库代理详情。 |
ModifyDBProxyEndpoint | 设置数据库代理终端。 |