返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

扩容coordinator 节点报错“fail to execute
gcadmin cpcorditbl coorHosts.xml”
问题现象
扩容安装coordinator 节点时,
gcinstall.py 脚本安装新coordinator 节点后需要将原有
coordinator 节点上的元数据同步到新的coordinator 节点上,
此时gcinstall.py 脚本将
会执行gcadmin cpcorditbl coorHosts.xml 命令,在同步元数据时失败会打印该报错
信息“fail to execute gcadmin cpcorditbl coorHosts.xml”。
原因分析
gcadmin在同步coordinator节点元数据时需要将原有coordinator节点的元数据打包、
拷贝到新节点上,然后解压到新coordinator 节点上,最后将新coordinator 节点的
gclusterd 进程杀掉重启。出现该问题的原因是可能是由于元数据过多,在打包拷贝
的过程中超时造成的。此时可查看gcintall.log 中是否有“Error cause timeout”确定。
解决办法
同步元数据超时导致扩容coordinator 节点失败时,可在执行扩容安装时使用
“--timeout”参数设定更大的超时时间,gcadmin 默认的超时时间为5 分钟。
gcinstall.py 设定timeout 的时间单位为分钟(minute),help 信息如下所示:
Usage: gcinstall.py [options]
Options:
-h, --help
show this help message and exit
-U, --upgrade
upgrade install
--silent=SILENTCONFIG
use the supplied properties file for a 'silent'
install
--timeout=TIMEOUT
sync coordinator node metadata
timeout,unit(minute),default 15mins.
--backup_dir=BACKUP_DIR
The package path of backup file,default
/home/$dbaUser.

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
156

从当前返回的CDC 记录开始重新启动数据捕获。
语法:
cdc_recboundary
( session_ID
)
参数:
表2-7.cdc_recboundary() 参数
参数
数据类型
描述
session_ID
INTEGER
The session ID of the open capture
session.
用法:
如果需要从当前日志记录的开头重新启动捕获,
请使用cdc_recboundary()
函数。
必须从客户端应用程序调用此函数。不能从数据库服务器中运行的用户定
义例程调用此函数。
返回值:
如果成功,则返回一个正整数,表示在当前会话期间捕获但跳过的完整或
部分日志记录数。
如果不成功,则返回与错误代码相对应的整数,并更新包含错误信息的
syscdcses 表。

sysfragdist 系统目录表会存储分段表和索引的分段级别列统计信息。对于每个表分段
或索引分段,都存在一行。
此处仅描述分段表中的列。(对于表级别列统计信息,请参阅 sysdistrib 系统目录
表。)
sysfragdist 表具有以下列。

类型
解释
tabid
INTEGER
表的唯一标识代码 ( = systables.tabid)
fragid
INTEGER
分段的唯一标识代码 ( =
sysfragments.partnum)
colno
SMALLINT
列的唯一标识代码 ( = syscolumns.colno)
seqno
SMALLINT
序号(用于跨多行的分发)
mode
CHAR(1)
UPDATE STATISTICS 方式(H = 高,或 M =
中)
resolution
SMALLFLOAT
每个二进制文件中样本的平均百分比
confidence
SMALLFLOAT
MEDIUM 方式样本值相当于确切 HIGH 方式
结果的估算可能性
rowssampled
FLOAT
样本中的行数
ustbuildduration
INTERVAL HOUR TO
FRACTION(5)
计算此列分发所花费的时间
constr_time
DATETIME YEAR TO
FRACTION(5)
记录分发的时间
ustnrows
FLOAT
计算分发时分段中的行。
minibinsize
FLOAT
仅供内部使用
nupdates
FLOAT
表的更新数
ndeletes
FLOAT
表的删除数
ninserts
FLOAT
表的插入数
encdist
BLOB
加密分段分发
sbsnum
INTEGER
存储 encdist 的智能大对象空间的唯一标
识代码

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 43 -

类型
解释
version
INTEGER
保留供将来使用

具有给定 tabid、fragid 和 colno 值组合的行集用于标识该表分段的列统计信息。通
过将 seqno 列用于排序号,这些统计信息可跨多行。
在计算分段列统计信息的 UPDATE STATISTICS MEDIUM 或 HIGH 语句中指定的
mode、resolution 和 confidence 值会记录在相同名称的 sysfragdist 列中。要使用现有
分段统计信息来构建表统计信息,这三个参数在引用相同表的分段的 UPDATE STATISTICS
语句之间不应该更改。唯一例外是“H”方式分段统计信息可用于构建“M”方式表统计信
息。
分段的列分发统计信息存储在 BLOB 列 encdist 中。sbsnum 列存储了描述此分段的
encdist 对象所存储在的智能 blob 空间的标识代码。缺省情况下,SBSPACENAME 配置参
数设置是标识代码在 sbsnum 列中的智能大对象空间的标识。
以下三列会记录生成列分发统计信息时对分段执行修改数据行的 DML 操作的计数:
nupdates 中的 UPDATE 操作数
ndeletes 中的 DELETE 操作数
和 ninserts 中的 INSERT 操作数
这些计数还可包括 MERGE 语句修改的行。
这些 DML 计数器列会存储在生成分发统计信息时存在的服务器分区中的计数器值。
当以 MEDIUM 或 HIGH 方式对具有分段级别统计信息的分段表运行 UPDATE STATISTICS
时,数据库服务器会比较这些列中的已存储值与分区中的当前值。
如果 AUTO_STAT_MODE 配置参数、AUTO_STAT_MODE 会话环境设置或 UPDATE
STATISTICS 语句的 AUTO 关键字已启用数据分发统计信息的选择性更新,那么
ninserts、ndeletes 和 ninserts 值可影响 UPDATE STATISTICS 操作是否刷新分段的现有数
据分发统计信息。如果已存储值之和不同于分区页面的这些当前 DML 计数器值之和,少
于 STATCHANGE 表属性或 STATCHANGE 配置参数的设置所指定的阈值,那么与 sysfragdist
表中行对应的分段列统计信息不会更新。