
# 不同场景下配置连接参数
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
以下示例场景中node代表"host:port"，host为数据库服务器名称或IP地址，port为数据库服务器端口。
#### 容灾场景
某客户有两套数据库集群，其中A集群为生产集群，B集群为容灾集群。当客户执行容灾切换时，A集群将降为容灾集群，B集群将升为生产集群。此时为了避免修改配置文件导致的应用重启或重新发版，客户可在初始配置文件时，即将A、B集群写入连接串中。此时在主集群不可连接时，驱动将尝试对容灾集群建连。例如A集群为{node1,node2,node3}。B集群为{node4,node5,node6}。
以Dorado双集群为例，url可参考如下配置进行设置，当主备切换后只会连接新的主集群。
```
jdbc:gaussdb://node1,node2,node3,node4,node5,node6/database
```
#### 负载均衡场景
某客户存在一套数据库集群，包含如下节点{node1,node2,node3,node4,node5,node6,node7,node8,node9,node10,node11,node12}。
- 客户在应用程序A中建立了120个长连接，并期望应用程序A上的连接可以均匀分布在集群各节点上，则url可参考如下命令进行配置。
  ```
  jdbc:gaussdb://node1,node2,node3/database?autoBalance=true
  ```
  
- 客户新开发了两个应用程序B、C，希望当前这三个应用程序均匀分布在指定节点，如应用程序A的连接分布在{node1,node2,node3,node4}，应用程序B的连接分布在{node5,node6,node7,node8}，应用程序C的连接分布在{node9,node10,node11,node12}，则url可参考如下命令进行配置（若url中前四个节点都不可连，应用会连接第五个节点，根据pgxc_node表中的信息，在集群中所有可用节点之间进行轮询连接）。 应用程序A：
  ```
  jdbc:gaussdb://node1,node2,node3,node4,node5/database?autoBalance=priority4
  ```
  应用程序B：
  ```
  jdbc:gaussdb://node5,node6,node7,node8,node9/database?autoBalance=priority4
  ```
  应用程序C：
  ```
  jdbc:gaussdb://node9,node10,node11,node12,node1/database?autoBalance=priority4
  ```
  
- 客户开发了一些应用程序，并且使用相同的连接配置串，同时期望各应用连接能较均匀分布在集群各节点上，则url可参考如下命令进行配置。
  ```
  jdbc:gaussdb://node1,node2,node3,node4/database?autoBalance=shuffle
  ```
  
- 客户开发了一些应用程序，想通过单节点会话模式建立连接，则url可参考如下命令进行配置。
  ```
  jdbc:gaussdb://node1,node2,node3,node4/database?sessionType=singleNode&execTargetNode=dn_name
  ```
  
- 客户不使用负载均衡功能，则url可参考如下命令进行配置。
  ```
  jdbc:gaussdb://node1/database
  ```
  或：
  ```
  jdbc:gaussdb://node1/database?autoBalance=false
  ```
  ![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  在开启autoBalance参数时，JDBC刷新可用CN列表的周期默认为10s，可使用refreshCNIpListTime进行设置，示例如下：
  ```
  jdbc:gaussdb://node1,node2,node3,node4/database?autoBalance=true&refreshCNIpListTime=3
  ```
  
 
#### 日志诊断场景
在使用过程中出现数据导入慢或出现一些难以分析的异常报错时，可通过开启trace日志进行诊断，url可参考如下命令进行配置。
```
jdbc:gaussdb://node1/database?loggerLevel=trace
```
#### 高性能场景
某客户对于相同SQL可能多次执行，仅是传参不同的情况，为了提升执行效率，可开启[prepareThreshold](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1820.html#ZH-CN_TOPIC_0000002527825774__zh-cn_topic_0000002558216641_p332086184618)参数，避免重复生成执行计划，url可参考如下命令进行配置。
```
jdbc:gaussdb://node1/database?prepareThreshold=5
```
某客户一次查询1000万数据，为避免同时返回造成内存溢出，可使用[defaultRowFetchSize](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1820.html#ZH-CN_TOPIC_0000002527825774__zh-cn_topic_0000002558216641_p153217616467)，url可参考如下命令进行配置。
```
jdbc:gaussdb://node1/database?defaultRowFetchSize=50000
```
某客户需要批量插入1000万数据，为提升效率，可使用[batchMode](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1820.html#ZH-CN_TOPIC_0000002527825774__zh-cn_topic_0000002558216641_p9320116154615)，url可参考如下命令进行配置。
```
jdbc:gaussdb://node1/database?batchMode=on
```
