连接设置
介绍设置客户端和服务器连接方式相关的参数。
listen_addresses
参数说明:声明服务器侦听客户端的TCP/IP地址。
该参数指定GaussDB服务器使用哪些IP地址进行侦听,如IPV4。服务器主机上可能存在多个网卡,每个网卡可以绑定多个IP地址,该参数就是控制GaussDB绑定在哪个或者哪几个IP地址上。而客户端则可以通过该参数中指定的IP地址来连接GaussDB或者给GaussDB发送请求。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:
- 主机名或IP地址,多个值之间用英文逗号分隔。
- 星号“*”或“0.0.0.0”表示侦听所有IP地址。配置侦听所有IP地址存在安全风险,不推荐用户使用。必须与有效地址结合使用(比如本地IP等),否则,可能造成Build失败的问题。同时,主备环境下配置为“\*”或“0.0.0.0”时,主节点数据库路径下postgresql.conf文件中的localport端口号不能为数据库dataPortBase+1,否则会导致数据库无法启动。
- 置空则服务器不会侦听任何IP地址,这种情况下,只有UNIX域套接字可以用于连接数据库。
默认值:数据库实例安装好后,根据public_cloud.conf配置文件中不同实例的IP地址配置不同默认值。DN的默认参数值为:listen_addresses = 'data.net网卡对应的IP地址'。
public_cloud.conf文件保存的网卡信息,包括:mgr.net(管理网卡)、data.net(数据网卡)、virtual.net(虚拟网卡)。
local_bind_address
参数说明:声明当前节点连接数据库其他节点绑定的本地IP地址。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
默认值:数据库实例安装好后,根据public_cloud.conf配置文件中不同实例的IP地址配置不同默认值。DN的默认参数值为:local_bind_address = 'data.net网卡对应的IP地址'。
public_cloud.conf文件保存的网卡信息,包括:mgr.net(管理网卡)、data.net(数据网卡)、virtual.net(虚拟网卡)
port
参数说明:GaussDB服务侦听的TCP端口号。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。
取值范围:整型,1~65535
- 设置端口号时,请设置一个未被占用的端口号。设置多个实例的端口号,不可冲突。
- 1~1023为操作系统保留端口号,请不要使用。
- 通过配置文件安装数据库实例时,配置文件中的端口号需要注意通信矩阵预留端口。如:DN还需保留dataPortBase+1作为内部工具使用端口,保留dataPortBase+6作为流引擎(由于规格变更,当前版本已经不再支持本特性,请不要使用)消息队列通信端口等。故数据库实例安装阶段,port最大值为:DN可设置65529,同时需要保证端口号不冲突。
默认值:5432(实际值由安装时的配置文件指定)
max_connections
参数说明:允许和数据库连接的最大并发连接数。此参数会影响数据库的并发能力。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型。最小值为10(要大于max_wal_senders),理论最大值为262143,实际最大值为动态值,计算公式为“262143 - job_queue_processes - autovacuum_max_workers - AUXILIARY_BACKENDS - AV_LAUNCHER_PROCS - max_inner_tool_connections - min(max(newValue/4,64),1024)”,job_queue_processes、autovacuum_max_workers和max_inner_tool_connections的值取决于对应GUC参数的设置,AUXILIARY_BACKENDS为预留辅助线程数固定为20,AV_LAUNCHER_PROCS为预留autovacuum的launcher线程数固定为2,min(max(newValue/4,64),1024)公式中newValue为新设置的值。
在不同实例的内存规格下,强制该参数取值范围如下:
内存规格 |
DN参数取值范围 |
---|---|
< 32GB |
[10, 100] |
[32GB, 64GB) |
[10, 200] |
[64GB, 128GB) |
[10, 2048] |
[128GB, 256GB) |
[10, 5000] |
[256GB, 480GB) |
[10, 11000] |
[480GB, 512GB) |
[10, 24000] |
[512GB, 640GB) |
[10, 25000] |
[640GB, 768GB) |
[10, 34000] |
[768GB, 1024GB) |
[10, 40000] |
[1024GB, 1536GB) |
[10, 55000] |
[1536GB, 2048GB) |
[10, 85000] |
>= 2048GB |
[10, 110000] |
默认值:
55000(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);40000(96核CPU/768G内存);25000(64核CPU/512G内存);24000(60核CPU/480G内存);11000(32核CPU/256G内存);5000(16核CPU/128G内存);2048(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”。
- 对于管理员用户的连接数限制会略超过max_connections设置,目的是为了让管理员在连接被普通用户占满后仍可以连接上数据库,再超过一定范围(sysadmin_reserved_connections参数)后才会报错。即管理员用户的最大连接数等于max_connections + sysadmin_reserved_connections。
- 对于普通用户来说,由于内部作业也会使用一些连接,因此会略小于max_connections,具体值取决于内部连接个数。
max_inner_tool_connections
参数说明:允许和数据库连接的工具的最大并发连接数。此参数会影响GaussDB的工具连接并发能力。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为MIN(262143, max_connections),max_connections的计算方法见上文。
默认值:数据库节点为50。如果该默认值超过内核支持的最大值(在执行gs_initdb的时候判断),系统会提示错误。
设置建议:
数据库主节点中此参数建议保持默认值。
增大此参数可能导致GaussDB要求更多的SystemV共享内存或者信号量,可能超过操作系统缺省配置的最大值。这种情况下,请酌情对数值加以调整。
sysadmin_reserved_connections
参数说明:为管理员用户预留的最少连接数,不建议设置过大。该参数和max_connections参数配合使用,管理员用户的最大连接数等于max_connections + sysadmin_reserved_connections。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为0,最大值为MIN(262143, max_connections),max_connections的计算方法见上文。
默认值:3
注意:当启用线程池功能时,若线程池占满将形成处理瓶颈,导致管理员预留连接无法正常建立;作为逃生手段,此时可使用gsql通过主端口+1端口号连入,清理无用会话,即可正常连入。
unix_socket_directory
参数说明:设置GaussDB服务器侦听客户端连接的UNIX域套接字目录。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
该参数的长度限制于操作系统的长度,超过该限制将会导致Unix-domain socket path "xxx" is too long的问题。
取值范围:字符串
默认值:空字符串(实际值由安装时配置文件指定)
unix_socket_group
参数说明:设置UNIX域套接字的所属组(套接字的所属用户总是启动服务器的用户)。可以与选项unix_socket_permissions一起用于对套接字进行访问控制。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串,其中空字符串表示当前用户的缺省组。
默认值:空字符串
unix_socket_permissions
参数说明:设置UNIX域套接字的访问权限。
UNIX域套接字使用普通的UNIX文件系统权限集。这个参数的值应该是数值的格式(chmod和umask命令可接受的格式)。如果使用自定义的八进制格式,数字必须以0开头。
建议设置为0770(只有当前连接数据库的用户和同组的人可以访问)或者0700(只有当前连接数据库的用户自己可以访问,同组或者其他人都没有权限)。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:0000-0777
默认值:0700
在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中对应设置方法进行设置。
在备机请求主机进行日志复制时,如果该参数非空串,那么会被用来作为备机在主机上的流复制槽名字。此时,如果该参数长度超过61个字节,那么流复制槽名字只会截取使用前61个字节的字符。
取值范围:字符串。
默认值:空字符串(连接到后端的应用名,以实际安装为准)
connection_info
参数说明:连接数据库的驱动类型、驱动版本号、当前驱动的部署路径和进程属主用户。
该参数属于USERSET类型参数,属于运维类参数,不建议用户设置。
取值范围:字符串。
默认值:空字符串。
- 空字符串,表示当前连接数据库的驱动不支持自动设置connection_info参数或应用程序未设置。
- 驱动连接数据库的时候自行拼接的connection_info参数格式如下:
1
{"driver_name":"ODBC","driver_version": "(GaussDB Kernel 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的显示由用户控制。
check_disconnect_query
参数说明:当客户端异常断连(如JDBC触发socketTimeout、libpq触发rwtimeout且关闭连接、运行业务过程中客户端进程终止等)后,该参数控制GaussDB服务端语句是否终止执行。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示当客户端异常断连后,GaussDB服务端终止运行对应的语句。
- off:表示当客户端异常断连后,GaussDB服务端不会终止运行对应的语句。
默认值:on
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
若设置此参数后执行升级,在升级到其他版本前需检查目标版本是否支持该参数。如果不支持,则在升级前需从配置文件中删除该参数。