返回首页

gbase数据、南大通用产品文档:GBase8a集群扩容操作流程

更新日期:2024年09月11日


扩容VC 内data 节点:
1.
给需要扩容的数据节点装集群软件。包括步骤:修改demo.options 文件执行
gcinstall 脚本安装软件。
2.
将扩容节点添加到指定VC 中。包括步骤:新建addnode.xml执行gcadmin
addnodes 添加节点进VC
3.
给扩容后的VC 中所有节点生成新的distribution,并根据新的distribution 生成
新的datanodemap。包括步骤:修改gcChangeInfo.xml 为扩容后所有节点执
行gcadmin distribution 生成新distribution(需传入数据库用户名、密码)执
行initnodedatamap 生成新的nodedatamap。
4.
将原集群数据迁移到新的nodedatamap 上,删除原集群旧的distribution 和
nodedatamap。包括步骤:rebalance 迁移数据gcadmin rmdistribution。

扩容集群的gcluster 节点:
停止整个集群所有节点的服务修改demo.options 使用gcinstall 脚本安装该节点上
集群软件。

扩容复合节点(gcluster 和gnode 同在一个服务器上):
1.
给需要扩容的gnode 节点和gcluster 节点安装集群软件。包括步骤:停止整个
集群所有节点的服务修改demo.options 文件执行gcinstall 脚本安装软件。
2.
将扩容节点添加到指定VC 中。包括步骤:新建addnode.xml执行gcadmin
addnodes 添加节点进VC
3.
给扩容后的VC 中所有节点生成新的distribution,并根据新的distribution 生成
新的datanodemap。包括步骤:修改gcChangeInfo.xml 为扩容后所有节点执
行gcadmin distribution 生成新distribution(需传入数据库用户名、密码)执

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
231
行initnodedatamap 生成新的nodedatamap。
4.
将原集群数据迁移到新的nodedatamap 上,删除原集群旧的distribution 和
nodedatamap。包括步骤:rebalance 迁移数据gcadmin rmdistribution。
注意

V9.5.3 当前只支持coordinator 节点和data 节点的扩容,
不支持gcware 的扩
容。

扩容安装操作必须在已有Coordinator 节点上使用DBA(gbase)用户执行。

扩容安装操作需要申请新的license 许可文件,license 文件的获取可参考

oncheck 实用程序可以修复以下类型的磁盘结构:
l 分区页统计信息
l 位图页
l 分区 blobpage

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

l blobspace blobpage
l 索引
l sbspace 页
l sbspace 元数据分区
如果 oncheck 检测到其他结构中的不一致性,那么向您发送消息警告以通知这些不一致
性, 但 oncheck 不能解决问题。有关更多信息,请参阅 GBase 8s 管理员指南 中的 一致
性检查 一章和 磁盘结构和存储。
每个选项执行哪些操作?
正如 表 1 所示,oncheck 选项分为三类:检查、修复并显示。 显示或打印选项(以字母
p 为前缀的那些选项)
的功能与 -c 选项的功能相同,
不同之处是 -p 选项显示 oncheck 实
用程序执行时受检查数据的其他信息。您不能组合 oncheck 选项标志,以下段落中描述的
情况除外。
一般地,-c 选项检查一致性,并且只在找到错误或不一致时才在屏幕上显示消息。
任何用户都可以执行这些检查选项。在 UNIX™ 平台上,必须是用户 gbasedbt 或 root 才
可显示数据库数据或启动修复选项。在 Windows™ 上,必须是 Gbasedbt-Admin 组的成员
才可显示数据库数据或启动修复选项。
表 1 将 oncheck 选项与其功能向关联。它还显示了功能等同于 oncheck -c 选项的管理
API 命令字符串。
表 1. oncheck 选项及其功能
对象
检查
SQL 管理 API
命令字符串
修复
显示
Blobspace 简单大对象



-pB
系统目录表
-cc


-pc
数据行,
没有简单大对象或智能大
对象
-cd


-pd
数据行,
简单大对象但没有智能大
对象
-cD


-pD
带有用户定义存取方法的表
-cd, -cD CHECK DATA


Chunks 和 extents
-ce
CHECK EXTENTS

-pe
索引(键值)
-ci, -cix

-ci -y -pk -pk

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

对象
检查
SQL 管理 API
命令字符串
修复
显示
-y, -pkx -y
索引(键加 rowid)
-cI, -cIx

-cI -y -pK
-y, -pKx -y
-pK
带有用户定义存取方法的索引
-ci, -cI


索引(叶键值)


-pl -y,
-plx -y
-pl
索引(叶键加 rowid)


-pL -y,
-pLx -y
-pL
页(按表或分片)



-pp
页(按 chunk)



-pP
Root 保留页
-cr, -cR

-pr, -pR
智能大对象的元数据
-cs, -cS

-ps, -pS
空间使用量(按表或分片)

CHECK
PARTITION
PRINT
PARTITION

-pt
空间使用量(按表,带索引)



-pT

使用 -y 选项执行修复
使用 -y 选项指示 oncheck 自动执行修复,如下例所示

如果不使用 -y 选项,那么 oncheck 会在遇到不一致性时提示您,并允许您请求修复。如
果指定了选项 -n ,那么 oncheck 不提示您,因为该选项指示 oncheck 不执行修复。
修复 sbspace 和外部空间中的索引

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

如果 sbspace 和外部空间中的索引是使用支持 oncheck -y 选项的存取方法创建的,那么
oncheck 实用程序可修复 sbspace 或外部空间中的索引。尽管 oncheck 实用程序不修复分
片索引,但用户定义的存取方法可以修复它们。有关存取方法所支持的 oncheck 选项的更
多信息,
请参阅 GBase 8s DataBlade API 程序员指南 或 GBase 8s 虚拟索引接口程序员指
南。
锁定和 oncheck
以下操作期间,oncheck 实用程序在表上放置了共享锁,因此其他用户在检查完成之前将
不能执行更新、插入或删除:
l 检查数据时
l 检查索引(使用 -ci 、-cI 、-pk 、-pK 、-pl 或 -pL)且表使用页锁定时
l 当指定带有 -ci 、-cI 、-pk 、-pK 、-pl 或 -pL 的 -x 选项且表使用行锁定时
如果表不使用页锁定,那么使用 oncheck -ci 、-cI 、-pk 、 -pK 、 -pl 或 -pL 选项检查
索引时,数据库服务器不在表上放置共享锁。当做索引检查过程中表上没有共享锁时,其
他用户可以在检查过程中更新行。
如果在索引检查过程中未在使用行锁的表上放置共享锁,那么 oncheck 实用程序无法进行
准确的索引检查。
要绝对确保完全的索引检查,
可以用 -x 选项执行 oncheck 。
使用 -x 选
项, oncheck 在表上放置共享锁,这样其他用户就不能再检查完成之前执行更新、插入或
删除。
若在高可用集群的辅助服务器上运行 oncheck 实用程序,它将返回不可靠的结果。
有关 -x 选项的更多信息,请参阅 使用 -x 开启锁 。有关共享锁和意向锁的更多信息,请
参阅 GBase 8s 性能指南。
在检查系统目录表时,oncheck 实用程序在这些表上放置共享锁。在执行时,它在表上放
置互斥锁。

操作场景
集群安装完毕且建立distribution 之后,在首次执行SQL 命令之前,需要对数据库
系统做初始化操作,才能正确执行所有的SQL 操作。
注意
如果不做初始化操作,执行数据库操作时会提示不能执行:
gbase> create database test;
ERROR 1707 (HY000): gcluster command error: (GBA-02CO-0003)
nodedatamap is not initialized.
操作步骤
使用数据库用户root 登录数据库(root 用户默认密码是空),执行initnodedatamap
命令。
$ gccli -uroot
GBase client 9.5.3.17.123187. Copyright (c) 2004-2020, GBase.
All Rights
Reserved.
gbase> initnodedatamap;
Query OK, 0 rows affected (Elapsed: 00:00:24.74)
注意
此命令只需执行一次,如果重复执行,会报告如下信息:
gbase> initnodedatamap;
ERROR 1707 (HY000): gcluster command error: (GBA-02CO-0004)
nodedatamap is already initialized.

GBase 8a MPP Cluster 产品手册
3 集群安装升级与卸载
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
75