本文在Cenots 7.9/Centos8.4的arm架构下测试YashanDB官网最新的企业版23.2.4,下载的数据库包文件名为:yashandb-23.2.4.100-linux-aarch64.tar.gz
测试中遇到一些问题记录如下:
1.CPU和内存限制问题
官方文档有最低资源限制,要求不低于2C4G。
- 虚拟机CPU使用1C时,yasboot package install命令将报错
ip:192.168.20.100 cpu cores is less than 2 config check failed
复制
- 虚拟机内存低于4GB时,yasboot package install命令将报错
ip:192.168.20.200 memory is less than 4096MB config check failed
复制
虽然文档有这个限制说明,但个人觉得提高内存和磁盘的部署限制都是为了方便甩锅,硬性限制资源对于开发学习者并不友好。
如果是担心客户生产环境出问题,可以更灵活一点,比如生产环境运行时再检查连接数及运行时内存。对于个人开发者,限制使用连接数,就不用担心资源问题。
2.yashan用户权限问题
官方文档在安装前的准备环境要求配置yashan用户的sudo权限
yashan ALL=(ALL)NOPASSWD:ALL
复制
但使用yasboot命令部署时仍然提示目录权限问题:
host0001 failed, 102, 创建远程文件夹失败:, Process exited with status 1:mkdir: cannot create directory ‘/opt/yasdb’: Permission denied package install failed
复制
依然需要手工使用root进行创建
mkdir /opt/yasdb mkdir /opt/yasdb_data chown yashan: /opt/yasdb chown yashan: /opt/yasdb_data
复制
3.yashan用户的group强制要求yashan
使用yasboot命令部署时提示如下错误:
host0001 failed, 116, , stdout: user yashan don't belong to group yashan stderr: package install failed
复制
检查分析原因时发现与创建yashan用户的方式有关
在部署其他数据库创建宿主时习惯先建group,再建user同时设置group,但官方文档创建yashan用户实际设置了两个group
useradd yashan groupadd YASDBA usermod -a -G YASDBA yashan
复制
这里创建时与官方文档不一致,引出yashan用户需要在yashan的group里,建议官方文档再明确一下。
4.安装失败不回滚
使用yasboot命令部署如果之前出现过错误,修复错误后再次部署会提示:
host0001 failed, 1, , yasdb path: /opt/yasdb/yashandb/23.2.4.100 is already installed package install failed
复制
上次部署失败后未做相应的回滚操作,需要手工清理二进制目录和数据目录
rm -rf /opt/yasdb/* rm -rf /opt/yasdb_data/*
复制
5.ssh访问失败问题
前面创建yashan用户时,忘记设置用户密码,结果执行yasboot命令出现如下错误:
ip:192.168.20.100 scan failed, 主机扫描失败:ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain config check failed
复制
设置yashan密码后正常
6.openssl问题
执行yasboot cluster deploy命令时遇到最后一个错误
task completed, status: FAILED retcode: 1 stdout: start node with ping stderr: wait node 1-1 process start failed: failed to init dynamic library OPENSSL Failed to start instance
复制
本地检查openssl的依赖包如下
# rpm -qa |grep openssl
openssl-libs-1.1.1g-15.el8_3.aarch64
openssl-1.1.1g-15.el8_3.aarch64
openssl-devel-1.1.1g-15.el8_3.aarch64
openssl-pkcs11-0.4.10-2.el8.aarch64
复制
在YashanDB技术交流群获得支持,该版本依赖openssl-1.1.1l,需要先移除旧版本再手工编译新版本。
由于本人虚机上同时安装一些其他国产库,也依赖openssl,为了避免新版本对OS的依赖影响,暂时放弃升级openssl,期望YashanDB后面的新版本能直接解决这个问题。