返回首页

gbase数据、南大通用产品文档:GBase8sSMX_PING_RETRY 配置参数

更新日期:2024年09月11日

如果没有收到来自主服务器的响应,则使用 SMX_PING_RETRY 配置参数来指定辅助服务器
重复 SMX_PING_INTERVAL 配置参数指定的超时间隔的最大次数。
如果达到最大数目而没有
响应,则辅助服务器在 online.log 中打印错误消息并关闭服务器多路复用器组(SMX)连
接。
onconfig.std 值
SMX_PING_RETRY 6


GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 149 -
任何正整数 = 重复超时间隔的最大次数。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
运行带有 "onmode","-wf SMX_PING_RETRY=value" 或 "onmode","-wm
SMX_PING_RETRY=value" 参数的 SQL 管理 API task() 或 admin() 函数之后。
用法
如果在 SMX_PING_INTERVAL 配置参数指定的时间长度期间,
以及 SMX_PING_RETRY 配置参
数指定的间隔数之后,辅助服务器未收到任何消息,则辅助服务器打印错误消息到
online.log 并关闭 SMX 连接。如果 SMX 超时消息在 online.log 中,则您可增加
SMX_PING_INTERVAL 值、SMX_PING_RETRY 值,或者增加二者的值。
这个配置参数仅应用于辅助服务器。如果您在主服务器上设置 SMX_PING_RETRY,则在主服
务器成为辅助服务器时该参数生效。
如果高可用性集群中的辅助服务器的 onconfig 文件有下列条目,则辅助服务器总共等待
来自主服务器的活动 60 秒。如果在那 60 秒期间没有来自主服务器的活动,则辅助服务
器关闭 SMX 连接并将错误消息写到 online 日志。
SMX_PING_INTERVAL 12
SMX_PING_RETRY 5

dtextend() 函数将 datetime 值扩展为不同的限定符。扩展是指添加或删除
DATETIME 值的字段来使其与给定的限定符相匹配的操作。
语法
mint dtextend(in_dt, out_dt)
dtime_t *in_dt, *out_dt;
in_dt
指向要扩展的 datetime 变量的指针。
out_dt
指向带有要用于该扩展的有效限定符的 datetime 变量的指针。

用法
dtextend() 函数将 in_dtdatetime 变量的限定符字段数字复制到 out_dtdatetime 变量。
out_dt 变量的限定符控制该复制。

该函数丢弃 out_dt 变量不包括的 in_dt 中的任何字段。该函数填写 in_dt 中未出现
的 out_dt 中的任何字段,如下:
它从当前的时间和日期来填写 in_dt 中最高有效字段左边的字段。
它以多个零来填写 in_dt 中最低有效字段右边的字段。

在下列示例中,以始于 6 月 1 日的财政年度的第一天来设置变量 fiscal_start。
dtextend() 函数生成当前的年份。
EXEC SQL BEGIN DECLARE SECTION;
datetime work, fiscal_start;
EXEC SQL END DECLARE SECTION;

work.dt_qual = TU_DTENCODE(TU_MONTH,TU_DAY);
dtcvasc("06-01",&work);

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 683 -

fiscal_start.dt_qual = TU_DTENCODE(TU_YEAR,TU_DAY);
dtextend(&work,&fiscal_start);
返回代码
0
操作成功。
-1268
参数包含无效的 datetime 限定符。

示例
demo 目录在文件 dtextend.ec 中包含此样例程序。
/*
* dtextend.ec *

The following program illustrates the results of datetime extension.
The fields to the right are filled with zeros,and the fields to the left are filled in from current
date and time.
*/

#include

EXEC SQL include datetime;

main()
{
mint x;
char year_str[20];

EXEC SQL BEGIN DECLARE SECTION;
datetime month to day month_dt;
datetime year to minute year_min;
EXEC SQL END DECLARE SECTION;

printf("DTEXTEND Sample ESQL Program running.\n\n");

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 684 -


/* Assign value to month_dt and extend */
printf("Datetime (month to day) value = 12-07\n");
if(x = dtcvasc("12-07", &month_dt))
printf("Result = Error %d in dtcvasc()\n", x);
else
{
if (x = dtextend(&month_dt, &year_min))
printf("Result = Error %d in dtextend()\n", x);
else
{
dttoasc(&year_min, year_str);
printf("Datetime (year to minute) extended value =%s\n", year_str);
}
}

printf("\nDTEXTEND Sample Program over.\n\n");
}
输出
DTEXTEND Sample ESQL Program running.

Datetime (month to day) value = 12-07
Datetime (year to minute) extended value = 2006-12-07 00:00
DTEXTEND Sample Program over.

操作场景
集群安装完毕,并且建立distribution 之后,在首次执行SQL 命令之前,需要
对数据库系统做初始化操作,才能正确执行所有的SQL 操作。如果不做初始化操
作,执行数据库操作时会提示不能创建或执行。
操作步骤
步骤1 使用root/gbase 用户登录集群。
步骤2 执行initnodedatamap 命令。
$ gccli –uroot

GBase UP 产品手册 3 软件安装

文档版本04(2021-04-21) 南大通用数据技术股份有限公司 87
GBase client 9.5.2.1.104982. Copyright (c) 2004-2020, GBase. All Rights Reserved.

gbase> initnodedatamap;
Query OK, 0 rows affected (Elapsed: 00:00:00.69)

注意
此命令只需执行一次,如果重复执行,系统会报告如下信息:
gbase> initnodedatamap;
ERROR 1707 (HY000): gcluster command error: (GBA-02CO-0004) nodedatamap is
already initialized.

多VC 模式初始配置
“多VC 模式”是指安装集群后,
使用gcadmin createvc 命令创建VC 或gcadmin
importvc 命令导入VC 后的集群状态,此时使用gcadmin showcluster 命令可看到多
个VC 的相关信息。多VC 模式,则需要首先创建VC,之后在每个VC 上创建
distribution。