示例:不同场景下连接数据库参数配置

示例:不同场景下连接数据库参数配置 - 图1 说明:

以下示例场景中node代表“host:port”,host为数据库服务器名称或IP地址,port为数据库服务器端口。

容灾场景

某客户有两套数据库数据库实例,其中A数据库实例为生产数据库实例,B数据库实例为容灾数据库实例。当客户执行容灾切换时,A数据库实例将降为容灾数据库实例,B数据库实例将升为生产数据库实例。此时为了避免修改配置文件导致的应用重启或重新发版。客户可在初始配置文件时,即将A、B数据库实例写入连接串中。此时在主数据库实例不可连接时,驱动将尝试对容灾数据库实例建连。例如A数据库实例为{node1,node2,node3}。B数据库实例为{node4,node5,node6}。

则url可参考如下进行配置:

  1. jdbc:postgresql://node1,node2,node3,node4,node5,node6/database?priorityServers=3

示例:不同场景下连接数据库参数配置 - 图2 说明:

轻量版场景下,openGauss不支持容灾场景。

负载均衡场景

某客户存在一套集中式数据库实例,包含1主2备三个节点{node1,node2,node3},其中node1为主节点,node2、node3为备节点。

客户希望同一应用程序上建立的连接,较为均匀的分布在三个节点上,则url可参考如下配置:

  1. jdbc:postgresql://node1,node2,node3/database?loadBalanceHosts=true

示例:不同场景下连接数据库参数配置 - 图3 注意:

使用loadBalanceHosts时,若连接建立在备DN上,将无法执行写操作。如果业务需要执行读写操作,请勿配置该参数。

日志诊断场景

某客户在使用中出现数据导入慢或出现一些难以分析的异常报错,可通过开启trace日志进行诊断,url可参考如下进行配置。

  1. jdbc:postgresql://node1/database?loggerLevel=trace&loggerFile=jdbc.log

高性能场景

某客户对于相同sql可能多次执行,仅是传参不同,为了提升执行效率,可开启prepareThreshold参数,避免重复生成执行计划,url可参考如下配置。

  1. jdbc:postgresql://node1/database?prepareThreshold=5

某客户一次查询1000万数据,为避免同时返回造成内存溢出,可使用defaultRowFetchSize,url可参考如下配置。

  1. jdbc:postgresql://node1/database?defaultRowFetchSize=50000

某客户需要批量插入1000万数据,为提升效率,可使用batchMode,url可参考如下配置。

  1. jdbc:postgresql://node1/database?batchMode=true