EsgynDB支持使用TRAFCI命令行的方式来进行任意SQL的执行和操作,TRAFCI基于JDBC,需要依赖对应版本的JDBC驱动包。trafci支持Linux版本和Windows版本。
EsgynDB是一个分布式的数据库,一般由多个节点组成,小至4节点、6节点,大至上百个节点。EsgynDB组件中的DCS连接组件,负责处理客户端到服务端的各种连接请求。
DCS包括DCSMaster、DCSServer及MXOSRVR。DCSMaster类似于监听器,用于接收客户端的请求,一般在生产环境配置多个,保证高可用,当一个主的DcsMaster失效时,另一个DcsMaster会成为主的DcsMaster。DcsServer在每个节点上均有一个,用于管理并维护当前节点上的MXOSRVR进程。MXOSRVR在每个节点上会有多个,一般根据整个系统的最大并发请求数而定。MXOSRVR在每个节点上的个数是可配置的。
trafci相对于数据库服务端就是一个命令行方式的客户端工具,由于分布式的特点,trafci登录成功后,这个session具体连接到哪个节点上面的哪个MXOSRVR,这个是不确定的,它是由DcsMaster来随机分配的。不过我们可以用以下命令来查看其具体连接到哪个节点的哪个进程。
SQL>show remoteprocess;
REMOTE PROCESS \sbh02.esgyn.cn:0.$Z0000000QPT
[trafodion@sbh02 ~]$ sqps | grep mxo | grep QPT
[$Z0000000L2P] 000,00024282 001 GEN ES--A-- $Z0000000QPT NONE mxosrvr
通过以下命令可以查看到当前trafci连接到sbh02节点上的进程号为24282的MXOSRVR。
在EsgynDB新版本中,支持使用trafci来连接指定节点指定端口