返回首页

gbase数据、南大通用产品文档:GBase8s在辅助服务器成为主服务器后恢复 SD 集群

更新日期:2024年09月11日

如果在原始主服务器发生故障后,SD 集群中的辅助服务器成为主服务器,那么可以使用
脚本来重新建立原始主服务器,然后将当前主服务器转换回辅助服务器。
在该示例中,主服务器 srv_pri 故障转移至 SD 辅助服务器 srv_sds_sec。此时,主服务器
是 srv_sds_sec,并且集群中的所有辅助服务器现在都指向 srv_sds_sec。要将集群复原
至 srv_pri 执行故障转移之前的状态,请遵循以下步骤:
1. 如果必要,请在 srv_pri 的 onconfig 文件中设置以下参数:
SDS_ENABLE 1

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 484 -
SDS_PAGING ,
SDS_TEMPDBS ,,,,
dbsname 值必须唯一。此外,dbsname 必须在所有现有的数据库空间、BLOB 空间
和智能大对象空间空间中唯一,包括从主服务器继承的临时空间(可能已禁用)。
如果有多个 SD 辅助服务器,dbsname 值对于每个服务器必须唯一,且不得与其
他任何 SD 辅助服务器或主服务器共享。请参阅设置共享磁盘辅助服务器,以获
取有关设置这些参数的信息。
2. 通过在 srv_pri 上运行 oninit 命令,将 srv_pri 初始化为 SD 辅助服务器。
3. 手动对 srv_pri 执行故障转移以便使其成为主服务器:
onmode –d make primary srv_pri
以上命令从集群中除去 srv_sds_sec,并使 srv_pri 成为主服务器。
4. 通过在 srv_sds_sec 上运行 oninit 命令,将 srv_sds_sec 复原为 SD 辅助服务器。

7 分布式数据

ifx_int8copy() 函数将一个 int8 结构复制至另一个。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 720 -
语法
void ifx_int8copy(source, target)
ifx_int8_t *source;
ifx_int8_t *target;
source
指向包含要复制的源 int8 值的 int8 结构的指针。
target
指向目标 int8 结构的指针。
ifx_int8copy() 函数不返回状态值。要确定该复制操作是否成功,请查看 target 参数
指向的 int8 结构的内容。

示例
demo 目录中的文件 int8copy.ec 包含下列样例程序。
/*
* ifx_int8copy.ec *

The following program copies one INT8 number to another.
*/

#include

EXEC SQL include "int8.h";

char string1[] = "-12,888,999,555,333";
char result[41];

main()
{
mint x;
ifx_int8_t num1, num2;

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


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 721 -
printf("String = %s\n", string1);
if (x = ifx_int8cvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to INT8\n", x);
exit(1);
}
printf("Executing: ifx_int8copy(&num1, &num2)\n");
ifx_int8copy(&num1, &num2);
if (x = ifx_int8soasc(&num2, result, sizeof(result)))
{
printf("Error %d in converting num2 to string\n", x);
exit(1);
}
result[40] = '\0';
printf("Destination = %s\n", result);

printf("\nIFX_INT8COPY Sample Program over.\n\n");
exit(0);
}

输出
IFX_INT8COPY Sample ESQL Program running.

String = -12,888,999,555,333
Executing: ifx_int8copy(&num1, &num2)
Destination = -12888999555333
IFX_INT8COPY Sample Program over.

功能说明
replace.py 在集群的安装包目录下。执行replace.py 命令需要在集群中的一个
Coordinator 节点,使用集群安装用户dbauser 进行替换。
操作步骤
步骤1:将被替换的集群节点(原172.168.83.13)机器网线拔出,并将待替换的新
机器上线。
步骤2:执行replace.py 替换安装。
]$ ./replace.py --host=172.168.83.13 --type=coor --dbaUser=gbase --dbaUserPwd=g
basedba --generalDBUser=root --generalDBPwd=******