【国产数据库】GBase学习⑤ - gsql 客户端连接工具

  • gsql介绍
  • gsql使用方式
  • DBeaver客户端工具配置


gsql介绍

GBase 8c 客户端工具是gsql。类似于MySQL的mysql,Oracle的sqlplus。
gsql :客户端连接工具。为用户提供的连接到数据库并进行各种操作和调试的命令行工具。gsql提供连接、元命令等功能。

gsql使用方式

gsql -d dbname -p port <-U user_name> <-h hostip>
 -d 指定要连接到的数据库名称。首次连接可以指定默认数据库postgres。
 -p 指定端口号信息
 -U 指定数据库用户名。缺省值为 gbase
 -h 指定数据库节点所在服务器IP。缺省为当前服务器
 gsql --help 查看详细参数说明

1.本地连接:

[gbase@gbase8c_2 ~]$ gsql -d postgres -p 5432
gsql ((multiple_nodes GBase8cV5 3.0.0B76 build 47948f99) compiled at 2023-02-27 16:04:20 commit 0 last mr 1232 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

multiple_nodes  分布式
3.0.0B76   版本信息

2.远程连接
需要在服务端配置:
对于GBase 8c 分布式集群,须在读写CN上以gbase 用户执行如下命令:

gs_guc reload -Z coordinator -N all -I all -h "host all all 0.0.0.0/0 sha256"
gs_guc reload -Z coordinator -N all -I all -c "password_encryption_type=1"
gs_guc reload -Z coordinator -N all -I all -c "listen_addresses = '*'"

客户端配置:
① 在客户端机器上,上传客户端工具包并解压
② 拷贝数据库安装目录下的bin 目录到客户端主机的安装目录下

scp -r /home/gbase/gbase_package/bin gbase@客户端ip:客户端安装目录

③ 设置客户端环境变量: vi ~/.bashrc 输入如下内容:

export PATH=客户端安装目录/bin:$PATH
export LD_LIBRARY_PATH=客户端安装目录/lib:$LD_LIBRARY_PATH
source ~/.bashrc

3.gsql使用
执行sql语句 \help [某语法]

4.变量特性
gsql提供类似linux shell命令的变量特性

设置变量:  \set varname [value]                    \set vartest 20
清除变量:  \unset varname                          \unset vartest
显示变量值:\echo :varname                          \echo vartest

5.元命令

\d  查看数据库信息
\dt 查看表信息
\dv 查看视图信息
\dn 查看模式信息
\d+ 查看当前库下的表
\d+ 表名  查看表结构
\du+  查看权限
\c postgres gbase  切用户连库
\timing on  打开执行时间
\timing off 关闭
show 参数名   查看参数值
命令自动补齐   TAB

6.问题分析
① 数据库内核执行初始化语句较慢导致的性能问题?
• 可以尝试使用Linux的跟踪命令strace:strace gsql -U …
此时便会在屏幕上打印出数据库的连接过程。
解决方法:
• 连接上数据库后,可以通过 explain performance select version() 语句确定初始化语句执行较慢的原因。
• 由于数据库主节点所在机器的磁盘满或故障
此时SQL语句受影响,无法进行用户认证,导致连接过程挂起,表现为假死。清理数据库主节点的
数据盘空间便可。

② TCP连接创建较慢问题?
同样可以尝试使用Linux的跟踪命令strace
解决方法:
例如,如果长时间停留在:connect(3, {sa_family=AF_INET, sin_port=htons(61052),
sin_addr=inet_addr(“127.0.0.1”)}, 16) = -1 EINPROGRESS (Operation now in progress),
那么说明客户端与数据库端建立物理连接过慢,此时应当检查网络是否存在不稳定、网络吞吐量
太大的问题。

DBeaver客户端工具配置

1.服务端配置:
对于GBase 8c 分布式集群,须在读写CN上以gbase 用户执行如下命令:

gs_guc reload -Z coordinator -N all -I all -h "host all all 0.0.0.0/0 sha256"
#任意IP 任意用户身份
gs_guc reload -Z coordinator -N all -I all -c "password_encryption_type=1"
#采用加密算法,默认为1 
gs_guc reload -Z coordinator -N all -I all -c "listen_addresses = '*'"
#配置监听IP

2.重启数据库

gha_ctl stop all -l dcslist(http://)
gha_ctl start all -l dcslist

3.登录数据库,创建系统管理员用户(sysadmin)

gsql -d dbname -p port -h host_ip
create user name sysadmin password '***';

4.DBeaver配置
DBeaver驱动:

离线导入:数据库-驱动管理器-搜索PostgreSQL-库-添加文件-找到类-确认。
在线下载:窗口-首选项-Maven仓库 之后↑。

在使用DBeaver连接GBase 8c 数据库时,配置的用户需要具有sysadmin权限。
注:sysadmin-系统管理员 createrole-安全管理员 monadmin-监控管理员