GaussDB(DWS)《DWS之GaussDB kernel jdbc远程执行sql实践》
GaussDB kernel 813 JDBC远程执行sql实践
1 概述
本文档,使用JDBC客户端和集群分离部署的方式,在集群外部通过JDBC连接集群执行sql。如集群环境为主备从,则最少需要3+1台机器,且集群CN节点机器和集群外的机器网络互通。
整体要做三件事,涉及三个文件:
- 将JDBC驱动jar和JDBC工具executetool.class以及JDBC工具配置文件jdbcconfig.properties放在JDBC客户端服务器的自定义目录下
- 在JDBC客户端服务器上,根据放置jar包的实际路径,配置相关环境变量
- 修改集群CN的远程连接安全认证信息
- 根据远端集群的实际信息,配置JDBC工具配置文件
安装部署前置条件:JDBC客户端服务器环境上需要有JAVA,若没有,请先自行安装
2 JDBC客户端服务器环境搭建
备注:本章节操作均使用root用户在集群外的JDBC客户端服务器上完成。
- 上传安装包,进入解压后的安装包目录,如
cd /opt/software/gaussdb
- 解压安装包中*-Jdbc.tar.gz,如 x86 suse包,
tar -zxf GaussDB-8.1.3-SUSE11-x86_64bit-Jdbc.tar.gz
- 创建自定义目录
Mkdir -p /data1/jdbc_all/jdbc_lib
- 将解步骤b压出的jar驱动copy到自定义目录/data1/jdbc_all/jdbc_lib下,如
cd jdbc
cp gsjdbc4.jar /data1/jdbc_all/jdbc_lib
2,添加环境变量
export CLASSPATH=/data1/jdbc_all/jdbc_lib/gsjdbc4.jar:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
- 上传jdbc工具和配置文件到自定义目录下
上传executetool.class到/data1/jdbc_all
上传jdbcconfig.properties到/data1/jdbc_all/jdbc_lib
注.工具请从内部途径获取,感谢理解;
http://3ms.huawei.com/km/groups/2938809/blogs/details/11795337
3 集群认证连接设置
- 为了集群外的JDBC客户端可以直连集群,设置集群GUC参数,添加CN连接认证信息
gs_guc reload -Z coordinator -D /home/data/coordinator -h "host all all {JDBC客户端IP}/32 sha256"
命令示例如下,
gs_guc reload -Z coordinator -D /home/data/coordinator -h "host all all 10.185.179.101/32 sha256"
注:为了测试方便,此处使用sha256,即无认证连接方式
4 JDBC测试工具使用
- 根据远端集群信息,修改properties文件,内容如下,
password={数据库用户密码}
use_boolean=false
hostname={远端集群CN节点IP}
port={CN端口号}
user={数据库用户名}
dbname={数据库名称}
配置示例如下图
注:数据库用户不能为初始化用户,如perfadm,需要是自建用户。
- 使用JDBC工具在远端集群执行sql能力验证
java executetool "drop table if exists test_jdbc;" "create table test_jdbc(id int);" "insert into test_jdbc values(generate_series(1,99));" "select count(*) from test_jdbc;"
执行成功结果如下图,
注,一次执行多个sql语句时,使用成对的双引号括起来,空格隔开,如下
java executetool "sql1;" "sql2;" "sql3;"
- 点赞
- 收藏
- 关注作者
评论(0)