南大通用GBase8a MPP Cluster集群命令行客户端gccli和gncli的使用参数

GBase 8a数据库集群,在linux提供了命令行工具gccli和gncli。其中gccli连接的是整个集群,其SQL也会分发到所有节点执行;gncli只连接集群某个节点。对应的普通分布表,在gccli里看到的是简单的表名,比如t1,在gncli里则包含了节点分片的名字,比如t1_n3。

日常使用都是用gccli,只有必须处理单个节点数据时,才使用gncli。

gccli 对应/opt/gbase/gcluster/server/bin/gbase
gncli 对应/opt/gbase/gnode/server/bin/gbase

他们是软连接。

连接参数

  • -h 指定连接哪个IP(多个IP用逗号分割)
  • -u 数据库用户名
  • -p 数据库密码
  • -e 直接执行这个SQL
  • -D 指定默认的数据库
  • -E 垂直输出,类似单条\G的效果
  • -c 可以执行hint,不指定时默认是将/* */之间的当作注释自动过滤掉,不发送到服务器。
  • -vvv 输出详细的执行信息,比如执行时间等
  • -N 不输出结果表头,只输出结果
  • -f 如语句执行报错则跳过,继续执行后面SQL
  • -P 指定端口号
  • -q 非缓冲输出。默认gccli会将sql执行结果缓冲到内存,等都执行完毕了再输出到屏幕,减少IO次数。但如果结果集大,会占用大量内存,且前端响应速度相对变慢。
  • -s 减少输出 silent

其中-p参数如果后面紧跟字符则认定为密码,其它参数可以紧跟或者出现空格,比如

-ugbase 和  -u gbase 都是正确的。但建议采用紧跟的方式,以便区分。

-h 支持多个IP实现高可用, 用逗号分割,会从第一个开始连接,如这个IP连接报错,则连接下一个,直到连接成功或都无法连接上报错。

参考 GBase 8a集群V95版本gccli连接时参数设置避免半数节点故障时长时间卡住不返回

执行样例

典型样例

gccli -h192.168.174.161 -ugbase -pgbase20110531 -Dzxvmax

06

批量执行sql文件

用重定向方式执行

用SQL, source文件名的方式执行

-E 垂直输出的效果

如下是对比的输出效果

[gbase@gbase_rh7_001 ~]$ gccli testdb -e"select * from t1 limit 2"  -vvv
--------------
select * from t1 limit 2
--------------

+------+--------+------+------------+--------------------------------+
| id   | name   | dept | birth      | memo                           |
+------+--------+------+------------+--------------------------------+
|    1 | aa     |    1 | 1990-09-09 | 张三的个人建立和备注           |
|    2 | 李四   |    1 | 1980-08-08 | 李四的个人建立和备注           |
+------+--------+------+------------+--------------------------------+
2 rows in set (Elapsed: 00:00:00.01)

Bye
[gbase@gbase_rh7_001 ~]$ gccli testdb -e"select * from t1 limit 2"  -vvv -E
--------------
select * from t1 limit 2
--------------

*************************** 1. row ***************************
   id: 1
 name: aa
 dept: 1
birth: 1990-09-09
 memo: 张三的个人建立和备注
*************************** 2. row ***************************
   id: 2
 name: 李四
 dept: 1
birth: 1980-08-08
 memo: 李四的个人建立和备注
2 rows in set (Elapsed: 00:00:00.02)

Bye
[gbase@gbase_rh7_001 ~]$

单条语句\G的效果

[gbase@gbase_rh7_001 ~]$ gccli testdb -e"select * from t1 limit 2\G"  -vvv
--------------
select * from t1 limit 2
--------------

*************************** 1. row ***************************
   id: 1
 name: aa
 dept: 1
birth: 1990-09-09
 memo: 张三的个人建立和备注
*************************** 2. row ***************************
   id: 2
 name: 李四
 dept: 1
birth: 1980-08-08
 memo: 李四的个人建立和备注
2 rows in set (Elapsed: 00:00:00.01)

Bye
[gbase@gbase_rh7_001 ~]$

-s 减少输出的效果

[gbase@gbase_rh7_001 ~]$ gccli testdb -e"select * from t1 limit 2"
+------+--------+------+------------+--------------------------------+
| id   | name   | dept | birth      | memo                           |
+------+--------+------+------------+--------------------------------+
|    1 | aa     |    1 | 1990-09-09 | 张三的个人建立和备注           |
|    2 | 李四   |    1 | 1980-08-08 | 李四的个人建立和备注           |
+------+--------+------+------------+--------------------------------+
[gbase@gbase_rh7_001 ~]$ gccli testdb -e"select * from t1 limit 2" -s
id      name    dept    birth   memo
1       aa      1       1990-09-09      张三的个人建立和备注
2       李四    1       1980-08-08      李四的个人建立和备注

多IP的高可用效果

GBase 8a gccli 通过 -h 指定多IP的高可用效果

南大通用GBase8a MPP Cluster集群命令行客户端gccli和gncli的使用参数》有1条评论

评论已关闭。