Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


部署 XuguDB 企业版

📄字数 4.8K
👁️阅读量 加载中...

XuguDB 企业版仅支持部署为 2 节点数据库集群。

一、Linux 安装

本文档以搭建 2 节点集群为示例(准备2台相同配置的服务器,IP 地址为'192.168.30.236'、'192.168.30.237')演示 Linux 安装 XuguDB 企业版。

1.1 创建用户

  1. 各服务器创建用户不指定用户家目录,默认家目录在 /home/ 下;亦可通过 -d 指定用户家目录

    shell
    [root@kunqian236 ~]# useradd xugu
  2. 设置用户密码

    shell
    [root@kunqian236 ~]# passwd xugu

1.2 初始化数据库

1.2.1 解压产品包

  1. 使用创建的 xugu 用户登录,按照用户需求创建安装文件夹。将数据库安装包上传到各服务器的安装目录下进行解压,以 v12.9 某版本为例:
shell
[xugu@kunqian236 DbServer]$ unzip XuguDB-Server-12.9.9-linux-x86_64-20250714.zip

解压后如下图所示:

企业版解压图 1.1 企业版产品包解压

1.2.2 初始化 cluster.ini

进入 XuguDB/Server/BIN,使用初始化参数--init-cluster生成 cluster.ini 文件,执行命令如下所示:

shell
[xugu@kunqian236 BIN]$ ./xugu_linux_x86_64_20250714 --init-cluster

执行上述命令后,数据库将在BIN同级目录生成SETUP文件夹及SETUP/cluster.ini.temp文件,根据服务器配置对该文件进行编辑,编辑完成后重命名该文件为cluster.ini。配置完成后如下图所示:

企业版集群cluster.ini配置图 1.2 企业版集群cluster.ini配置

提示

不同节点之间的 cluster.ini 区别在于MY_NID配置不同。

配置cluster.ini文件时需注意以下几个参数设置:

参数名参数解释
MASTER_GRPS主控角色组数(两个一组构成主备关系),目前仅支持 1 组
MSG_PORT_NUM集群间通信端口个数,和节点参数 PORTS 保持一致(最大支持16)
MAX_SEND_WIN消息发送窗口大小,用于节点间通信流量控制(最大支持 2046)
MY_NID当前节点号,当前操作系统 IP 配置必须和此节点号对应的节点参数中 PORTS匹配
NID集群节点号,该值连续递增数值
PORTS数据库节点网络通讯端口,用于指定数据库节点间的数据交换网络信息,双网络格式为 IP1:PORT1,IP2:PORT2,其中配置通讯端口组数需要与“MSG_PORT_NUM”一致。IP 地址后显式指定的端口号是集群节点内部通讯的接收端口号。此外还会默认占用一个发送端口号,计算方式为发送端口号 = 接收端口号 +20,集群部署时需验证所需端口是否被占用
ROLE指定数据库节点在集群中所承担的角色
■ M 代表主控角色(必须配置为 2 个且分别配置在奇偶节点,建议保持默认)
■ S 代表存储角色
■ Q 代表查询角色
■ W 代表工作角色
■ G 代表变更收集节点(最多允许配置于 2 个节点)
LPU参与数据运算的最大逻辑 CPU 数,该值建议为“服务器物理 CPU 核数-1”
STORE_WEIGHT节点存储权重,在搭建集群时,若服务器磁盘存储容量不同,则按磁盘容量比配置;若集群磁盘存储容量相同,则配置为同一数值

其余参数在安装部署中不属于高注意项,详情可见cluster.ini参数详解

重要

  1. cluster.ini 文件中所有参数项位置顺序不能改变,且首行 # 不能删除
  2. 多节点部署时具备管理角色的节点只有 2 个,其他节点不能配置管理节点角色

1.2.3 (可选)初始化 SETUP 其他文件

执行./xugu_linux_x86_64_20250714 --init-setup 可初始化 SETUP 下其他配置文件(xugu.ini、mount.ini、types.ini和trust.ini)。当产品包解压后无SETUP或误删除SETUP目录,且需对 XuguDB 默认参数进行更改时,如端口,可使用此参数初始化后对配置文件进行更改。具体使用可参考:数据库启动参数

提示

若无需更改默认配置,可跳过此步骤。

1.3 (可选)存储文件映射配置

如需对文件存储路径进行规划,可根据部署规划配置 mount.ini(默认生成)、datafile.ini(手动创建)。SETUP/mount.ini路径映射,映射关系示例:

shell
[xugu@xukunqian236gu01 SETUP]# cat mount.ini
/XGLOG      ./XGLOG
/CATA      ./XHOME/CATA
/DATA      ./XHOME/DATA
/TEMP      ./XHOME/TEMP
/REDO      ./XHOME/REDO
/BACKUP      ./XHOME/BACKUP
/ARCH      ./XHOME/ARCH
/UNDO      ./XHOME/UNDO
/MODI      ./XHOME/XMODI

/DATA1         /data1/data
/TEMP1        /data1/temp

[xugu@kunqian236 SETUP]# cat datafile.ini
#DATA_FILES
/DATA1/DATA1.DBF
/DATA1/DATA2.DBF
/DATA1/DATA3.DBF
/DATA1/DATA4.DBF

#TEMP_FILES
/TEMP1/TEMP1.DBF
/TEMP1/TEMP2.DBF

注意

  1. 以上配置将数据文件 DATA1.DBF、DATA2.DBF、DATA3.DBF、DATA4.DBF 和临时文件 TEMP1.DBF、TEMP2.DBF 分别指定到/data1/data 和 /data1/temp 路径下,映射的路径必须存在(提前手动创建)
  2. 若默认安装,数据文件和临时表空间则默认生成到安装路径。则部署可跳过此步骤。

1.4 常用参数检查

提示

用于个人及测试可跳过此步骤,使用默认配置即可。以下配置参数建议仅针对运维人员部署。

xugu.ini 文件(若无可通过--init-setup初始化生成)除如下列表项需要检查确认外,其他参数项,保持默认参数即可,参数详情见:xugu.ini系统参数配置章节。

参数名参数解析
listen_port = 5138;侦听端口,配置建议:5138
pass_mode = 3;口令模式 1:任意字符或数字或符号,2:必须含字母、数字、符号中的两种或两种以上,3:必须含字母、数字和特殊符号,4:启用强口令相关设置项,并开启初始化数据库随机口令生成,配置建议:3
task_thd_num = 16;任务处理线程数,配置建议:task_thd_num = 业务最大并发数 * 2
max_parallel = 2;最大单任务并行度
配置建议:建议设置为CPU核数的2倍,集群部署场景下单个任务最大并行度取决于存活工作节点cluster.ini中配置的LPU总和,不受该参数影响
cata_parti_num = 32;目录分区数(建议设为CPU核数),配置建议:建议设置为CPU核数,当核数大于32时配置为CPU核数的1/2
rsync_thd_num = 8;远程同步处理线程数,配置建议:CPU核数的1/2
rtran_thd_num = 8;远程事务处理线程数,配置建议:CPU核数的1/2
data_buff_mem = 102400;数据缓冲区内存(单位:M),配置建议:物理内存60%
system_sga_mem = 51200;系统全局区内存(单位:M),配置建议:物理内存20%
max_hash_size = 30000000;最大Hash表槽数,配置建议:默认(30000000),1亿哈希槽需消耗内存800MB(注意配置)
max_malloc_once = 1024;最大单次分配内存块大小(单位:M),配置建议:此参数配置大于max_hash_size大小配置,小于system_sga_mem配置大小
default_copy_num = 2;存贮的默认版本个数,配置建议:企业版2节点集群为2
safely_copy_num = 2;存贮的安全版本个数,配置建议:企业版集群设置为2,特殊情况可根据实际业务场景调整配置
init_data_space_num = 4;初始化系统时数据表空间个数,配置建议:默认(4)
init_temp_space_num = 2;初始化系统时临时表空间个数,配置建议:默认(2)
init_undo_space_num = 2;初始化系统时回滚表空间个数,配置建议:默认(2)
def_data_space_size = 1024;默认数据表空间的初始尺度(单位:M),配置建议:按部署磁盘大小与磁盘IO情况评估进行配置
def_temp_space_size = 1024;默认临时表空间的初始尺度(单位:M),配置建议:1024(可根据实际业务场景调整配置)
def_undo_space_size = 1024;默认回滚表空间的初始尺度(单位:M),配置建议:1024(可根据实际业务场景调整配置)
def_redo_file_size = 1024;默认重做日志文件尺度(单位:M),配置建议:1024(可根据实际业务场景调整配置)
def_file_step_size = 64;默认表空间文件的增长步长(单位:M),配置建议:默认(64)
max_temp_space_size = 10240;临时表空间的最大尺度(单位:M,-1表示不限制),配置建议:10240(可根据实际业务场景调整配置)
max_file_size = -1;默认系统初始化数据和临时文件最大尺度(单位:M,-1表示不限制),配置建议:默认(-1)
catalog_write_through = 2;系统控制信息回写方式(1:立即保存 2:立即写通),配置建议:默认(2)
datafile_write_through = true;是否要求OS对数据文件的更改立即写回磁盘,配置建议:默认(true),针对磁盘IO较差的情况,此参数可修改为false
redo_write_through = false;重做日志文件是否写通方式打开,配置建议:默认(false),针对ARM环境部署,此参数修改为true
max_trans_modify = 200000;单个事务最大允许变更行数(0表示不限制),配置建议:200000,有业务要求可根据实际情况调整
enable_node_degrade = true;是否启用节点降级,配置建议:默认(true),根据实际业务场景设置

1.5 导入License

将申请的 license.dat 文件放在管理节点的 BIN 目录下,如下图所示:

导入license图 1.3 企业版集群导入License

1.6 启动数据库

  1. 进入每个节点的BIN目录,各节点同时执行数据库程序启动数据库,执行文件startdb.sh

    shell
    [xugu@kunqian236 BIN]$ ./startdb.sh

    提示

    --child是前端监控方式启动,--service--server是后台服务方式启动。可编辑startdb.sh文件修改启动方式。

  2. 校验数据库是否启动成功。查看各节点数据库启动日志文件stdout.txt,监听成功说明服务启动成功,如下图所示:

企业版集群启动图 1.4 企业版集群启动

二、目录结构解析

针对不同平台启动的企业版数据库目录如下所示:

shell
├── BACKUP                              #存储数据库备份文件
├── BIN
│   ├── license.dat                     #license文件
│   ├── startdb.sh                      #启动数据库自动化脚本
│   ├── weak_pass_dictionary.txt        #弱口令字典
│   ├── xugu_init.sql                   #数据库初始化文件
│   └── xugu_linux_x86_64_20250624      #数据库程序
├── SETUP
│   ├── cluster.ini                     #集群配置文件
│   ├── mount.ini                       #映射路径文件
│   ├── trust.ini                       #黑白名单配置文件
│   ├── types.ini                       #数据类型映射文件
│   └── xugu.ini                        #参数配置文件
├── XGLOG
│   ├── ERROR.LOG                       #错误日志
│   ├── EVENT.LOG                       #事件日志(用于记录系统重要事件)
│   └── TRACE.LOG                       #跟踪日志
├── XHOME
│   ├── ARCH                            #数据库归档日志文件
│   ├── CATA                            #系统结构性控制文件
│   │   ├── CTL.BAK                     #控制文件备份
│   │   ├── GSYS1.SYS                   #全局存储控制文件
│   │   ├── LSYS1.SYS                   #本地存储控制文件(受GSYS*.SYS 控制)
│   │   ├── UNDO.SYS                    #回滚日志控制文件
│   │   ├── XUGU.CTL                    #系统结构性控制文件(包含数据库的系统配置、目录结构等)
│   │   └── XUGU.ENC                    #存储加密机对象信息
│   ├── DATA                            #数据文件
│   │   ├── DATA1.DBF                       
│   │   ├── DATA2.DBF
│   │   ├── DATA3.DBF
│   │   └── DATA4.DBF
│   ├── REDO                            #重做日志
│   │   ├── REDO1.LOG
│   │   └── REDO2.LOG
│   ├── TEMP                            #临时表空间文件
│   │   ├── TEMP1.DBF
│   │   └── TEMP2.DBF
│   ├── UNDO                            #回滚日志
│   │   ├── UNDO1.DBF
│   │   └── UNDO2.DBF
│   └── XMODI                           #变更数据文件
└── XVOCA                               #词表日志目录(用于保存词典。词典是全文索引中的文本解析核心组件,用于将连续文本分割为独立的词)