返回首页

gbase数据、南大通用产品文档:GBase8sSELECT 语句的输出

更新日期:2024年09月11日

虽然在所有GBase 8s 产品中语法相同,但是结果输出的格式和显示取决于应用程序。本章
和编写高级 SELECT 语句中的示例如同您在 DB-Access 中使用“交互式查询语言”选项
时那样显示 SELECT 语句及输出。
大对象数据类型的输出
当发出包含大对象的 SELECT 语句时,DB-Access 按如下所示显示结果:

对于 TEXT 列或 CLOB 列,显示列的内容。

对于 BYTE 列,显示词 而不是实际值。

对于 BLOB 列,显示词 而不是实际值。

用户定义的数据类型的输出
DB-Access 使用特殊约定来显示包含复杂或不透明数据类型的列的输出。有关这些数据类
型的更多信息,请参阅《GBase 8s 数据库设计和实现指南》。

非缺省代码集的输出
可以发出查询 NCHAR 列而不是 CHAR 列,
或者 NVARCHAR 列而不是 VARCHAR 列
的 SELECT 语句。

 单实例升级多实例
步骤:升级-->扩容-->多实例numa 绑定[可选]
第一步:升级
升级语法无变化,升级的原集群必须是952 及952 以上的版本。
./gcinstall.py --silent=demo.options –U
升级命令执行成功后需在各服务器再次执行一遍SetSysEnv.py 进行环境变
量配置:python SetSysEnv.py --installPrefix=/opt --dbaUser=gbase
集群升级,gcwareHost 必须指定且值必须为旧版本gcware 节点。
集群升级,IPV4 不能指定gcwareHostNodeID ;非IPV4 必须指定
gcwareHostNodeID 且值必须为已有gcware 的nodeid。
说明:
非IPV4 指定gcwareHostNodeID,可以到gcware/config 目录下查看
gcware.conf,
里面有nodeid。
Totem 下的nodeid 是gcwarehostnodeid,
gcware





南大通用数据技术股份有限公司
41/44
下的nodeid 是coordinatehostnodeid。
第二步:扩容,使用数据库管理员用户(如:gbase)执行。
给新增加的多实例节点安装集群软件
./gcinstall.py --silent=demo.options --license_file=gbase.lic
demo.options
需修改:添加
dataHost ,填写当前已存在的
existCoordinateHost
、existDataHost
、existGcwareHost ,注释
#coordinateHost

#coordinateHostNodeID

#gcwareHost

#gcwareHostNodeID
创建distribution
gcadmin distribution gcChangeInfo.xml p 1 d 1
生成新的hashmap
gbase> initnodedatamap;
数据重分布
下面的rebalance 参数根据需要重分布的数据量进行灵活设置
gbase> set global gcluster_rebalancing_concurrent_count=0;
gbase> rebalance instance;
gbase> set global gcluster_rebalancing_concurrent_count=3;
gbase> select * from gclusterdb.rebalancing_status;
删除旧的hashmap
gbase> refreshnodedatamap drop 1;
删除旧的distribution
[gbase@pst_w61 ~]$ gcadmin rmdistribution 1;
第三步:多实例numa 绑定[可选]
根据实际需要可选择是否绑定numa 节点,绑定方式参考2.3 章节NUMA 绑
定。
修改多实例下的gnode/server/bin/gcluster_services 文件后重启集群服
务。
注意:
单实例升级多实例版本中扩容步骤可能出现的问题:
./gcinstall.py --silent=demo.osptions --license_file=20210323.lic





南大通用数据技术股份有限公司
42/44
执行完后,多实例的数据节点下没有license 文件,重新执行./License 导
入也没有该文件,需要手动拷贝过去后启动gbase 服务
 多实例升级多实例
升级语法无变化
 自动回退
单实例升级多实例或多实例升级多实例过程中发生错误,升级失败后都
会自动回退,无需人工干预。
 手工回退
要求回退前集群可用。回退语法如下:
切换到gcinstall 目录下
python Restore.py --silent=demo.options –backupFile= --
backupGcwareFile=
注:
如果是多实例回退到单实例,要求升级后没有对集群进行过扩容缩容操作。

升级程序在升级前备份原集群重要文件,如系统表、环境变量等,用户数据
不备份。如果原集群是多实例,备份文件会带多实例标识,回退程序会通过读取
备份文件来自动判断回退目标是单实例还是多实例进行回退。

AES_DECRYPT
函数说明
AES_DECRYPT 是AES_DECRYPT()的解密函数。
示例
gbase> set @pass=AES_ENCRYPT('hello,world','key');
Query OK, 0 rows affected (Elapsed: 00:00:00.09)
gbase> select char_length(@pass);
+--------------------+
| char_length(@pass) |
+--------------------+
|
16 |
+--------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> select AES_DECRYPT(@pass,'key');
+--------------------------+
| AES_DECRYPT(@pass,'key') |
+--------------------------+
| hello,world
|
+--------------------------+
1 row in set (Elapsed: 00:00:00.00)