返回首页

gbase数据、南大通用产品文档:GBase8s本地连接

更新日期:2024年09月11日

本地连接是同一台计算机上客户机和数据库服务器之间的连接。以下主题描述了不同的本
地连接类型。
共享内存连接 (UNIX™)
共享内存连接使用共享内存的一块区域作为客户机和数据库服务器相互通信所通过的通
道。客户机不能与数据库服务器建立多个共享内存连接。
下图说明了共享内存连接。
图: 通过共享内存连接进行的客户机应用程序和数据库服务器通信


共享内存提供对数据库服务器的快速访问,但是它会引起一些安全性方面的风险。错误或
恶意的应用程序可能删除或查看其自己的或其他本地用户的消息缓冲区。 如果客户机应
用程序执行显式内存寻址或过度索引数据数组,那么共享内存通信也容易受到编程错误的
影响。如果使用的是网络通信或流管道,那么这些错误不会影响数据库服务器。
共享内存连接的示例
下图显示名为 river 的计算机上的共享内存连接。
图: 客户机应用程序与名为 river_shm 的数据库服务器之间的共享内存连接。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 30 -

此安装的 onconfig 文件包含以下行:
DBSERVERNAME river_shm
此安装的 sqlhosts 文件包含以下行:
#dbservername nettype hostname servicename options
river_shm onipcshm river rivershm
客户机应用程序将连接到使用以下语句的此数据库服务器:
CONNECT TO '@river_shm'
对于共享内存连接,无需网络配置文件中的任何条目。对 sqlhosts 文件的 hostname
和 servicename 字段使用任意值。
流管道连接(UNIX 和 Linux™)
流管道是 UNIX™ 进程间通信 (IPC) 设施,该设施允许同一计算机上的进程可以互相通
信。
流管道连接有下列优势:

与共享内存连接不同,流管道不会引起被其他显式地访问共享内存的相同部分的
程序覆盖或读取的安全性风险。

与共享内存连接不同,流管道连接允许同处一台计算机的数据库服务器之间有分
布式事务。
流管道连接有下列劣势:

在一些计算机上,流管道连接可能比共享内存连接慢。

流管道并不可用于所有平台。

当您将共享内存或流管道用于客户机/服务器通信时,hostname 条目被忽略。
本地回送连接
同一台计算机上客户机应用程序和数据库服务器之间的网络连接称为本地回送连接。 所
用的网络工具是相同的,就像客户机应用程序和数据库服务器位于不同的计算机上一样。
您可以进行本地回送连接,条件是已装备了您的计算机来处理网络事务。 本地回送连接
不如共享内存连接快,但它们不会引起共享内存的安全性风险。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 31 -
在本地回送连接中,数据看上去是从客户机应用程序传出到网络,然后再次传回数据库服
务器。内部连接进程将直接在客户机和数据库服务器之间发送信息,而不会在网络上向外
传输该信息。
本地回送连接的示例
下图显示了使用套接字和 TCP/IP 的本地回送连接。
图: 名为 river 的计算机上客户机与名为 river_soc 的数据库服务器之间的本地回送连接。

此安装的 sqlhosts 文件包含以下行:
#dbservername nettype hostname servicename options
river_soc onsoctcp river riverol
如果网络连接使用 TLI 来代替套接字,那么仅本例中的 nettype 条目将更改。在那种情况
下,nettype 条目是 ontlitcp 而不是 onsoctcp。
此安装的 onconfig 文件包含以下行:
DBSERVERNAME river_soc
此示例假定 river 的条目在 hosts 文件中,而 riverol 的条目在 services 文件中。

gnode 注册机制
gcware 分离后,可以通过参数控制开启gnode 向gcware 注册,使gcware 通过注册
方式监控gnode 状态。注册信息包括:

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
158

gnode 所属的vcid

gnode 节点注册时需要全局一致性的参数,当前只涉及以下3 个参数:
gbase_segment_size
gbase_compression_str_method、
gbase_compression_num_method

gnode 节点与gcware 连接的sessionid 与nodeid 的对应关系
以上注册信息用于:
1.检测同一vc 内,gnode 的全局一致性参数是否一致,该功能受参数控制。
gcware 无条件保留了第一个注册的gnode 全局一致性参数,
后续gnode 注册时提供
的全局一致性参数全部与gcware 保留的全局一致性参数进行对比,对比一致,该
gnode 注册成功,对比不一致,直接退出,gcware 认为该gnode 不存在。参数检测
情况可以在gnode 的system.log 和gcware 的gcware.log 中保存。
2.通过注册的sessionid 对应session 的心跳保持机制跟踪gnode 节点状态,
该功能受
参数控制。
如果心跳中断,
gcware 感知到session timeout 后设置该gnode 状态异常。
3.注册信息在日志中会有记录。
gnode 的system 日志会记录gcware 返回的全局一致性参数信息;如果gcware 全局
一致性参数检测不一致,会将参数信息记录到gcware 节点的gcware.log 中
控制参数

gnode 配置文件gbase_8a_gbase.cnf

enable_node_regist
是否启用注册机制,默认为0 表示不启用,为1 表示启用。

gbase_check_param_str
参数一致性检测需要检测的参数,默认值为:
gbase_segment_size%gbse_compression_str_method%gbase_compression_num_metho
d
说明
enable_node_regist 为1 时,gnode 启动才会进行一致性检测读取
gbase_check_param_str 中的内容。对于老版本升级上来的情况,默认
不启用注册机制,如需启用,需要手动填写这两个参数。

gcware 配置文件gcware.conf

enable_node_regist

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
159
是否启用注册机制,
默认值为0不启用,
设置为1时启用。
启用后gnode需要向gcware
注册,gcware 才认为gnode 上线,反之gcware 认为gnode 离线。当gcware 开启该
参数后,所有vc 下的gnode 都需要向gcware 注册。

enable_check_param
是否启用参数一致性检测机制,默认值为0 不启用,设置为1 时表示启用。

gcluster 配置文件gbase_8a_gcluster.cnf

enable_node_regist
gcluster 执行sql 失败返回lost connection 时,
gcluster 是否设置gnode 节点服务状态
为离线。默认值为0,会设置gnode 节点服务状态为离线,当设置为1 时,不会设
置gnode 节点服务状态为离线。

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
160
注意
默认gcware 通过注册机制监控gnode 状态未开启,gnode 状态检测仍然使
用原来的机制:
通过定时检测、执行gcadmin 和执行sql 是否成功来检测gnode 状态
如果需要开启gnode 注册机制,参数设定上需要注意:gnode、gcware 和
gcluster 都有各自的开启注册机制的参数,各自有各自的含义,需要正确搭配
开启才有意义。
注册机制开启时的参数搭配需注意:
1)可以gnode、gcluster、gcware 的enable_node_regist 同时开启
2)可以选择gnode 和gcware 的enable_node_regist 同时开启,开启后可选择
是否开启gcware 的enable_check_param;
3)可以选择gcluster 和gcware 的enable_node_regist 同时开启
单独开启单一服务的enable_node_regist 无意义,如gnode 注册机制参数打开
后才会有注册信息存在,
gcware 的注册机制参数开启和一致性检查才有意义,
如果gnode 注册机制关闭,gcware 注册机制和一致性检查打开无意义。反之
亦然。
gnode 如果开启了一致性检测机制后修改全局一致性参数,
需要vc 内所有
gnode 停止进程修改。
gcadmin createvc 和gcadmin distribution 命令也会对vc 内所有gnode 进行
全局一致性参数检测。
gcware 对gnode 的session 心跳检测超时时间默认是election_timeout*20,
单位为秒,election_timeout 在gcware.conf 中配置。心跳超时时间也可以在
gnode 配置文件cluster_common.conf 的datanode 模块下sessiontimeout 设置,
不能小于6s。

集群环境描述:
Coordinator 节点:172.168.83.11,172.168.83.12,172.168.83.13
Data 节点:
vc1:172.168.83.11,172.168.83.12
vc2:172.168.83.13,172.168.83.14
待扩容的coordinator 节点:172.168.83.15
待扩容到vc1 的data 节点IP:172.168.83.15,172.168.83.16