返回首页

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

更新日期:2024年09月11日

存储过程递归调用层数设置参数
max_sp_recursion_depth
max_sp_recursion_depth 参数表示存储过程允许递归调用的深度,参数范围是
[0~255],默认取值为0。
当出现存储过程递归调用报错“ Recursive limit 0 (as set by the
max_sp_recursion_depth variable) was exceeded for routine pro_test_1”时
可以通过调整max_sp_recursion_depth 参数解决。
当业务中存在存储过程递归调用需求时,可根据需求调整
max_sp_recursion_depth 参数,
参数值设置超出[0,255]后会报错。
调整参数为较

GBase 8a MPP Cluster 最佳实践
4 参数调优
文档版本(2022-02-11)
南大通用数据技术股份有限公司
35
大取值时,也需要相应的调大gcluster 层的thread_stack 参数。
如:
当递归层数参数max_sp_recursion_depth 设置为255 的情况下,调大gcluster
层的thread_stack 参数(测试环境调整为2M),然后重启gclusterd;否则可
能会栈溢出从而引起gclusterd 的宕机。

转换或还原 GBase 8s 数据库服务器时,在旧版本上使用的存储管理器可能未针对要迁移
到的版本进行验证。验证存储管理器供应商是否已成功完成对数据库服务器版本和平台
的 GBase 8s 验证过程。
如果尚未完成验证,那么使用 ON-Bar 执行备份之前需要安装经过验证的存储管理器。

使用变更数据捕获功能控制数据捕获过程。处理CDC 记录以提取数据。查
询syscdc 表以检索CDC 记录和错误的符号名称和描述。
完成准备使用变更数据捕获API 的先决条件任务。
应用程序应包含以下结构和功能:
・存储表架构信息的结构。您可以使用表模式来分析列数据。
・用于解释表模式信息并填充表模式结构的函数。您可以从
CDC_REC_TABSCHEMA 记录中获取表模式信息。
・从数据缓冲区检索和分析列值的函数。
・一个处理错误的函数。您可以查询syscdcerrcodes 表以确定错误代码的
符号名称和描述。
在应用程序中包含以下任务以捕获数据更改:
1、作为用户gbasedbt,连接到客户端当前连接到的数据库服务器上的
syscdcv1 数据库。
2、通过运行cdc_opensess()函数打开捕获会话。函数的作用是:返回会话
ID。

GBase 8s数据库安装手册
南大通用数据技术股份有限公司
8
3、
通过运行cdc_set_fullrowlogging()函数,
为要从中捕获数据的每个表
启用全行日志记录。
4、
通过运行cdc_startcapture()函数指定要捕获的数据。
对要从中捕获数
据的每个表运行此函数。
5、通过运行cdc_activatesess()函数启动捕获过程。CDC 记录(包括包含
捕获数据的记录)将返回给应用程序。
6、
通过传递会话ID 作为大对象文件描述符,
使用智能大对象读取函数
(如
mi_lo_Read())读取包含捕获数据的CDC 记录。对所有读取调用使用相同的智
能大对象读取函数。
7、按列值分析数据。如果您正在用Java 编写应用程序,则可以使用
IfxToJavaType 类将数据类型的Informix 表示的字节流转换为适当的Java 数据
类型和值。
8、通过为每个表运行cdc_endcapture() 函数来停止捕获数据。
9、通过为每个表运行cdc_set_fullrowlogging() 函数来禁用全行日志记
录。在禁用全行日志记录之前,请确保没有其他应用程序或进程依赖于全行日
志。
10、通过运行cdc_closess() 函数关闭捕获会话。