创建TaurusDB for PostgreSQL实例后,您可以开通数据库代理,通过代理地址实现读写请求的自动转发。写请求自动访问主节点,读请求按照数据库代理的路由模式分发到各个节点,降低主节点的负载。
本章节介绍使用数据库代理实现读写分离的过程,主要流程如下:
步骤1:开通数据库代理
步骤2:检查安全组规则
步骤3:使用代理地址连接TaurusDB for PostgreSQL实例
使用须知
在使用数据库代理之前,请先了解以下内容:
- 在开通数据库代理前,需要有已购买成功的TaurusDB for PostgreSQL实例。
- 请参见注意事项。
操作步骤
步骤1:开通数据库代理
- 登录TaurusDB管理控制台。
- 在实例管理页面,选择目标TaurusDB for PostgreSQL实例,单击实例名称,进入实例概览页面。
- 在左侧导航栏中,单击“数据库代理”,进入数据库代理页面。
- 单击“新增代理”。
- 在新增代理页面,设置以下参数,单击“立即购买”。
图1 新增代理
表1 数据库代理参数 | 参数名称 | 说明 |
| 代理实例名称 | 长度在4个到64个字符之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。 |
| 代理模式 | 支持读写和只读代理模式,可根据业务需要选择合适的代理模式。 - 读写模式:所有写请求只发往主节点,所有读请求按照活跃连接数情况分发到已选节点。
- 只读模式:所有读请求按照活跃连接数情况分发到已选只读节点,不会分发到主节点。
|
| 路由模式 | 数据库代理当前仅支持负载均衡路由模式。 负载均衡会根据数据库节点的活跃连接数情况进行读请求分发,将读请求分发到活跃连接数较少的节点上。 |
| 主库接受读 | 开启主库接受读开关后,读请求会分发至主节点及所有只读节点。 |
| 代理实例规格 | 根据实际需要选择代理实例规格。 通用增强型:2 vCPUs | 4 GB、4 vCPUs | 8 GB、8 vCPUs | 16 GB |
| 新节点自动加入 | 开启新节点自动加入开关后,新增的只读节点会自动添加到该数据库代理实例中。 |
| 选择数据库节点 | 勾选需要加入到数据库代理中处理读请求的节点。 |
- 确认数据库代理信息。
- 如果需要重新选择,单击“上一步”,修改基本信息。
- 信息确认无误,单击“提交”,下发创建数据库代理请求。
- 查看代理实例及关联的数据库节点。
数据库代理开通后,在数据库代理页面可查看到已创建成功的代理实例。
图2 查看创建成功的代理实例
在“数据库代理”页面,单击目标代理实例名称,进入代理实例基本信息页面。在基本信息下方可以看到关联节点信息。在关联节点信息中可查看对应代理实例关联的数据库节点。将鼠标悬浮在节点信息处,可查看该节点的详细信息。
图3 查看代理实例关联节点信息
步骤2:检查安全组规则
确保入方向规则和出方向规则允许数据库代理地址访问,默认端口号为5432。
- 登录TaurusDB管理控制台。
- 在“实例管理”页面,选择目标实例,单击实例名称,进入实例概览页面。
- 在“网络信息”模块的“内网安全组”处,单击安全组名称,进入安全组页面。
- 在入方向规则页签下,默认允许5432端口访问。
图4 放通5432端口
如果没有该条规则,单击“快速添加规则”,弹框页面中勾选“PostgreSQL(5432)”,并设置入方向规则参数,单击“确定”。
图5 快速添加5432端口
表2 入方向规则参数说明 | 参数 | 说明 |
| 常见协议端口 | 选择“PostgreSQL(5432)”。 |
| 类型 | 源地址支持的IPV4和IPV6地址类型。 |
| 源地址 | 在入方向规则中,用来匹配外部请求的源地址,支持以下格式: |
| 策略 | 安全组规则策略,支持的策略如下: - 如果“策略”设置为允许,表示允许源地址访问安全组内云服务器的指定端口。
- 如果“策略”设置为拒绝,表示拒绝源地址访问安全组内云服务器的指定端口。
安全组规则匹配流量时,首先按照优先级进行排序,其次按照策略排序,拒绝策略高于允许策略。 |
| 优先级 | 安全组规则优先级。 优先级可选范围为1-100,默认值为1,即最高优先级。优先级数字越小,规则优先级级别越高。 |
| 描述 | 安全组规则的描述信息,非必填项。 描述信息内容不能超过255个字符,且不能包含“<”和“>”。 |
步骤3:使用代理地址连接TaurusDB for PostgreSQL实例
- 在TaurusDB for PostgreSQL控制台查看代理地址和端口。
单击目标TaurusDB for PostgreSQL实例,进入实例概览页面。在左侧导航栏单击“数据库代理”,在代理实例列表中查看代理地址和端口号。
图6 查看代理地址和端口
- 登录弹性云服务器。
详细内容请参考《弹性云服务器用户指南》。
- 执行如下命令,输入密码,通过代理地址连接TaurusDB for PostgreSQL实例。
psql -h <hostIP> -p <port> -U <userName> -d <database>
表3 参数说明 | 参数 | 说明 |
| <hostIP> | 1中获取到的代理地址。 |
| <port> | 1中获取到的数据库端口。 |
| <userName> | 用户名,即TaurusDB for PostgreSQL数据库管理员账号,默认为root。 |
| <database> | 数据库名,默认为postgres。 |
通过新建用户登录时,可能会出现报错 FATAL: No pool configured for database: "postgres", user: "***"。该问题需触发代理的同步机制方可正常登录,可通过以下两种方式操作:
- 等待最长不超过cache_refresh参数配置的时间(默认 5 分钟),系统会自动触发同步;
- 手动重启代理,直接触发同步机制。