返回首页

gbase数据、南大通用产品文档:GBase8s将行插入到超级表内

更新日期:2024年09月11日

当您将行插入到超级表内时,不存在特殊的注意事项。INSERT 语句仅适用于在该语句中
指定的表。例如,下列语句将值插入到超级表内,但不将值插入到任何子表内:
INSERT INTO person
VALUES (
'Poole, John',
ROW('402 Saphire St.', 'Elmondo', 'CA', '69055'),
345605900
);

功能
设置一个节点的状态。
语法
gcadmin setnodestate ip
表4- 18 参数说明

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
188
参数名称
说明
ip
要设置状态的节点ip。
state
用于指定要设置的节点状态,节点状态有3 种。

unavailable 标识节点为不可用,
不在记录该节点得dml、
ddl 操作,设置该状态后必须进行节点替换,替换完成
后状态可恢复为normal;

failure:标识集群故障,相当于offline,这时dml、ddl
将不会下发到该节点,而是直接记录fevent log;

normal:
当节点故障解决后可以直接将节点置为normal,
这相当于节点重新online,
这时gcrecover 将恢复之前记
录的feventlog,
新发起的ddl、
dml 将重新下发到该节点。
警告

一旦将节点状态设置为unavailable,是无法手工恢复的,只能进行
替换才可用;

如果设置一个节点为unavailable 状态会导致任何一个distribution 中
出现某个分片的主副分片都不可用的情况,则设置失败。
示例
$ gcadmin setnodestate 172.168.83.13 failure
set node [172.168.83.13] state to failure
set node [172.168.83.13] state to failure successful
$ gcadmin showcluster vc vc2
CLUSTER STATE:
ACTIVE
VIRTUAL CLUSTER MODE:
NORMAL
==========================================================
|
GBASE VIRTUAL CLUSTER INFORMATION
|
==========================================================
|
VcName
| DistributionId |
comment
|
----------------------------------------------------------
|
vc2
|
2
| comment message for vc2 |
----------------------------------------------------------
==============================================================
======
|
VIRTUAL CLUSTER DATA NODE INFORMATION
|
==============================================================
======
|NodeName|
IpAddress
|DistributionId| gnode |syncserver|DataState|
--------------------------------------------------------------------
| node1
|172.168.83.13|
2
|FAILURE|
|
|

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
189
--------------------------------------------------------------------
| node2
|172.168.83.14|
2
| OPEN
|
OPEN
|
0
|
--------------------------------------------------------------------
2 data node

数据库服务器将共享内存用于以下用途:
• 使虚拟处理器和实用工具能够共享数据
• 为使用 IPC 通信的本地客户机应用程序提供快速通信通道
下图说明了共享内存方案。
图: 数据库服务器使用共享内存的方式


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 108 -


共享内存分配
数据库服务器将创建共享内存的以下部分:

常驻部分

虚拟部分

IPC 通信或消息部分
如果 sqlhosts 文件指定了共享内存通信,那么数据库服务器将为通信部分分配内
存。

虚拟扩展部分
数据库服务器根据需要将操作系统段添加到共享内存的虚拟部分和虚拟扩展部分。
有关平台的共享内存设置的更多信息,请参阅机器说明。下图显示了共享内存各部分的内
容。
所有的数据库服务器虚拟处理器都可以访问相同的共享内存段。每个虚拟处理器通过保留
其自身对共享内存资源(如缓冲区、锁定和锁存器)的指针集来管理其工作。在将数据库
服务器从脱机方式转换到静默、管理或联机方式时,虚拟处理器将连接共享内存。数据库
服务器将使用锁定和锁存器来管理多个线程对共享内存资源的并发访问。
图: 数据库服务器共享内存的内容


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 109 -


共享内存大小
数据库服务器共享内存的每个部分都由一个或多个操作系统内存段组成,每个内存段分成
一系列大小为 4 KB 的块,并由位图进行管理。
onstat 实用程序输出的标题行包含数据库服务器共享内存的大小(以 KB 表示)。您还可
以使用 onstat -g seg 监视数据库服务器为共享内存的每一部分分配多少内存。有关如何使
用 onstat 的信息,请参阅《GBase 8s 管理员参考》。
可以在 onconfig 文件中设置 SHMTOTAL 参数来限制数据库服务器可以在计算机或节点
上安排的内存开销量。SHMTOTAL 参数指定数据库服务器可用于所有内存分配的共享内
存总量。 然而,如果数据库服务器需要的内存量大于 SHMTOTAL 中设置的量,那么某
些操作可能会失败。如果发生这种情况,数据库服务器会在消息日志中显示以下消息:
size of resident + virtual segments x + y > z
total allowed by configuration parameter SHMTOTAL

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 110 -
此外,数据库服务器会将错误消息返回到已启动违规操作的应用程序中。例如,如果数据
库服务器在尝试执行操作(例如,索引构建或散列连接)时需要的内存量大于在
SHMTOTAL 中指定的内存量,那么该服务器将向应用程序返回类似于以下某条消息的错
误消息:
-567 Cannot write sorted rows.
-116 ISAM error: cannot allocate memory.
数据库服务器在发送了这些消息后会回滚任何由违规查询执行的部分结果。
内部操作(例如页清除程序或检查点活动)也会导致数据库服务器超过 SHMTOTAL 的
上限。当发生这种情况时,数据库服务器会向消息日志发送一条消息: 例如,假设数据
库服务器试图为页清除程序活动分配附加的内存但失败了。结果,数据库服务器会向消息
日志发送类似于以下消息的信息:
17:19:13 Assert Failed: WARNING! No memory available for page cleaners
17:19:13 Who: Thread(11, flush_sub(0), 9a8444, 1)
17:19:13 Results: Database server may be unable to complete a checkpoint
17:19:13 Action: Make more virtual memory available to database server
17:19:13 See Also: /tmp/af.c4
在数据库服务器通知您分配附加的内存失败后,该服务器会回滚导致其超过 SHMTOTAL
限制的事务。一经回滚,操作就不会再因为内存不足而失败,数据库服务器将继续如平常
一样处理事务。

超过 SHMTOTAL 时要执行的操作
当数据库服务器需要的内存量大于 SHMTOTAL 所允许的值时,将出现瞬时状态,这可
能是因突发超过正常处理负载的活动所引起。只有导致数据库服务器暂时耗尽内存的操作
才会暂时失败。其他操作继续以正常方式处理。
如果有消息定期指示数据库服务器需要的内存量大于 SHMTOTAL 所允许的值,那么表
示您没有正确配置数据库服务器。减小 BUFFERPOOL 配置参数中的
DS_TOTAL_MEMORY 值或 buffers 值是一种可能的解决方案;增加 SHMTOTAL 的值
是另一种解决方案。