返回首页

gbase数据、南大通用产品文档:GBase8aRHEL7 启动cgroup 报错

更新日期:2024年09月11日

问题现象
RHEL7 启动cgroup 报错Filed to start cgconfig.service:Unit not found。
处理步骤
步骤1
检查以下安装包是否安装,如缺少请安装。
libcgroup-0.41-8.el7.x86_64.rpm
libcgroup-tools-0.41-8.el7.x86_64.rpm
步骤2
安装后设置cgroup 服务开机启动。
systemctl enable cgconfig.service
步骤3
启动cgconfig 服务:
systemctl start cgconfig.service

您可使用 sqlda 结构来处理 INSERT...VALUES 语句。
要使用 sqlda 结构来处理 INSERT 中的输入参数:

1. 声明变量来保存 sqlda 的地址。
2. 准备 INSERT 语句(以 PREPARE 语句),并给它一个语句标识符。

使用 DESCRIBE...INTO 语句来执行两项任务:
a)
分配 sqlda 结构。将分配了的结构的地址存储在您声明的sqlda
指针中。
b)
以 DESCRIBE...INTO 语句来确定表中列的数目和数据类型。
DESCRIBE 语句为列列表的每一项填充 sqlvar_struct 结构。
3. 对于每一列,检测 sqlda 的 sqltype 和 sqllen 字段,来确定需
要为该数据分配的内存的数量。
保存存储在主变量中的 sqld 字段中的列的数目。
以 C 语言语句将列设置为它们的值,其设置 sqlda 的 sqlvar_struct 结构中的恰当
的 sqldata 字段。列值必须与它的相关联的列的数据类型相兼容。如果您插入空值,请务
必将恰当的 sqlind 字段设置为包含 -1 的指示符变量的地址。
执行 INSERT 语句来将该值插入至数据库内。
4. 释放分配给 sqldata 字段和 sqlda 结构的内存。

执行简单的插入
下列步骤该如如何以 sqlda 结构执行简单的 INSERT 语句:
(以 PREPARE 语句)准备 INSERT 语句,并给它一个语句标识符。
以 C 语言语句将这些列设置为它们的值,其设置 sqlda 的 sqlvar_struct 结构中恰
当的 sqldata 字段。
以 EXECUTE...USING DESCRIPTOR 语句执行 INSERT 语句。

这些步骤基本上与处理 SELECT 语句的未知的选择列表的那些步骤相同。由于该语
句不是 SELECT 语句,因此,主要的差异在于 INSERT 不需要游标。
执行与游标相关联的 INSERT
您还可使用 sqlda 结构来处理与插入游标相关联的 INSERT。在此情况下,您不以

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 587 -
EXECUTE...USING DESCRIPTOR 语句来执行该语句。
反而,
您必须声明并打开插入游标,
并以 PUT...USING DESCRIPTOR 语句执行该插入游标,如下:
准备 INSERT 语句,并以 DECLARE 语句将它与插入游标相关联。所有的多行
INSERT 语句都必须有声明了的插入游标。
以 OPEN 语句为 INSERT 语句创建该游标。
以 PUT 语句以及它的 USING DESCRIPTOR 子句将第一组列值插入至缓冲区内。

此 PUT 语句之后,存储在指定的 sqlda 结构中的列值被存储在插入缓冲区中。在循环内
反复执行该 PUT 语句,直到没有更多的列要插入为止。
在插入所有行之后,退出该循环,并以 FLUSH 语句刷新插入缓冲区。
以 CLOSE 语句关闭插入游标。
您处理插入游标的方式,与您处理与 SELECT 语句相关联的游标的方式相
同。

请求网关直接转发sql 语句到dblink 对象对应的远端数据库执行。
语法格式
passthrough link DBLINK_NAME using ‘SQL_STATEMENT’;
说明

DBLINK_NAME 为dbink 对象的名称;

SQL_STATEMENT 为SQL 语句,即远端数据库执行的SQL 语句;

支持的SQL 语句,除以下支持的SQL 类型外,其它类型的SQL 将报错:
insert into … values…
insert into …select ….
delete
update
truncate
merge
create
drop

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
615
示例
passthrough link testlink using ‘create table t1(a int, b int)’;
passthrough link testlink using ‘insert into t1 values(1,2)’;
passthrough link testlink using ‘update t1 set a=11 where a=1’;
passthrough link testlink using ‘delete from t1 where a=11’;
passthrough link testlink using ‘truncate table t1’;
passthourgh link testlink using ‘drop table t1’;
passthourgh link testlink using ‘select * from t2’ – 报错: SQL command is not supported: ‘select *
from t2’
说明
约束与限制:

dblink 对象对应的网关中的数据源配置的用户需有相应的SQL 执行权限;

只支持自动提交模式。若当前执行passthrough 命令的gclusterd 的session 状态为非自
动提交模式将报错:
Can not join the distributed transaction in session

不支持sql_statement 前面有注释。