部署 XuguDB 安全版
📄字数 4.8K
👁️阅读量 加载中...
XuguDB 安全版可部署为单节点或 2 节点数据库集群,按用户实际场景进行配置部署。
一、Linux 安装
本文档以搭建 2 节点集群为示例(准备2台相同配置的服务器,IP 地址为'192.168.2.236'、'192.168.2.237')演示 Linux 安装 XuguDB 安全版。
1.1 创建用户
各服务器创建用户不指定用户家目录,默认家目录在 /home/ 下;亦可通过 -d 指定用户家目录
shell[root@kunqian236 ~]# useradd xugu
设置用户密码
shell[root@kunqian236 ~]# passwd xugu
1.2 初始化数据库
1.2.1 解压产品包
- 使用创建的 xugu 用户登录,按照用户需求创建安装文件夹。将数据库安装包上传到各服务器的安装目录下进行解压,以 v12.9 某版本为例:
shell
[xugu@kunqian236 DbServer]$ unzip XuguDB-Server-12.9.9-linux-x86_64-20250624.zip
解压后如下图所示:

1.2.2 初始化 cluster.ini
进入 XuguDB/Server/BIN
,使用初始化参数--init-cluster
生成 cluster.ini 文件,执行命令如下所示:
shell
[xugu@kunqian236 BIN]$ ./xugu_linux_x86_64_20250624 --init-cluster
执行上述命令后,数据库将在BIN
同级目录生成SETUP
文件夹及SETUP/cluster.ini.temp
文件,根据服务器配置对该文件进行编辑,编辑完成后重命名该文件为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参数详解。
重要
- cluster.ini 文件中所有参数项位置顺序不能改变,且首行 # 不能删除
- 多节点部署时具备管理角色的节点只有 2 个,其他节点不能配置管理节点角色
1.2.3 (可选)初始化 SETUP 其他文件
执行./xugu_linux_x86_64_20250624 --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@kunqian236 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
注意
- 以上配置将数据文件 DATA1.DBF、DATA2.DBF、DATA3.DBF、DATA4.DBF 和临时文件 TEMP1.DBF、TEMP2.DBF 分别指定到/data1/data 和 /data1/temp 路径下,映射的路径必须存在(提前手动创建)。
- 若默认安装,数据文件和临时表空间则默认生成到安装路径。则部署可跳过此步骤。
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 |
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 目录下,如下图所示:

1.6 启动数据库
进入每个节点的 BIN 目录,各节点同时执行数据库程序启动数据库,执行文件
startdb.sh
:shell[xugu@kunqian236 BIN]$ ./startdb.sh
提示
--child
是前端监控方式启动,--service
和--server
是后台服务方式启动。可编辑startdb.sh
文件修改启动方式。校验数据库是否启动成功。查看各节点数据库启动日志文件stdout.txt,监听成功说明服务启动成功,如下图所示:

二、目录结构解析
针对不同平台启动的安全版数据库目录如下所示:
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 #词表日志目录(用于保存词典。词典是全文索引中的文本解析核心组件,用于将连续文本分割为独立的词)