GaussDB(DWS)《DWS之GaussDB kernel jdbc远程执行sql实践》

举报
一剑战八荒 发表于 2022/02/14 12:41:02 2022/02/14
【摘要】 后台使用JDBC连接远端集群执行sql实践;本文提供详细的思路和方法,工具请从内部资源获取,感谢理解

GaussDB kernel 813 JDBC远程执行sql实践

1      概述

本文档,使用JDBC客户端和集群分离部署的方式,在集群外部通过JDBC连接集群执行sql。如集群环境为主备从,则最少需要3+1台机器,且集群CN节点机器和集群外的机器网络互通。

整体要做三件事,涉及三个文件:

  1. JDBC驱动jarJDBC工具executetool.class以及JDBC工具配置文件jdbcconfig.properties放在JDBC客户端服务器的自定义目录下
  2. JDBC客户端服务器上,根据放置jar包的实际路径,配置相关环境变量
  3. 修改集群CN的远程连接安全认证信息
  4. 根据远端集群的实际信息,配置JDBC工具配置文件

安装部署前置条件:JDBC客户端服务器环境上需要有JAVA,若没有,请先自行安装

2      JDBC客户端服务器环境搭建

备注:本章节操作均使用root用户在集群外的JDBC客户端服务器上完成。

  1. 上传安装包,进入解压后的安装包目录,如

cd /opt/software/gaussdb

 

  1. 解压安装包中*-Jdbc.tar.gz,如 x86 suse包,

tar -zxf GaussDB-8.1.3-SUSE11-x86_64bit-Jdbc.tar.gz

 

  1. 创建自定义目录

Mkdir -p /data1/jdbc_all/jdbc_lib

 

  1. 将解步骤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

 

  1. 上传jdbc工具和配置文件到自定义目录下

上传executetool.class/data1/jdbc_all

上传jdbcconfig.properties/data1/jdbc_all/jdbc_lib

 注.工具请从内部途径获取,感谢理解;

http://3ms.huawei.com/km/groups/2938809/blogs/details/11795337

3      集群认证连接设置

  1. 为了集群外的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测试工具使用

  1. 根据远端集群信息,修改properties文件,内容如下,
    password={
    数据库用户密码}
    use_boolean=false
    hostname={
    远端集群CN节点IP}
    port={CN
    端口号}
    user={
    数据库用户名}
    dbname={
    数据库名称}

 

配置示例如下图


 

:数据库用户不能为初始化用户,如perfadm,需要是自建用户。

 

  1. 使用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;"

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。