1资源信息
1.1共享集群组网
两个节点+共享存储的模式,版本为23.4.1.102 x86_64。

1.2服务器信息
| 服务器名称 | 服务器IP | 角色 |
|---|---|---|
| db_1 | 10.48.133.176 | 数据库实例1 |
| db_2 | 10.48.133.177 | 数据库实例2 |
1.3共享存储
| 路径 | 大小 | 角色 |
|---|---|---|
| /def/sdg | 1G | 系统盘 |
| /def/sdh | 1G | 系统盘 |
| /def/sdi | 1G | 系统盘 |
| /def/sdj | 16G | 数据盘 |
2操作系统调整
2.1依赖项检查
[root@db_1 ~]# ldconfig -p | grep -E “libcrypto.so|libssl.so”
libssl.so.10 (libc6,x86-64) => /lib64/libssl.so.10
libssl.so (libc6,x86-64) => /lib64/libssl.so
libcrypto.so.10 (libc6,x86-64) => /lib64/libcrypto.so.10
libcrypto.so (libc6,x86-64) => /lib64/libcrypto.so
[root@db_2 ~]# ldconfig -p | grep liblz4.so
liblz4.so.1 (libc6,x86-64) => /lib64/liblz4.so.1
[root@db_2 ~]#
[root@db_2 ~]# ldconfig -p | grep libzstd.so
libzstd.so.1 (libc6,x86-64) => /lib64/libzstd.so.1
[root@db_2 ~]#
2.2操作系统参数调整
2.3设置服务器hostname(共享集群)
hostnamectl set-hostname db_1
hostnamectl set-hostname db_2
2.4关闭交换分区
[root@db_1 ~]# sysctl -w vm.swappiness=0
vm.swappiness = 0
[root@db_1 ~]# echo “vm.swappiness=0”>> /etc/sysctl.conf
[root@db_1 ~]#
2.5调整自动分配本地端口范围
[root@db_1 ~]# sysctl -w vm.max_map_count=2000000
vm.max_map_count = 2000000
[root@db_1 ~]# echo “vm.max_map_count=2000000” >> /etc/sysctl.conf
2.6调整资源限制值
| 资源项 | 推荐值 | 资源项说明 |
|---|---|---|
| open files | 1048576 | 进程打开的文件数 |
| max user processes | 1048576 | 最大用户进程数 |
| max memory size | unlimited | 进程最大占用内存值 |
| stack size | 8192 | 进程最大栈空间 |
[root@db_1 ~]# ulimit -n 1048576
[root@db_1 ~]# ulimit -u 1048576
[root@db_1 ~]# ulimit -m unlimited
[root@db_1 ~]# echo “yashan soft nofile 1048576” >> /etc/security/limits.conf
[root@db_1 ~]# echo “yashan hard nofile 1048576” >> /etc/security/limits.conf
[root@db_1 ~]# echo “yashan soft nproc 1048576” >> /etc/security/limits.conf
[root@db_1 ~]# echo “yashan hard nproc 1048576” >> /etc/security/limits.conf
[root@db_1 ~]# echo “yashan soft rss unlimited” >> /etc/security/limits.conf
[root@db_1 ~]# echo “yashan hard rss unlimited” >> /etc/security/limits.conf
[root@db_1 ~]# echo “yashan soft stack unlimited” >> /etc/security/limits.conf
[root@db_1 ~]# echo “yashan soft hard unlimited” >> /etc/security/limits.conf
[root@db_1 ~]#
2.7配置大页内存
2.7.1启用大页内存
执行如下命令查看当前大页内存配置:(回显信息以实际为准)
[root@db_1 ~]# grep -i huge /proc/meminfo
AnonHugePages: 520192 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
[root@db_1 ~]#
2.7.2估算大页内存需求,需先估算YashanDB的大页内存需求:
YashanDB至少需要大页内存空间LargePageSize = (UserSize + MMSSize + 64M) * 1.2。
YashanDB需要的大页内存页面数HugePages = Ceil(LargePageSize / Hugepagesize)。
这里测试环境,大页内存直接分配4G。
2.7.3启用大页内存并根据上述估算值更改相关配置:
这里测试环境总量配置为4G
[root@db_1 /]# echo “vm.nr_hugepages=2048” >>/etc/sysctl.conf
[root@db_1 /]# echo “vm.nr_overcommit_hugepages=0” >>/etc/sysctl.conf
[root@db_1 /]#
#重启服务器
reboot
#查看大页内存
[root@db_1 ~]# grep -i huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 2048
HugePages_Free: 2048
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
[root@db_1 ~]#
2.8关闭透明大页
#查看透明大页
[root@db_1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@db_1 ~]#
#执行vi /etc/default/grub,在GRUB_CMDLINE_LINUX中添加或修改参数,添加transparent_hugepage=never
[root@db_1 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=",g’ /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT=“console”
GRUB_CMDLINE_LINUX=“crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never”
GRUB_DISABLE_RECOVERY=“true”
[root@db_1 ~]#
#通过以下指令检查当前系统的引导类型:
[root@db_1 ~]# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
BIOS
[root@db_1 ~]#
#执行grub2–mkconfig指令重新配置grub.cfg。
[root@db_1 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-2e12296cf641439e968a48af3b674831
Found initrd image: /boot/initramfs-0-rescue-2e12296cf641439e968a48af3b674831.img
done
[root@db_1 ~]#
#重启服务器
reboot
#验证透明大页已关闭:
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
[root@db_1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
2.9关闭防火墙
[root@db_1 ~]# systemctl stop firewalld
[root@db_1 ~]# systemctl disable firewalld
2.10关闭SELINUX
[root@db_1 ~]# setenforce 0
setenforce: SELinux is disabled
[root@db_1 ~]# cat /etc/selinux/config |grep SELINUX
#SELINUX= can take one of these three values:
SELINUX=disabled
#SELINUXTYPE= can take one of three values:
SELINUXTYPE=targeted
[root@db_1 ~]#
2.11开启SSH服务
[root@db_1 ~]# systemctl status sshd.service
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2025-07-30 10:10:11 CST; 1min 57s ago
2.12清理环境(共享集群部署)
[root@db_1 ~]# ipcrm -a
[root@db_1 ~]#
3用户配置
3.1创建安装用户和组
[root@db_1 ~]# useradd -d /home/yashan -m yashan
[root@db_1 ~]# passwd yashan
[root@db_1 ~]# groupadd YASDBA
[root@db_1 ~]# usermod -a -G YASDBA yashan
3.2为安装用户配置sudo免密
[root@db_1 ~]# cd /etc
[root@db_1 etc]# ll sudoers
-r–r-----. 1 root root 4328 9月 30 2020 sudoers
[root@db_1 etc]# chmod +w sudoers
[root@db_1 etc]# echo “yashan ALL=(ALL)NOPASSWD:ALL” >> /etc/sudoers
3.3目录划分
#创建/data/yashan目录并授权
[root@db_1 ~]# cd /
[root@db_1 /]# mkdir -p data/yashan
[root@db_1 /]# chown -R yashan:yashan /data/yashan
#创建HOME目录,完整的HOME目录为/data/yashan/yasdb_home
#创建DATA目录,完整的DATA目录为/data/yashan/yasdb_data
#创建LOG目录,完整的DATA目录为/data/yashan/log
[root@db_1 /]# su yashan
[yashan@db_1 /]$ cd /data/yashan
[yashan@db_1 yashan]$ mkdir yasdb_home
[yashan@db_1 yashan]$ mkdir yasdb_data
[yashan@db_1 yashan]$ mkdir log
4磁盘绑定
4.1查看lun wwid
[root@db_1 ~]# /lib/udev/scsi_id -g -u -d /dev/sdh
36000c29fad51c30d232f164027c9bb51
[root@db_1 ~]# /lib/udev/scsi_id -g -u -d /dev/sdi
36000c29e18e26372636306f6679cada1
[root@db_1 ~]# /lib/udev/scsi_id -g -u -d /dev/sdj
36000c29c500e7b9e1feb4da35f19fa2a
4.2udev绑定
[root@db_1 rules.d]# pwd
/etc/udev/rules.d
[root@db_1 rules.d]# cat yashan-device-rule.rules
KERNEL==“sd*”, SUBSYSTEM==“block”, PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name", RESULT==“36000c298cbd056351f94d033259a21b7”,SYMLINK+=“yfs/ycrvote1”, OWNER=“yashan”, GROUP=“YASDBA”, MODE=“0666”
KERNEL==“sd*”, SUBSYSTEM==“block”, PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name", RESULT==“36000c29fad51c30d232f164027c9bb51”,SYMLINK+=“yfs/ycrvote2”, OWNER=“yashan”, GROUP=“YASDBA”, MODE=“0666”
KERNEL==“sd*”, SUBSYSTEM==“block”, PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name", RESULT==“36000c29e18e26372636306f6679cada1”,SYMLINK+=“yfs/ycrvote3”, OWNER=“yashan”, GROUP=“YASDBA”, MODE=“0666”
KERNEL==“sd*”, SUBSYSTEM==“block”, PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name", RESULT==“36000c29c500e7b9e1feb4da35f19fa2a”,SYMLINK+=“yfs/yasdata”, OWNER=“yashan”, GROUP=“YASDBA”, MODE=“0666”
[root@db_1 rules.d]#
[root@db_1 ~]# udevadm trigger --type=devices --action=change
[root@db_1 ~]#
4.3绑定结果检查
[root@db_1 rules.d]# ls -l /dev/yfs/*
lrwxrwxrwx 1 root root 6 7月 30 15:14 /dev/yfs/yasdata -> …/sdj
lrwxrwxrwx 1 root root 6 7月 30 15:14 /dev/yfs/ycrvote1 -> …/sdg
lrwxrwxrwx 1 root root 6 7月 30 15:14 /dev/yfs/ycrvote2 -> …/sdh
lrwxrwxrwx 1 root root 6 7月 30 15:14 /dev/yfs/ycrvote3 -> …/sdi
第二台同样操作。
注意:生成环境推荐使用多路径方式绑定存储设备,使用WWID绑定存储设备不满足高可用需求,不建议用于生产环境。
5共享集群部署(手动部署方式)
5.1软件包
5.1.1解压到install目录
[root@db_1 ~]# su - yashan
[yashan@db_1 ~]$ mkdir install
[yashan@db_1 soft]$ tar -zxvf /soft/yashandb-23.4.1.102-linux-x86_64.tar.gz -C /home/yashan/install/
5.1.2复制到第二台
[yashan@db_1 ~]$ scp -r install/ 10.48.133.177:/home/yashan
5.2生成部署文件
#vip配置有点问题,这里不使用vip
./bin/yasboot package ce gen --cluster yashandb
-u yashan -p yashan --ip 10.48.133.176,10.48.133.177 --port 22
–install-path /data/yashan/yasdb_home
–data-path /data/yashan/yasdb_data
–log-path /data/yashan/log
–begin-port 1688 --node 2
–data /dev/yfs/yasdata
–disk-found-path /dev/yfs
–system-data /dev/yfs/ycrvote1,/dev/yfs/ycrvote2,/dev/yfs/ycrvote3
±-------------------------------------------------------------------------------------------------------------+
| hostid | group | node_type | node_name | listen_addr | inter_connect | data_path |
±-------------------------------------------------------------------------------------------------------------+
| host0001 | ceg1 | ce | 1-1 | 10.48.133.176:1688 | 10.48.133.176:1689 | /data/yashan/yasdb_data |
±---------±------±----------±----------±-------------------±-------------------±------------------------+
| host0002 | ceg1 | ce | 1-2 | 10.48.133.177:1688 | 10.48.133.177:1689 | /data/yashan/yasdb_data |
±---------±------±----------±----------±-------------------±-------------------±------------------------+
#执行完毕后,当前目录下将生成{集群名称}.toml和hosts.toml两个配置文件:
[yashan@db_1 install]$ ls -l *.toml
-rw------- 1 yashan yashan 1104 7月 30 15:31 hosts.toml
-rw------- 1 yashan yashan 2617 7月 30 15:34 yashandb.toml
[yashan@db_1 install]$
5.3执行软件包安装
[yashan@db_1 install]$ ./bin/yasboot package install -t hosts.toml
checking install profile.toml…
install version: yashandb 23.4.1.102
host0001 100%
host0002 100%
update host to yasom…
[yashan@db_1 install]$
#会有yasom和yasagent进程
[yashan@db_1 install]$ ps -ef|grep yashandb
yashan 6141 1 0 15:39 ? 00:00:00 /data/yashan/yasdb_home/23.4.1.102/bin/yasagent --init -c yashandb -l 10.48.133.176:1676 --host-id host0001 -k -L /data/yashan/log -d
yashan 6172 1 0 15:39 ? 00:00:00 /data/yashan/yasdb_home/23.4.1.102/bin/yasom --init -c yashandb -l 10.48.133.176:1675 -k -L /data/yashan/log -d
yashan 7839 3199 0 15:41 pts/1 00:00:00 grep --color=auto yashandb
[yashan@db_1 install]$
5.4数据库部署
[yashan@db_1 install]$ ./bin/yasboot cluster deploy -t yashandb.toml --yfs-force-create -p yashandb_123
±-----------------------------------------------------------------------------------------------------------+
| type | uuid | name | hostid | index | status | return_code | progress | cost |
±-----------------------------------------------------------------------------------------------------------+
| task | 29554236efe9ba7c | DeployYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 78 |
±-----±-----------------±-------------------±-------±---------±--------±------------±---------±-----+
task completed, status: SUCCESS
[yashan@db_1 install]$
5.5重启数据库
[yashan@db_1 install]$ ./bin/yasboot cluster restart -c yashandb
±------------------------------------------------------------------------------------------------------------+
| type | uuid | name | hostid | index | status | return_code | progress | cost |
±------------------------------------------------------------------------------------------------------------+
| task | 7607a86428154c1b | ReStartYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 55 |
±-----±-----------------±--------------------±-------±---------±--------±------------±---------±-----+
task completed, status: SUCCESS
5.6设置环境变量
#两个节点都执行
[yashan@db_1 install]$ cd /data/yashan/yasdb_home/23.4.1.102/
[yashan@db_1 23.4.1.102]$ cd conf/
[yashan@db_1 conf]$ pwd
/data/yashan/yasdb_home/23.4.1.102/conf
[yashan@db_1 conf]$ cat yashandb.bashrc >> ~/.bashrc
[yashan@db_1 conf]$ source ~/.bashrc
5.7检查安装结果
5.7.1yasboot检查数据库状态
[yashan@db_1 install]$ ./bin/yasboot cluster status -c yashandb -d
±--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| hostid | node_type | nodeid | pid | instance_status | database_status | database_role | listen_address | source_node | data_path |
±--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| host0001 | ce | 1-1:1 | 26434 | open | normal | primary | 10.48.133.176:1688 | - | /data/yashan/yasdb_data/ce-1-1 |
±---------±----------±-------±------±----------------±----------------±--------------±-------------------±------------±-------------------------------+
| host0002 | ce | 1-2:2 | 12331 | open | normal | primary | 10.48.133.177:1688 | - | /data/yashan/yasdb_data/ce-1-2 |
±---------±----------±-------±------±----------------±----------------±--------------±-------------------±------------±-------------------------------+
[yashan@db_1 install]$
5.7.2yasql检查数据库实例
[yashan@db_1 ~]$ yasql / as sysdba
YashanDB SQL Enterprise Edition Release 23.4.1.102 x86_64
Connected to:
YashanDB Server Enterprise Edition Release 23.4.1.102 x86_64 - Linux
SQL> select inst_id,status,host_name from gv$instance;
INST_ID STATUS HOST_NAME
1 OPEN db_1
2 OPEN db_2
2 rows fetched.
SQL>
5.8使用大页内存启动数据库
#修改USE_LARGE_PAGES参数为true,两个节点都执行
[yashan@db_1 ~]$ yasql / as sysdba
YashanDB SQL Enterprise Edition Release 23.4.1.102 x86_64
Connected to:
YashanDB Server Enterprise Edition Release 23.4.1.102 x86_64 - Linux
SQL> show parameter USE_LARGE_PAGES
NAME VALUE
USE_LARGE_PAGES FALSE
MMS_USE_LARGE_PAGES FALSE
2 rows fetched.
SQL> alter system set USE_LARGE_PAGES=true scope=spfile;
Succeed.
SQL>
#重启数据库
[yashan@db_1 ~]$ yasboot cluster restart -c yashandb
±------------------------------------------------------------------------------------------------------------+
| type | uuid | name | hostid | index | status | return_code | progress | cost |
±------------------------------------------------------------------------------------------------------------+
| task | 94e0269d32ff2680 | ReStartYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 49 |
±-----±-----------------±--------------------±-------±---------±--------±------------±---------±-----+
task completed, status: SUCCESS
#使用了大页内存
[yashan@db_1 ~]$ sudo grep -i huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 2048
HugePages_Free: 833
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
[yashan@db_1 ~]$
6附问题处理:
YAS-05721 input parameter db_1 is invalid, reason: length must be between [4, 64].
主机名不要小于4位,把db1改成db_1即可
YAS-00512 failed to init dynamic library OPENSSL
如果openssl版本正确,按官网的软连接也在,就检查下是不是没有装openssl-devel
YAS-05528 duplicate diskgroup name SYSTEM
装错时,重装报这个错的话需要清理环境
./bin/yasboot cluster clean --cluster yashandb --purge
./bin/yasboot package uninstall --cluster yashandb
还要删除host.toml 和yashandb.toml
rm -rf /home/yashan/install/*.toml




