
# 连接设置
介绍设置客户端和服务器连接方式相关的参数。
#### listen_addresses
**参数说明：**声明服务器侦听客户端的TCP/IP地址。
该参数指定GaussDB服务器使用哪些IP地址进行侦听，如IPV4。服务器主机上可能存在多个网卡，每个网卡可以绑定多个IP地址，该参数就是控制GaussDB绑定在哪个或者哪几个IP地址上。而客户端则可以通过该参数中指定的IP地址来连接GaussDB或者给GaussDB发送请求。
该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**取值范围：**
- 主机名或IP地址，多个值之间用英文逗号分隔。
- "\*"或"0.0.0.0"表示侦听所有IP地址。配置侦听所有IP地址存在安全风险，不推荐用户使用。
- 置空则服务器不会侦听任何IP地址，这种情况下，只有UNIX域套接字可以用于连接数据库。
**默认值：**
集群安装好后，根据public_cloud.conf配置文件中不同实例的IP地址配置不同默认值。CN的默认参数值为：listen_addresses = 'localhost,mgr.net网卡对应的IP地址,data.net网卡对应的IP地址,virtual.net网卡对应的IP地址'；DN的默认参数值为：listen_addresses = 'data.net网卡对应的IP'。
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
localhost表示只允许进行本地"回环"连接。
public_cloud.conf文件保存的网卡信息，包括：mgr.net（管理网卡）、data.net（数据网卡）、virtual.net（虚拟网卡）。
#### local_bind_address
**参数说明：**声明当前节点连接集群其他节点绑定的本地IP地址。
该参数属于POSTMASTER类型参数。
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
该参数由安装时的配置文件指定，请勿轻易修改，否则修改后会影响数据库正常通信。
**默认值：**
集群安装好后，根据public_cloud.conf配置文件中不同实例的IP地址配置不同默认值。CN/DN的默认参数值为：local_bind_address = 'data.net网卡对应的IP地址'。
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
public_cloud.conf文件保存的网卡信息，包括：mgr.net（管理网卡）、data.net（数据网卡）、virtual.net（虚拟网卡）。
#### port
**参数说明：**GaussDB服务侦听的TCP端口号。
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
该参数由安装时的配置文件指定，请勿轻易修改，否则修改后会影响数据库正常通信。
**取值范围：**整型，1～65535
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 设置端口号时，请设置一个未被占用的端口号。设置多个实例的端口号，不可冲突。
- 1\~1023为操作系统保留端口号，请不要使用。
- 通过配置文件安装集群时，配置文件中的端口号需要注意通信矩阵预留端口。如：DN还需保留dataPortBase+1作为内部工具使用端口，保留dataPortBase+6作为流引擎（由于规格变更，当前版本已经不再支持本特性，请不要使用）消息队列通信端口等。故集群安装阶段，port最大值为：CN可设置65532，DN可设置65529，GTM可设置65534，同时需要保证端口号不冲突。
 
**默认值：**5432（实际值由安装时的配置文件指定）
#### max_connections
**参数说明：**允许和数据库连接的最大并发连接数。此参数会影响集群的并发能力。
该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**取值范围：** 整型。最小值为10（要大于max_wal_senders），理论最大值为262143，实际最大值为动态值，计算公式为"262143 - job_queue_processes - autovacuum_max_workers - max_inner_tool_connections - AUXILIARY_BACKENDS - AV_LAUNCHER_PROCS - min(max(newValue/4,64),1024)"，[job_queue_processes](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1183.html#ZH-CN_TOPIC_0000002222151865__zh-cn_topic_0000002099772181_zh-cn_topic_0000001129789549_zh-cn_topic_0059778487_section10342177134137)、[autovacuum_max_workers](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1151.html#ZH-CN_TOPIC_0000002222151829__zh-cn_topic_0000002099772145_zh-cn_topic_0237124730_zh-cn_topic_0059778244_s76932f79410248ba8923017d19982673)和[max_inner_tool_connections]的值取决于对应GUC参数的设置，AUXILIARY_BACKENDS为预留辅助线程数固定为20，AV_LAUNCHER_PROCS为预留autovacuum的launcher线程数固定为2，min(max(newValue/4,64),1024)公式中newValue为新设置的值。
在不同实例的内存规格下，强制该参数取值范围如下：
表1独立部署模式下，不同实例的内存规格的参数取值范围 
| 内存规格            | CN参数取值范围     | DN参数取值范围      |
|:---|:---|:---|
| \< 32GB         | \[10, 100\]  | \[10, 100\]   |
| \[32GB, 64GB)   | \[10, 200\]  | \[10, 200\]   |
| \[64GB, 128GB)  | \[10, 1000\] | \[10, 2500\]  |
| \[128GB, 256GB) | \[10, 2000\] | \[10, 6000\]  |
| \[256GB, 480GB) | \[10, 4000\] | \[10, 12000\] |
| \>= 480GB       | \[10, 8000\] | \[10, 24000\] |
   
**默认值：**
- 独立部署： CN：8000（60核CPU/480G内存）；4000（32核CPU/256G内存）；2000（16核CPU/128G内存）；1000（8核CPU/64G内存）；100（4核CPU/32G内存，4核CPU/16G内存）
  DN：24000（60核CPU/480G内存）；12000（32核CPU/256G内存）；6000（16核CPU/128G内存）；2500（8核CPU/64G内存）；100（4核CPU/32G内存，4核CPU/16G内存）
  
**配置不当时影响：**
若配置max_connections过大，超过计算公式所描述的最大动态值，会出现节点拉起失败问题，报错提示"invalid value for parameter "max_connections""；或在拉起时申请内存失败，报错提示"Cannot allocate memory"；
若未按照对外出口规格配置仅调大max_connections参数值，未同比例调整内存参数。业务压力大时，容易出现内存不足，报错提示"memory is temporarily unavailable"；
混合部署场景下，若CN的max_connections参数值大于（DN的max_connections/CN个数）时，客户端总压力超过DN端max_connections值时，可能会出现CN节点连接DN失败情况，报错提示"pooler... Too many clients already"。
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 对于管理员用户的连接数限制会略超过max_connections设置，目的是为了让管理员在连接被普通用户占满后仍可以连接上数据库，再超过一定范围（sysadmin_reserved_connections参数）后才会报错。即管理员用户的最大连接数等于max_connections + sysadmin_reserved_connections。
- 对于普通用户来说，由于内部作业也会使用一些链接，因此会略小于max_connections，具体值取决于内部链接个数。
- 开启线程池后，stream线程数的上限为max_connections设置值。若stream线程数量达到上限时，将产生"Exceed stream thread pool limitation..."报错，此时可以通过调整max_connections参数值将stream线程数上限调高。由于该参数属于POSTMASTER类型，故设置时可以综合业务情况进行合理预估：stream线程数总数 = 业务并发数 \* 每一个并发执行的语句所消耗的stream线程数量（可通过执行计划查看）。
 
 #### max_inner_tool_connections
**参数说明：**允许和数据库连接的工具的最大并发连接数。此参数会影响GaussDB的工具连接并发能力。
该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**取值范围：**整型，最小值为1，最大值为MIN(262143, max_connections)，max_connections的计算方法见上文。
**默认值：**50。如果该默认值超过内核支持的最大值（在执行gs_initdb的时候判断），系统会提示错误。
**设置建议：**
数据库主节点中此参数建议保持默认值。
#### sysadmin_reserved_connections
**参数说明：**为管理员用户预留的最少连接数，不建议设置过大。该参数和max_connections参数配合使用，管理员用户的最大连接数等于max_connections + sysadmin_reserved_connections。
该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**取值范围：**整型，最小值为0，最大值为MIN(262143, max_connections)，max_connections的计算方法见上文。
**默认值：**3
**注意：**当启用线程池功能时，若线程池占满将形成处理瓶颈，导致管理员预留连接无法正常建立；作为逃生手段，此时可使用gsql通过主端口+1端口号连入，清理无用会话，即可正常连入。
#### unix_socket_directory
**参数说明：**设置GaussDB服务器侦听客户端连接的UNIX域套接字目录，仅sysadmin用户可以访问。
该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
该参数的长度限制于操作系统的长度，Linux系统下，套接字路径名（套接字目录与套接字文件名拼接而成）长度不得超过107bytes，目录最长不得超过92bytes。超过该限制将会导致UNIX-domain socket path "xxx" is too long的问题，影响进程正常拉起，若误设置出错，可以通过检索cm_agent路径下system_call日志定界。
**取值范围：**字符串
**默认值：**空字符串（实际值由安装时配置文件中tmpMppdbPath指定）
#### unix_socket_group
**参数说明：** 设置UNIX域套接字的所属组（套接字的所属用户总是启动服务器的用户）。可以与选项[unix_socket_permissions]一起用于对套接字进行访问控制。
该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**取值范围：**字符串，其中空字符串表示当前用户的缺省组。
**默认值：**空字符串
 #### unix_socket_permissions
**参数说明：**设置UNIX域套接字的访问权限。
UNIX域套接字使用普通的UNIX文件系统权限集。这个参数的值应该是数值的格式（chmod和umask命令可接受的格式）。如果使用自定义的八进制格式，数字必须以0开头。
建议设置为0770（只有当前连接数据库的用户和同组的人可以访问）或者0700（只有当前连接数据库的用户自己可以访问，同组或者其他人都没有权限）。
该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**取值范围：**0000-0777
**默认值：**0700
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
在Linux中，文档具有十个属性，其中第一个属性为文档类型，后面九个为权限属性，分别为Owner，Group及Others这三个组别的read、write、execute属性。
文档的权限属性分别简写为r，w，x，这九个属性三个为一组，也可以使用数字来表示文档的权限，对照表如下：
r：4
w: 2
x：1
-：0
同一组（owner/group/others）的三个属性是累加的。
例如，-rwxrwx---表示这个文档的权限为：
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others = --- = 0+0+0 = 0
所以其权限为0770。
#### application_name
**参数说明：**当前连接请求当中，所使用的客户端名称。
该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
在备机请求主机进行日志复制时，如果该参数非空串，那么会被用来作为备机在主机上的流复制槽名字。此时，如果该参数长度超过61个字节，那么流复制槽名字只会截取使用前61个字节的字符。
**取值范围：**字符串，实际查询结果取决于查询所用的客户端或用户设置。
**默认值：**空字符串
#### connection_info
**参数说明：**连接数据库的驱动类型、驱动版本号、当前驱动的部署路径和进程属主用户。
该参数属于USERSET类型参数，属于运维类参数，不建议用户设置。
**取值范围：**字符串。
**默认值：** 空字符串**。**
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 空字符串，表示当前连接数据库的驱动不支持自动设置connection_info参数或应用程序未设置。
- 驱动连接数据库的时候自行拼接的connection_info参数格式如下：
  ```
  {"driver_name":"ODBC","driver_version": "(GaussDB VxxxRxxxCxx build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131 release","driver_path":"/usr/local/lib/psqlodbcw.so","os_user":"omm"}
  ```
  默认显示driver_name和driver_version，driver_path和os_user的显示由用户控制（参见《开发指南》中"应用程序开发教程 \> 基于JDBC开发 \> 连接数据库"章节和"应用程序开发教程 \> 基于ODBC开发 \> Linux下配置数据源"章节）。
  
 
#### backend_version
**参数说明：** 用于CN和CN，CN和DN建立连接时同步连接的版本号，该参数涉及版本号，用户不可以随意设置**。**
该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**取值范围：**整型，0-100000。
#### check_disconnect_query
**参数说明：**当客户端异常断连（如JDBC触发socketTimeout、libpq触发rwtimeout且关闭连接、运行业务过程中客户端进程终止等）后，该参数控制GaussDB服务端语句是否终止执行。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示当客户端异常断连后，GaussDB服务端终止运行对应的语句。
- off：表示当客户端异常断连后，GaussDB服务端不会终止运行对应的语句。
**默认值：**on
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-1111.html#ZH-CN_TOPIC_0000002222151777__zh-cn_topic_0000002099772105_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/caution_3.0-zh-cn.png)
若设置此参数后执行升级，在升级到其他版本前需检查目标版本是否支持该参数。如果不支持，则在升级前需从配置文件中删除该参数。
