连接设置
本文将介绍与设置客户端和服务器连接方式相关的参数。
listen_addresses
参数说明: 声明服务器侦听客户端的TCP/IP地址。
该参数指定Vastbase服务器使用哪些IP地址进行侦听,如IPV4或IPV6(若支持)。服务器主机上可能存在多个网卡,每个网卡可以绑定多个IP地址,该参数的作用是指定Vastbase实际绑定的一个或多个IP地址。而客户端则可以通过该参数中指定的IP地址来连接Vastbase或者给Vastbase发送请求。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围:
主机名或IP地址,多个值之间用英文逗号分隔。
星号“*”或“0.0.0.0”表示侦听所有IP地址。配置侦听所有IP地址存在安全风险,不推荐用户使用。必须与有效地址结合使用(比如本地IP等),否则,可能造成Build失败的问题。同时,主备环境下配置为“*”或“0.0.0.0”时,主节点数据库路径下postgresql.conf文件中的localport端口号不能为数据库dataPortBase+1,否则会导致数据库无法启动。
若存在非法IP时,进程启动阶段会报错退出。
默认值: 数据库实例安装好后,根据$PGDATA/postgresql.conf配置文件中不同实例的IP地址配置不同默认值。DN(数据库节点)的默认参数值为:listen_addresses = 'localhost'。
local_bind_address
参数说明: 声明当前节点连接Vastbase其他节点绑定的本地IP地址。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
默认值: 数据库实例安装好后,根据XML配置文件中不同实例的IP地址配置不同默认值。DN的默认参数值为:local_bind_address = 'x.x.x.x'。
port
参数说明: Vastbase服务侦听的TCP端口号。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。
取值范围: 整型,1~65535
设置端口号时,请设置一个未被占用的端口号。设置多个实例的端口号,不可冲突。
1~1023为操作系统保留端口号,请不要使用。
通过配置文件安装数据库实例时,配置文件中的端口号需要注意通信矩阵预留端口。如:DN还需保留dataPortBase+1作为内部工具使用端口,保留dataPortBase+6作为流引擎消息队列通信端口等。故数据库实例安装阶段,port最大值为:DN可设置65529,同时需要保证端口号不冲突。
通过vb_guc set的方式修改了port值之后,需要手动修改下静态配置文件$PGDATA/postgresql.conf里面的端口信息后,才可以生效。
默认值: 5432(实际值由安装时的配置文件指定)
max_connections
参数说明: 允许和数据库连接的最大并发连接数。此参数会影响Vastbase的并发能力。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型。最小值为10(要大于max_wal_senders),理论最大值为262143,实际最大值为动态值,计算公式为262143 - job_queue_processes - autovacuum_max_workers - AUXILIARY_BACKENDS - AV_LAUNCHER_PROCS - max_inner_tool_connections
。job_queue_processes、autovacuum_max_workers和max_inner_tool_connections的值取决于对应GUC参数的设置。AUXILIARY_BACKENDS为预留辅助线程数,固定为20。AV_LAUNCHER_PROCS为预留autovacuum的lancher线程数,固定为2。
在资源池化模式下,最小值为10(要大于max_wal_senders),理论最大值为16000,实际最大值动态值计算公式为16380 - job_queue_processes - autovacuum_max_workers - AUXILIARY_BACKENDS - AV_LAUNCHER_PROCS - max_undo_workers - thread_pool_stream_proc_num - NUM_CMAGENT_PROCS - NUM_AUXILIARY_PROCS - NUM_DCF_CALLBACK_PROCS - NUM_DMS_CALLBACK_PROCS - (max_prepared_xacts * NUM_TWOPHASE_PARTITIONS)”
。其中job_queue_processes、autovacuum_max_workers、AUXILIARY_BACKENDS、AV_LAUNCHER_PROCS与非资源池化场景取值一致,max_undo_workers、thread_pool_stream_proc_num(stream_thread_num * stream_proc_ratio)、NUM_DCF_CALLBACK_PROCS(enable_dcf=off时为0)、max_prepared_xacts、NUM_TWOPHASE_PARTITIONS的值取决于对应GUC参数的设置、NUM_CMAGENT_PROCS为预留cm线程数,固定为10。NUM_AUXILIARY_PROCS为预留内核auxiliary线程数(当前版本为70)与group_num的和。NUM_DMS_CALLBACK_PROCS 为ss_interconnect_channel_count、ss_interconnect_url与ss_work_thread_count之和。
默认值:
- 200:编译安装数据库或极简安装数据库的情况下。
- 5000:使用om安装数据库的情况下。
如果该默认值超过内核支持的最大值(在执行vb_initdb的时候判断),系统会提示错误。
设置建议:
数据库主节点中此参数建议保持默认值。数据库节点中此参数建议设置为数据库主节点的个数乘以数据库主节点中此参数的值。
增大这个参数可能导致Vastbase要求更多的SystemV共享内存或者信号量,可能超过操作系统缺省配置的最大值。这种情况下,请酌情对数值加以调整。
max_inner_tool_connections
参数说明: 允许和数据库连接的工具的最大并发连接数。此参数会影响Vastbase的工具连接并发能力。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型,最小值为1,最大值为262143。
默认值: 数据库节点为50。如果该默认值超过内核支持的最大值(在执行vb_initdb的时候判断),系统会提示错误。
设置建议:
数据库主节点中此参数建议保持默认值。
增大此参数可能导致Vastbase要求更多的SystemV共享内存或者信号量,可能超过操作系统缺省配置的最大值。这种情况下,请酌情对数值加以调整。
sysadmin_reserved_connections
参数说明: 为管理员用户预留的最少连接数,不建议设置过大。该参数和max_connections参数配合使用,管理员用户的最大连接数等于max_connections + sysadmin_reserved_connections。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型,最小值为0,最大值为MIN(262143, max_connections),max_connections的计算方法见上文。
默认值: 3
启用线程池功能时,若线程池占满将形成处理瓶颈,导致管理员预留连接无法正常建立,作为逃生手段,此时可使用vsql通过主端口+1端口号连入,清理无用会话,即可正常连入。
unix_socket_directory
参数说明: 设置Vastbase服务器侦听客户端连接的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
默认值: 0777
在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参数格式如下:
{"driver_name":"ODBC","driver_version": "(Vastbase X.X.X build 13b34b53) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131 debug","driver_path":"/usr/local/lib/psqlodbcw.so","os_user":"omm"}
默认显示driver_name和driver_version,driver_path和os_user的显示由用户控制。
tcp_user_timeout
参数说明:在支持TCP_USER_TIMEOUT套接字选项的操作系统上,设置Vastbase在发送数据时,指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的最大时长。
该参数属于SIGHUP类型参数,请参考重设参数表1中对应设置方法进行设置。
如果操作系统不支持TCP_USER_TIMEOUT选项,这个参数的值将不生效,默认为0。
在通过Unix域套接字进行连接的操作系统上,这个参数将被忽略。
取值范围: 0-3600000,单位为ms。其中0表示跟随操作系统设置。
默认值: 0
不同操作系统内核下,这个参数生效结果将不同:
- aarch64 EulerOS(Linux内核版本:4.19):超时时间即为该参数设置值。
- x86 Euler2.5(Linux内核版本:3.10):超时时间不是该参数设置值,而是不同区间的最大值,即超时时间取值为:tcp_user_timeout设置值所处“Linux TCP重传总耗时”区间的上限最大值。例如:
tcp_user_timeout=40000
时,重传总耗时为51秒。
表 1 x86 Euler2.5(Linux内核版本:3.10)tcp_user_timeout参数取值示意
init_connect
功能描述: 初始化每个连接时执行的SQL语句。
该参数属于internal类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: string
默认值:
interactive_timeout
功能描述: 设置服务器处于非活动状态最大持续时间,当超过此参数值时,服务器将关闭交互式连接。
该参数属于internal类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型,取值范围:为1 ~ 31536000。
默认值: 28800
net_buffer_length
功能描述: 网络缓冲区的默认大小。表示缓冲区的默认大小,缓冲区的大小可以动态的扩张到max_allowed_packet,并在SQL语句结束后还原。
该参数属于USERSET类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型,取值范围:为[1024,1048576]。
默认值: 16384
net_write_timeout
功能描述: 表示在等待写入该秒数后,服务端会将其中止。
该参数属于USERSET类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型,取值范围:为[1, 31536000]。
默认值: 60
max_allowed_packet
功能描述: 表示数据包的大小上限(字节)。
该参数属于USERSET类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型,取值范围:为[1024, 1073741824]。
默认值: 4194304
wait_timeout
功能描述: 表示非交互式连接在持续无活动本参指定秒数后,服务端会将其关闭。
该参数属于internal类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型,[1, 31536000]。
默认值: 28800
comm_shm
功能描述: 启用libcomm-shm连接。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 布尔型
ON:表示启用libcomm-shm连接开关。
OFF:表示不启用启用libcomm-shm连接开关。
默认值: ON
enable_dolphin_proto
参数说明: 是否开启dolphin数据库协议功能。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 布尔型
- on:表示开启dolphin数据库协议。
- off:表示关闭dolphin数据库协议。
默认值: off
dolphin_server_port
参数说明: dophin协议插件监听的TCP端口号。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 整型,1024~65535
默认值: 3308
- 当加载了dophin插件,并且开启了dolphin数据库协议后,可以使用此功能。
- 设置端口号时,请设置一个未被占用的端口号,不能同Vastbase数据库协议的端口号冲突。
vastbase_login_info
参数说明: 控制用户登录时是否记录其访问信息,并在成功登录后显示访问历史信息。
该参数属于SIGHUP类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 布尔型
- on:记录访问信息。
- off:不记录访问信息。
默认值: off
light_comm
参数说明: 指定服务器是否使用轻量通信方式。该参数指定服务器是否使用基于轻量锁和非阻塞socket的通信方式。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 布尔型
- on:表示使用轻量通信方式。
- off:表示不使用轻量通信方式。
默认值: off
comm_shm
参数说明: 控制是否开启共享内存连接,共享内存连接是指使用共享内存的一块区域作为客户端和数据库服务器之间通信的通道。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 布尔型
- on:开启共享内存连接。
- off:关闭共享内存连接。
默认值: off