返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

本地连接
本地通过gsql 工具连接到GBase 8c 数据库。操作步骤如下:
步骤1 以gbase 用户登录数据库节点所在的服务器。
建议分布式架构登录读写CN 节点。
步骤2 连接数据库。
连接命令格式如下:
gsql -d dbname -p port <-U user_name> <-h hostip>

-d 参数指定要连接到的数据库名称。首次连接可以指定生成的默认数据库postgres。

-p 参数指定通过节点哪个端口号连接。可查看安装使用的yml 文件。

-U 参数指定以哪个数据库用户身份连接,权限可能不同。缺省默认为gbase。

-h 参数指定数据库节点所在的服务器IP。缺省默认为当前服务器IP。
例如,以最简便的方式,通过CN 节点连接到postgres 数据库,执行以下命令:
[gbase@gbase8c ~]$ gsql -d postgres -p 5432
连接成功后,系统显示类似如下信息(省略部分信息)

gsql ((multiple_nodes GBase8cV5 3.0.0B…… )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
其中“Non-SSL connection”表示未使用SSL 方式连接数据库;以管理员用户连接,系

GBase 8c V5 安装部署手册(分布式)
南大通用数据技术股份有限公司
31
统显示
“DBNAME=#”

若使用普通用户身份登录和连接数据库,
系统显示
“DBNAME=>”

步骤3 首次登录数据库后,建议修改密码以提高安全性。命令格式如下:
gbase=# ALTER ROLE user_name IDENTIFIED BY '新密码' REPLACE '旧密码';

语法
IF(expr1,expr2,expr3)
函数说明
如果expr1 为TRUE 则IF()的返回值为expr2,如果expr1 取值为FALSE、0 或
NULL,则返回值为expr3。
IF()的返回值规则同CASE 表达式返回值的规则。
示例
示例1:expre1 的值为FALSE,返回值为expr3。
gbase> SELECT IF(FALSE,2,3) FROM dual;
+-------------+
| IF(FALSE,2,3) |
+-------------+
|
3 |
+-------------+
1 row in set
示例2:expre1 的值为TRUE,返回值为expr2。
gbase> SELECT IF(TRUE,'yes','no') FROM dual;
+--------------------+
| IF(TRUE,'yes','no') |
+--------------------+
| yes
|
+--------------------+
1 row in set
示例3:expr1 为表达式,值为TRUE,返回值为expr2。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
677
gbase> SELECT IF(1<2,'no','yes') FROM dual;
+---------------------------------------+
| IF(1<2,'no','yes')
|
+---------------------------------------+
| no
|
+---------------------------------------+
1 row in set
示例4:expr1 为表达式,值不为TRUE,返回值为expr3。
gbase> SELECT IF(1>2,NULL,'no') FROM dual;
+-------------------+
| IF(1>2,NULL,'no') |
+-------------------+
| no
|
+-------------------+
1 row in set

rebalance 命令负责表数据在节点间的重新分布,支持以下功能:
1)数据库提供了3 个级别的数据重分布,分别是实例级、数据库级分布和表级。
用户可以根据不同的场景选择合适的分布级别
2)对于需要大批量表的数据搬移,还提供了分布优先级和并发分布数量来进行更
细粒度的控制。
3)rebalance 命令在任务下发到后台后即返回结果,数据库提供执行过程信息的查
询,
可以按数据表查询开始分布和结束分布的时间、
分布进度、
分布优先级等信息,
用户可以通过访问gclusterdb.rebalancing_status 进行查看。
4)提供取消和暂停功能,对后台任务进行控制。
说明

在coordinator 上使用gccli 执行rebalance 命令后,rebalance 任务会被加入
到gclusterdb.rebalancing_status 集群表中。coordinator 集群会从
gclusterdb.rebalancing_status









gcluster_rebalancing_concurrent_count 个表进行rebalance。

coordinator 集群中只会有一个coordinator 节点负责后台执行表rebalance,
不支持多个coordinator 并行执行rebalance 命令。

rebalance 任务执行状态需要从gclusterdb.rebalancing_status 表中查询。

不建议对gclusterdb.rebalancing_status 表做ddl/dml 操作。

只支持express 引擎表的rebalance
一个表在rebalance 时有5 个状态,
分别是:
STARTING、
RUNNING、
COMPLETED、
PAUSED、CANCELED。这5 种状态转换如下图所示:

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
351
图4- 2 5 种状态转换图
说明

表处于STARTING 状态时,Coordinator 后台线程开始执行表的rebalance 操作,表状
态转换成RUNNING。

表处于PAUSED 状态时,对这个表执行continue rebalance 操作,表状态转换成
RUNNING。

表处于RUNNING 状态时,coordinator 后台线程执行表的rebalance 操作失败,表状态
转换成STARTING。

表处于RUNNING 状态时,coordinator 后台线程完成了表的rebalance 操作,表状态转
换成COMPLETED。