返回首页

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

更新日期:2024年09月11日

问题现象
多次启停gcmmonit 报以下错误:
2018-01-14 23:39:48 [
INFO
]PID:
20613
opts_gcmmonit.c:61 gcmmon
it start operation...
2018-01-14 23:39:48 [
INFO
]PID:
20613
opts_gcmmonit.c:77 uid:501
nShareMemKeyOffset:0
2018-01-14 23:39:48 [
ERROR
]PID:
20613
shm_op.c:19 shmget fail! k
ey:9266 errno:2 errmsg:No such file or directory
2018-01-14 23:39:48 [
ERROR
]PID:
20613
opts_gcmmonit.c:81 GetSha

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
88
reMem fail! nRet=-13
解决方法
确认后得知,gcmonit、gcmmonit 使用由gcmonit 启动创建的共享内存,共享内存
是由gcmonit 创建和销毁的,所以启动顺序为gcmonit -> gcmmonit,
关闭顺序最好为gcmmonit -> gcmonit。
经现场确认gcmonit 确实没有启动。启动gcmonit 之后,gcmmonit 启动正常。
在V9 版本中,
gcmonit.sh 能自动拉起和关闭gcmmonit,
可以直接使用gcmonit.sh:
gcmonit.sh start/stop/restart/status

复杂数据类型可以存储一个或多个其他内置或扩展数据类型的值。
图 1 显示了 GBase 8s 支持的复杂数据类型。
图: GBase 8s 的复杂数据类型


下表总结了复杂数据类型的结构。
表 1. 集合类型是由元素组成的复杂数据类型,每个元素都具有相同的数据类型。
集合类型
描述
LIST
一组有序元素,每个元素在组中不必是唯一的。
MULTISET
一组元素,每个元素不必是唯一的。忽略元素的顺序。
SET
一组元素,每个元素都是唯一的。忽略元素的顺序。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 128 -
表 2. ROW 类型是由字段组成的复杂数据类型。




以嵌套复杂数据类型。例如,可以构造其字段包括一个或多个 set、multiset、ROW
类型和列表的 ROW 类型。同样,集合类型也可以具有数据类型为 ROW 类型或集合类
型的元素。
包括不透明类型的复杂类型继承以下支持函数。

input

output

send

recv

import

export

import_binary

export_binary

assign

destroy

LO_handles

hash

lessthan

equal

lessthan(仅适用于 ROW 类型)
ROW 类型
描述
命名 ROW 类型
用其名称标识的行类型。
未命名 ROW 类型
用其结构标识的行类型。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 129 -
接下来的各个主题对复杂数据类型进行了概述。有关更多信息,请参阅《GBase 8s
数据库设计和实现指南》。
集合数据类型
集合数据类型是由一个或多个元素(所有元素都具有相同的数据类型)组成的复杂类
型。集合元素可以为除 BYTE、TEXT、SERIAL、SERIAL8 或 BIGSERIAL 之外的任何
数据类型(包括其他复杂类型)。
要点: 元素不能具有 NULL 值。必须对集合元素指定 NOT NULL 约束。没有其他约
束对于集合有效。
GBase 8s 支持三种类型的内置集合类型:LIST、SET 和 MULTISET。用来声明这些
集合的关键字是类型构造函数的名称或只是构造函数。有关集合类型的语法,请参阅
GBase 8s SQL 指南:语法。可以将相同表的不超过 97 列声明为集合数据类型。
当为集合指定元素值时,将元素值列示在构造函数后面并用花括号( { } ) 括起来。
例如,假设您具有含以下 MULTISET 数据类型的集合列:
CREATE TABLE table1
(
mset_col MULTISET(INTEGER NOT NULL)
)
下一个 INSERT 语句向此列添加一组元素值。(这两个示例中的单词 MULTISET 是
MULTISET 构造函数。)
INSERT INTO table1 VALUES (MULTISET{5, 9, 7, 5})
可使花括号保留为空来指示空集:
INSERT INTO table1 VALUE (MULTISET{})
空集合不等同于列的 NULL 值。
访问集合数据
要存取集合列的元素,必须将集合访存到集合变量中并修改集合变量的内容。集合变
量可以具有任何下列类型:

SPL 例程中的变量
有关更多信息,请参阅 GBase 8s SQL 指南:教程。

GBase 8s ESQL/C 程序中的主变量
有关更多信息,请参阅 GBase 8s ESQL/C 程序员手册。
还可以使用嵌套点表示法来存取集合数据。有关访问集合元素的更多信息,请参阅
GBase 8s SQL 指南:教程。
重要: 集合数据类型作为用于函数索引的函数的自变量无效。
ROW 数据类型

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 130 -
ROW 数据类型是一个或多个元素(称为字段)的有序集合。每个字段都具有名称和数据类型。行的
字段与表列差不多,但有一些重要的差别:

字段没有缺省子句。

不能对字段定义约束。

只能将字段与行类型一起使用,而不能将其与表一起使用。
存在两种类型的 ROW 数据类型:
 命名 ROW 数据类型是用其名称标识的。
 未命名 ROW 数据类型是用其结构标识的。
未命名 ROW 数据类型的结构是其字段的数目(和数据类型的顺序)。
可以将同一个表的不超过 195 列声明为 ROW 数据类型。有关 ROW 数据类型的更多信息,请参
阅 ROW 数据类型,已命名和 ROW 数据类型,未命名。
您可以在命名与未命名 ROW 数据类型之间进行强制转型;《GBase 8s 数据库设计和实现指南》中
对此进行了描述。

实用程序用于连接服务器共享内存段的备用基地址。

地址 十六进制的有效地址
在数据库服务器分配共享内存后,数据库服务器可分配多个邻近的操作系统共享内存
段。连接共享内存的客户机实用程序也必须连续地连接所有这些操作系统分段。实用程序
可能在服务器将共享内存段连接到的地址装入一些其他的共享对象(例如,onbar 上的
xbsa 库)。要在这种情况下进行变通,您可以在环境变量 IFX_XFER_SHMBASE 中为实
用程序指定不同的基地址以连接共享内存段。onstat、onmode 和 oncheck 实用程序必须
作为 oninit 连接来完全相同的共享内存库。设置 IFX_XFER_SHMBASE 不是这些实用程
序的选项。