暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

磐维数据库panweidb3.1.0单节点多实例安装

原创 lu9up的数据库笔记 2025-07-01
293

0 说明

业务科室提单需要在某台主机上部署多个单机磐维数据库,用于业务测试。本文档提供了在单台主机上部署多个磐维数据库实例的技术方案。

1 部署环境准备

1.1 IP 地址及端口

inst ip port
实例1 192.168.131.17 17700
实例2 192.168.131.17 27700

在131.17上分别安装两个实例,端口号需要不一致。

1.2 文件规划存放

inst 安装目录 数据文件目录 日志目录 临时文件目录 工具目录 core文件目录
实例1 /data/database1/panweidb/app /data/database1/panweidb/data /data/database1/panweidb/log /data/database1/panweidb/tmp /data/database1/panweidb/tool /data/database1/panweidb/corefile
实例2 /data/database2/panweidb/app /data/database2/panweidb/data /data/database2/panweidb/log /data/database2/panweidb/tmp /data/database2/panweidb/tool /data/database2/panweidb/corefile

统一安装在/data目录下。

1.3 用户和组

inst 用户名 用户id 组名 组id
实例1 omm1 1101 dbgrp 1101
实例2 omm2 1102 dbgrp 1101

用户不同,同组。

2 操作系统及平台要求

配置肯定是越大越好。

2.1 操作系统环境和平台信息

测试环境要求cpu起码2核。

[root@pwdb310 ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) [root@pwdb310 ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 154 Model name: 12th Gen Intel(R) Core(TM) i5-12500H Stepping: 3 CPU MHz: 3110.403 BogoMIPS: 6220.80 Hypervisor vendor: VMware Virtualization type: full L1d cache: 48K L1i cache: 32K L2 cache: 1280K L3 cache: 18432K NUMA node0 CPU(s): 0,1

cpu是2*2,操作系统版本centos7.6。

2.2 硬件环境要求

测试环境内存建议4G以上,磁盘空间100G,千兆网。

# 内存 [root@pwdb310 ~]# free total used free shared buff/cache available Mem: 3861508 127732 3553232 11804 180544 3496832 Swap: 4194300 0 4194300 # 磁盘 [root@pwdb310 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 15G 11G 4.2G 73% / devtmpfs 3.8G 0 3.8G 0% /dev tmpfs 3.9G 24K 3.9G 1% /dev/shm tmpfs 3.9G 12M 3.8G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 197M 124M 74M 63% /boot tmpfs 781M 0 781M 0% /run/user/0 # 网卡 [root@pwdb310 ~]# ethtool ens33 | grep Speed Speed: 1000Mb/s

2.2 软件环境要求

需要注意的是要有python3,版本3.6以上,不可以编译安装,否则数据库预安装会失败。

2.3 软件依赖

需要安装的依赖包:
在这里插入图片描述
BCLinux-for-Euler-21.10操作系统TF定制版安装libnsl软件会导致系统崩溃,详见生产环境安装磐维数据库 panweidb一装就崩!

2.4 文件系统环境要求

文件系统环境所要求的扇区必须为 512bytes,查看方法如下:

[root@pwdb310 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 200M 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 15G 0 lvm / └─centos-swap 253:1 0 4G 0 lvm [SWAP] sr0 11:0 1 4.3G 0 rom [root@pwdb310 ~]# [root@pwdb310 ~]# [root@pwdb310 ~]# ll /dev/mapper/centos-root lrwxrwxrwx 1 root root 7 Jul 1 10:52 /dev/mapper/centos-root -> ../dm-0 [root@pwdb310 ~]# [root@pwdb310 ~]# fdisk -l /dev/dm-0 Disk /dev/dm-0: 16.1 GB, 16106127360 bytes, 31457280 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes

3 数据库部署准备

3.1 环境准备

3.1.1 IP 地址及端口

inst ip port
实例1 192.168.131.17 17700
实例2 192.168.131.17 27700

3.1.2 文件规划存放

inst 安装目录 数据文件目录 日志目录 临时文件目录 工具目录 core文件目录
实例1 /data/database1/panweidb/app /data/database1/panweidb/data /data/database1/panweidb/log /data/database1/panweidb/tmp /data/database1/panweidb/tool /data/database1/panweidb/corefile
实例2 /data/database2/panweidb/app /data/database2/panweidb/data /data/database2/panweidb/log /data/database2/panweidb/tmp /data/database2/panweidb/tool /data/database2/panweidb/corefile

3.2 系统和环境配置

3.2.1 允许root 权限登录

检查主机的 sshd_config 文件内 PermitRootLogin 是否为 yes,如果不是,需要修改为 yes,并重启 sshd 服务:

# cat /etc/ssh/sshd_config | grep PermitRootLogin PermitRootLogin yes # 重启 sshd 服务 systemctl restart sshd

3.2.2 关闭防火墙

systemctl stop firewalld systemctl disable firewalld

3.2.3 selinux配置

setenforce 0 getenforce vi /etc/selinux/config 将 SELINUX=enforcing 修改为 SELINUX=disabled

3.2.4 时区

timedatectl

3.2.5 系统内核参数配置

内存:

[root@pwdb310 ~]# free total used free shared buff/cache available Mem: 3861508 127732 3553232 11804 180544 3496832 Swap: 4194300 0 4194300 [root@pwdb310 ~]# getconf PAGE_SIZE 4096

根据内存,设置以下参数:

  • kernel.shmall : 3861508*0.8/4096 = 754
  • kernel.shmmax : 3861508/2 = 1930754
  • kernel.shmmni : 4096
  • vm.dirty_background_bytes : 409600000

查看信号量:

[root@pwdb310 ~]# ipcs -ls ------ Semaphore Limits -------- max number of arrays = 128(对应 SEMMNI ) max semaphores per array = 250(对应 SEMMSL ) max semaphores system wide = 32000(对应 SEMMNS ) max ops per semop call = 32(对应 SEMOPM )

根据信号量设置:

  • kernel.sem = 250 32000 250 128

该参数包含 4 个参数,排序为 SEMMSL,SEMMNS,SEMOPM,SEMMNI

3.2.5 系统字符集

echo "export LANG=en_US.UTF-8" >> .bash_profile . .bash_profile

3.2.6 关闭透明大页

使用 root 用户,通过配置如下系统服务实现永久关闭透明大页的目的:

vi /etc/systemd/system/disable-thp.service #添加以下配置 [Unit] Description=Disable Transparent Huge Pages (THP) [Service] Type=simple ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag" [Install] WantedBy=multi-user.target

修改完成后,执行如下命令加载系统服务,并设置开机自启动:

systemctl daemon-reload systemctl start disable-thp systemctl enable disable-thp

查看 THP 状态,当返回结果均为 always madvise [never]时表示成功设置透明大页永久关闭:

[root@pwdb310 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] [root@pwdb310 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never]

3.2.7 IPC 参数配置

当 RemoveIPC=yes 时,操作系统会在用户退出时,删除该用户的 IPC 资源(共享内存段和信号量),从而使得 PanWeiDB 服务器使用的 IPC 资源被清理,可能引发数据库宕机,所以需要设置 RemoveIPC 参数为 no。

echo "RemoveIPC=no" >> /etc/systemd/logind.conf echo "RemoveIPC=no" >> /usr/lib/systemd/system/systemd-logind.service

重新加载配置参数:

systemctl daemon-reload systemctl restart systemd-logind

检查修改是否生效,由于 CentOS 操作系统环境的 removeIPC 默认为关闭,则执行如下语句是无返回结果的:

loginctl show-session | grep RemoveIPC systemctl show systemd-logind | grep RemoveIPC

3.2.8 安装数据库依赖

检查依赖情况:

rpm -q libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel python3 expect* bzip2 libnsl gcc gcc-c++ zlib-devel ncurses-devel expect bzip2 gcc

将缺的包安装:

yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel python3 expect* bzip2 libnsl gcc gcc-c++ zlib-devel ncurses-devel expect bzip2 gcc

BCLinux-for-Euler-21.10操作系统TF定制版安装libnsl软件会导致系统崩溃,详见生产环境安装磐维数据库 panweidb一装就崩!

3.2.9 python3版本

[root@pwdb310 ~]# python3 --version Python 3.6.8

3.2.10 配置ip主机名映射

vi /etc/hosts 192.168.131.17 pwdb310

4 实例1安装

4.1 创建用户与用户组

创建dbgrp组和omm1用户,并修改密码:

groupadd -g 1101 dbgrp useradd -g dbgrp -u 1101 -m omm1 passwd omm1

4.2 创建安装目录

创建安装目录,归档目录和审计目录:

mkdir -p /data/database1/panweidb mkdir -p /data/database1/panweidb/archive mkdir -p /data/database1/panweidb/pg_audit

4.3 上传解压安装包

上传安装包到soft目录下:

mkdir -p /data/database1/panweidb/soft ls -lrt /data/database1/panweidb/soft PanWeiDB_V2.0-S3.1.0_B01-install-centos_7-x86_64-no_mot.tar.gz

解压数据库安装包:

tar -zxvf PanWeiDB_V2.0-S3.1.0_B01-install-centos_7-x86_64-no_mot.tar.gz

解压OM(Operation Manager操作管理器 )安装包:

tar -zxvf PanWeiDB_V2.0-S3.1.0_B01-CentOS-64bit-om.tar.gz

4.4 配置 XML 文件

根据部署需求配置 cluster_config.xml 文件,拷贝模板文件:

cp /data/database1/panweidb/soft/script/gspylib/etc/conf/cluster_config_template.xml /data/database1/panweidb/soft/cluster_config.xml

配置编辑:

vi /data/database1/panweidb/soft/cluster_config.xml

实例1配置:

<?xml version="1.0" encoding="utf-8"?> <ROOT> <CLUSTER> <PARAM name="clusterName" value="pwdb310a" /> <PARAM name="nodeNames" value="pwdb310"/> <PARAM name="gaussdbAppPath" value="/data/database1/panweidb/app" /> <PARAM name="gaussdbLogPath" value="/data/database1/panweidb/log" /> <PARAM name="tmpMppdbPath" value="/data/database1/panweidb/tmp"/> <PARAM name="gaussdbToolPath" value="/data/database1/panweidb/tool"/> <PARAM name="corePath" value="/data/database1/panweidb/corefile"/> <PARAM name="backIp1s" value="192.168.131.17"/> </CLUSTER> <DEVICELIST> <DEVICE sn="pwdb310"> <PARAM name="name" value="pwdb310"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="192.168.131.17"/> <PARAM name="sshIp1" value="192.168.131.17"/> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="17700"/> <PARAM name="dataNode1" value="/data/database1/panweidb/data"/> </DEVICE> </DEVICELIST> </ROOT>

4.5 预安装

root用户执行预安装脚本 gs_preinstall 可以协助自动完成如下的安装环境准备工作:

  • 自动设置 Linux 内核参数以达到提高服务器负载能力的目的。这些参数直
  • 接影响数据库系统的运行状态,请仅在确认必要时调整。
  • 自动将 XML 配置文件、安装包拷贝到其他主机的相同目录下,安装用户和- 用户组不存在时,自动创建安装用户以及用户组。
  • 读取 XML 配置文件中的目录信息并创建,将目录权限授予安装用户。

使用 root 用户为安装目录授权:

chown -R omm1:dbgrp /data/database1/panweidb chmod -R 755 /data/database1/panweidb

root执行 gs_preinstall 预安装脚本:

cd /data/database1/panweidb/soft/script/ ./gs_preinstall -U omm1 -G dbgrp -X ../cluster_config.xml --sep-env-file=/home/omm1/pwdb310a.env

指定用户和组,并把环境变量输出到pwdb310a.env。

4.5 执行安装脚本

切换到安装用户 omm1,并加载环境变量:

su - omm1 cat pwdb310a.env >> .bash_profile source .bash_profile

运行安装脚本:

gs_install -X /data/database1/panweidb/soft/cluster_config.xml \ --gsinit-parameter="--encoding=UTF8" \ --gsinit-parameter="--lc-collate=C" \ --gsinit-parameter="--lc-ctype=C" \ --gsinit-parameter="--dbcompatibility=B"

中途需要输入一次集群密码,需要符合8位3种字符规则。

安装成功,但是实例启动失败:

[GAUSS-51607] : Failed to start instance. Error: Please check the gs_ctl log for failure details. 2025-06-30 03:02:56.233 68618de0.1 [unknown] 139926357943104 [unknown] 0 dn_6001 42809 0 [BACKEND] FATAL: the values of memory out of limit, the database failed to be started, max_process_memory (3072MB) must greater than 2GB + cstore_buffers(512MB) + (udf_memory_limit(200MB) - UDF_DEFAULT_MEMORY(200MB)) + shared_buffers(716MB) + preserved memory(3166MB) = 6442MB, reduce the value of shared_buffers, max_pred_locks_per_transaction, max_connection, wal_buffers..etc will help reduce the size of preserved memory

进入数据路径下,编辑参数文件,将max_process_memory 参数改到符合上述要求:

[omm1@pwdb310 data]$ grep max_process_memory postgresql.conf max_process_memory = 6.5GB

重新启动实例1:

[omm1@pwdb310 data]$ gs_ctl start -D /data/database1/panweidb/data ... . [2025-07-01 13:45:52.728][28726][][gs_ctl]: done [2025-07-01 13:45:52.728][28726][][gs_ctl]: server started (/data/database1/panweidb/data)

4.6 查看实例状态

[omm1@pwdb310 data]$ gs_ctl status [2025-07-01 13:46:33.344][28882][][gs_ctl]: gs_ctl status,datadir is /data/database1/panweidb/data gs_ctl: server is running (PID: 28729) /data/database1/panweidb/app/bin/panweidb "-D" "/data/database1/panweidb/data"

5 实例2安装

安装好实例1,后面的实例2其实就简单了,省去了环境配置步骤,从XML文件配置开始操作。

主要与实例1的区分用户名和安装目录,用omm2操作安装数据库,部署在database2目录下。

5.1 创建用户与用户组

创建omm2用户,并修改密码:

useradd -g dbgrp -u 1102 -m omm2 passwd omm2

组和omm1用户相同。

5.2 创建安装目录

mkdir -p /data/database2/panweidb mkdir -p /data/database2/panweidb/archive mkdir -p /data/database2/panweidb/pg_audit mkdir -p /data/database2/panweidb/soft

5.3 上传解压安装包

从实例1目录下拷贝安装包过来:

cp /data/database2/panweidb/soft/script/gspylib/etc/conf/cluster_config_template.xml /data/database2/panweidb/soft/cluster_config.xml ls -lrt /data/database2/panweidb/soft PanWeiDB_V2.0-S3.1.0_B01-install-centos_7-x86_64-no_mot.tar.gz

解压数据库安装包:

tar -zxvf PanWeiDB_V2.0-S3.1.0_B01-install-centos_7-x86_64-no_mot.tar.gz

解压OM(Operation Manager操作管理器 )安装包:

tar -zxvf PanWeiDB_V2.0-S3.1.0_B01-CentOS-64bit-om.tar.gz

5.4 配置 XML 文件

根据部署需求配置 cluster_config.xml 文件,拷贝模板文件:

cp /data/database2/panweidb/soft/script/gspylib/etc/conf/cluster_config_template.xml /data/database2/panweidb/soft/cluster_config.xml

配置编辑:

vi /data/database2/panweidb/soft/cluster_config.xml

实例1配置:

<?xml version="1.0" encoding="utf-8"?> <ROOT> <CLUSTER> <PARAM name="clusterName" value="pwdb310b" /> <PARAM name="nodeNames" value="pwdb310"/> <PARAM name="gaussdbAppPath" value="/data/database2/panweidb/app" /> <PARAM name="gaussdbLogPath" value="/data/database2/panweidb/log" /> <PARAM name="tmpMppdbPath" value="/data/database2/panweidb/tmp"/> <PARAM name="gaussdbToolPath" value="/data/database2/panweidb/tool"/> <PARAM name="corePath" value="/data/database2/panweidb/corefile"/> <PARAM name="backIp1s" value="192.168.131.17"/> </CLUSTER> <DEVICELIST> <DEVICE sn="pwdb310"> <PARAM name="name" value="pwdb310"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="192.168.131.17"/> <PARAM name="sshIp1" value="192.168.131.17"/> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="27700"/> <PARAM name="dataNode1" value="/data/database2/panweidb/data"/> </DEVICE> </DEVICELIST> </ROOT>

5.5 预安装

root用户执行预安装脚本 gs_preinstall 可以协助自动完成如下的安装环境准备工作:

  • 自动设置 Linux 内核参数以达到提高服务器负载能力的目的。这些参数直
  • 接影响数据库系统的运行状态,请仅在确认必要时调整。
  • 自动将 XML 配置文件、安装包拷贝到其他主机的相同目录下,安装用户和- 用户组不存在时,自动创建安装用户以及用户组。
  • 读取 XML 配置文件中的目录信息并创建,将目录权限授予安装用户。

使用 root 用户为安装目录授权:

chown -R omm2:dbgrp /data/database2/panweidb chmod -R 755 /data/database2/panweidb

root执行 gs_preinstall 预安装脚本:

cd /data/database2/panweidb/soft/script/ ./gs_preinstall -U omm2 -G dbgrp -X ../cluster_config.xml --sep-env-file=/home/omm2/pwdb310b.env

5.5 执行安装脚本

切换到安装用户 omm2,并加载环境变量:

su - omm2 cat pwdb310b.env >> .bash_profile source .bash_profile

运行安装脚本:

gs_install -X /data/database2/panweidb/soft/cluster_config.xml \ --gsinit-parameter="--encoding=UTF8" \ --gsinit-parameter="--lc-collate=C" \ --gsinit-parameter="--lc-ctype=C" \ --gsinit-parameter="--dbcompatibility=B"

中途需要输入一次集群密码,需要符合8位3种字符规则。

安装成功,但是实例启动失败,处理办法和实例1一样:

略过。

重新启动实例2:

[omm2@pwdb310 data]$ gs_ctl start -D /data/database2/panweidb/data ... . [2025-07-01 15:18:25.683][42080][][gs_ctl]: done [2025-07-01 15:18:25.683][42080][][gs_ctl]: server started (/data/database2/panweidb/data)

5.6 查看实例状态

[omm2@pwdb310 ~]$ gs_ctl status [2025-07-01 15:18:48.687][42156][][gs_ctl]: gs_ctl status,datadir is /data/database2/panweidb/data gs_ctl: server is running (PID: 42083) /data/database2/panweidb/app/bin/panweidb "-D" "/data/database2/panweidb/data"

6 多实例区分

6.1 目录结构

数据库路径分别对应database1和database2:
在这里插入图片描述

6.2 进程和端口

数据库进程:
在这里插入图片描述
数据库端口:
在这里插入图片描述

7 总结

磐维数据库单机多实例安装还是非常简单的,只需要做好用户和安装目录的区分即可。通过上述步骤,已在单节点主机131.17成功部署两个磐维数据库实例。实例 1 与实例 2 通过不同端口(17700/27700)、独立用户(omm1/omm2)及隔离目录结构实现区分,确保了资源隔离与服务独立性。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论