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
批量执行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 李四的个人建立和备注
《南大通用GBase8a MPP Cluster集群命令行客户端gccli和gncli的使用参数》有1条评论
评论已关闭。