数据库代理常见问题

如果您在使用RDS PostgreSQL数据库代理过程中存在疑问或遇到问题,可以参考本文查看解决方案。

关于RDS数据库代理的使用问题和更多相关信息,欢迎加入用户钉钉群(106730000316)进行咨询、反馈和交流 。

什么是数据库代理?

数据库代理是位于数据库服务端和应用服务端之间的网络代理服务,用于转发应用服务端访问数据库时的所有请求,提供读写分离、事务拆分等高级功能,具有高可用、高性能、可运维、简单易用等特点。更多信息,请参见什么是数据库代理

通用型代理和独享型代理有什么区别?

  • 通用型:共享CPU物理资源,代理规格最高为16核(代理个数8),不收取任何费用,更经济。

  • 独享型:独占CPU物理资源,代理规格最高为32核(代理个数16),按量计费,具有更好的性能稳定性。

更多信息,请参见数据库代理类型介绍数据库代理费用说明

代理个数和代理规格是什么关系?

代理规格 = 单位代理规格 × 代理个数
说明

单位代理规格固定为2核CPU。

例如,代理实例的代理个数为3 ,则对应的代理规格为2核 x 3 = 6核

代理个数用于计算最终数据库代理的性能规格,不代表实际代理个数。开通的数量越多,数据库代理可承担的数据库负载越高。

代理个数和代理连接地址个数有关系吗?

没有。

每个RDS PostgreSQL实例在开通数据库代理后,都可以申请1~7个代理连接地址(原代理终端),每个代理连接地址都可以申请1个内网地址和1个外网地址,更多信息,请参见新建数据库代理连接地址

数据库代理是否会占用主实例的QPS或者TPS?

不会

数据库代理地址和常规地址是否是一个地址?

不是。

  • 常规地址:正常的业务读写地址,通过该地址发送的所有请求只会路由到该实例。

  • 数据库代理地址:可根据用户的SQL请求,自动判断读请求或写请求,并分发到主实例或只读实例,实现读写分离,减轻主实例的压力。

开通数据库代理后,实例原来的地址是否会被收回?

不会收回。

数据库代理是什么架构,有故障切换机制吗?

数据库代理采用双主节点的高可用架构,流量连接按照1:1比例分发到两个节点当中,如果其中一个节点发生故障,将由另一个节点承担全部流量,并会自动触发故障节点重搭恢复任务,以确保数据库服务的高可用性。

数据库代理的性能会随着代理连接地址个数(原代理终端)的增多而提升吗?

不会。数据库代理的性能与只读实例个数、代理个数(代理规格)相关:

  • 增加只读实例,可以提升数据库代理的读请求处理能力。

  • 根据只读实例个数,增加代理个数(代理规格),可提升数据库代理的性能。

    说明

    推荐代理规格计算方式:

    • 推荐代理规格 = 推荐代理个数*单位代理规格。其中,单位代理规格固定为2核。

    • 通用型代理规格最高为16核,独享型代理规格最高为32核。推荐代理个数计算方式如下:

      代理类型

      高可用系列实例

      通用型推荐代理个数

      (主实例CPU核数+该主实例下所有只读实例CPU核数)/4(向上取整)。

      独享型推荐代理个数

      (主实例CPU核数+该主实例下所有只读实例CPU核数)/8(向上取整)。

    例如,RDS高可用系列实例:主实例为8核CPU,该实例下有1个4核CPU的只读实例,则通用型代理推荐代理个数为(8+4)/8=2个,即推荐代理规格=2 *2 核=4核

数据库代理地址的前缀可以修改吗?

可以。

数据库代理地址的前缀和端口都可以修改,具体操作,请参见设置数据库代理连接地址

数据库代理对用户的连接数有限制吗?支持多少并发连接?

数据库代理本身并没有最大连接数的限制,连接数的限制是由数据库中计算节点的规格决定。

当前数据库代理支持的连接数为min{主实例最大连接数, 只读实例最大连接数}

例如:主实例规格的最大连接数为1600,只读实例规格的最大连接数为800,则数据库代理支持的连接数为800。

说明

如何使SQL读请求转发到主实例,不被数据库代理转发到只读实例?

您可以在读请求的SQL中加入/*FORCE_MASTER*/,指定该请求被转发到主实例。如果需要转发到只读实例,则使用/*FORCE_SLAVE*/

示例:

/*FORCE_MASTER*/ SELECT * FROM table_name;

为什么修改后的读权重没有生效?

修改读权重后,新建的连接才会根据新权重进行分配,已存在的连接不会断开重连。

当故障实例恢复后,数据库代理需要多长时间可以正常提供服务?

数据库代理会实时监控实例健康状态,当实例故障时,将会在2秒内识别到故障实例,当实例恢复时,数据库代理即可正常提供服务。

如何查看专有网络类型的内网代理地址的vpc Id和vswitch Id?

在数据库代理页面,连接信息区域,找到目标内网地址,点击image.png图标,即可查看。