本文介绍使用RDS PostgreSQL数据库代理时的注意事项。
注意事项
通用版代理免费。独享版数据库代理、只读实例和主实例均独立收费,三者互不干扰。
当主实例或只读实例变更配置时可能会出现连接闪断。
开启数据库代理后,新增只读实例或只读实例重启,只有新的连接的请求才会转发到新的只读实例或重启的只读实例,旧的连接请求不会变化。
使用代理连接地址进行读写分离时,会话内的读一致性目前暂未支持。
使用代理连接地址时,查看会话变量需要增加
/*force_master*/ /*force_slave*/
来查看主实例和只读节点上的配置。数据库代理的连接模型是1:N(即您的一个业务连接到达代理后,代理会连接到主实例和所有配置的只读实例),数据库代理本身并没有最大连接数的限制,连接数的限制主要由后端数据库中计算节点的规格决定。未开启事务级连接池时,每条由客户端发起的连接都需要在后端主节点和所有只读节点上各创建一个对应的连接。建议开通数据库代理后,主实例和只读实例的连接数规格尽量一致,否则业务的连接数会受限于最小规格的实例连接数限制。
主实例被锁定期间,代理不会被释放,可继续提供读服务,但无法提供写服务。
主实例若被释放,数据库代理自动跟随主实例释放,释放后独享型代理不再产生费用。
在使用高权限账号单独配置账号的host范围时,代理支持配置为
10.1.2.%
格式的网段。说明暂不兼容将代理的网段配置为
10.1.2.0/24
。如果执行了Multi-Statements或存储过程,当前连接的后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。
数据库代理的IP白名单和RDS主实例的IP白名单是保持一致的。RDS主实例的IP白名单更新,数据库代理的IP白名单也会同步更新。