ESGYNDB新版本中使用TRAFCI连接指定MXOSRVR

2022-03-30 00:00:00 多个 连接 指定 节点 连接到

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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

通过以下命令可以查看到当前trafci连接到sbh02节点上的进程号为24282的MXOSRVR。
在EsgynDB新版本中,支持使用trafci来连接指定节点指定端口号的MXOSRVR,使用方法如下,

java -Xmx128m -Dt4jdbc.specifiedServer=sbh02.esgyn.cn:23500 -Djline=no -classpath :/opt/trafodion/esgyndb/trafci/lib/jdbcT4-2.7.0.jar:/opt/trafodion/esgyndb/trafci/lib/jline-2.12.jar:/opt/trafodion/esgyndb/trafci/lib/trafci.jar org.trafodion.ci.UserInterface -r '' -h sbh02.esgyn.cn:23400 -u trafodion -p traf123 -s show_sessionid.sql > show_sessionid.log 
  • 1

上述命令表示使用trafci连接sbh02.esgyn.cn节点上端口号为23500的MXOSRVR。支持连接指定MXOSRVR的好处是方便一些问题的定位,比如验证-query cache是否正常工作。query cache的作用是同一条语句在同一个连接里面多次执行,只有次需要编译,之后编译时间会变的极短。因此我们可以利用trafci指定mxosrvr的方式来用以下语句来查看第二次连接到相同的mxosrvr时是否能查看到query cache信息。

select * from table(querycache('user','local'));
select * from table(querycacheentries('user','local'));


本文链接:https://blog.csdn.net/Post_Yuan/article/details/90768029

相关文章