当前,YashanDB 个人版已正式向所有用户和开发者全面开放下载,我也在最快的时间进行了下载安装测试。但是在安装过程中却遇到了一些问题,下面对这些现象进行一个复盘。供大家参考。
本次安装使用安装包为:yashandb-personal-23.1.1.100-linux-aarch64.tar.gz
前期准备工作就不再赘述。在做完前边的配置工作后开始进行deploy操作。
[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster deploy -t yashandb.toml
type | uuid | name | hostid | index | status | return_code | progress | cost
-----------------------------------------------------------------------------------------------------------
task | 55c72e7bbc635de1 | DeployYasdbCluster | - | yashandb | FAILED | 1 | 100 | 30
------+------------------+--------------------+--------+----------+--------+-------------+----------+------
task completed, status: FAILED
retcode: 1
stdout: start node with ping
stderr: wait node 1-1 process start failed: Starting instance nomount
failed to load dynamic library /data/yashan/yasdb_home/yashandb/23.1.1.100/plug-in/package/linux/libyspi_geometry.so, /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /data/yashan/yasdb_home/yashandb/23.1.1.100/lib/libgeos_c.so.1)
Failed to start instance
提示我gcc版本不够。
按照官方手册给出的最低配置信息来看我是满足的。
服务器准备
下表为个人开发环境最小配置,请根据如下配置自行调整软硬件配置。
项目 描述
操作系统 CentOS 7.6,kylin V10
CPU X86_64,ARM64
2C
内存 4G
硬盘 50G
文件系统 SSD
网络 千兆以太网,支持TCP和UDP链接
查询我的系统版本:
[root@host-16-0-0-23 om]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (AltArch)
CPU信息:
[root@host-16-0-0-23 om]# lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Model: 0
BogoMIPS: 200.00
NUMA node0 CPU(s): 0-3
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp
内存大小:
[root@host-16-0-0-23 om]# free -h
total used free shared buff/cache available
Mem: 7.9G 891M 3.9G 26M 3.1G 5.8G
磁盘大小:
[root@host-16-0-0-23 om]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0G 0 4.0G 0% /dev
tmpfs 4.0G 0 4.0G 0% /dev/shm
tmpfs 4.0G 27M 4.0G 1% /run
tmpfs 4.0G 0 4.0G 0% /sys/fs/cgroup
/dev/sda2 79G 13G 62G 18% /
/dev/sda1 200M 4.5M 196M 3% /boot/efi
tmpfs 809M 0 809M 0% /run/user/0
再次尝试也是同样报错。
查询我当前glibc版本
[root@host-16-0-0-23 yashan]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.17
GLIBCXX_DEBUG_MESSAGE_LENGTH
确实是没有要求的GLIBCXX_3.4.21这个。
那目前只能是着手升级了。
下载gcc相关源码进行安装。
wget http://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
tar -xzvf gcc-5.4.0.tar.gz
cd gcc-5.4.0
./contrib/download_prerequisites
./configure
make -j 4
make install
期间输出在此略过。
安装完毕后检查glibc版本:
[root@host-16-0-0-23 ~]# strings /usr/local/lib64/libstdc++.so.6.0.21 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.17
已经包含所需版本。替换软连接:
cd /usr/lib64/
ln -sf /usr/local/lib64/libstdc++.so.6.0.21 libstdc++.so.6
再次尝试deploy:
[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster deploy -t yashandb.toml
cluster: yashandb is alredy deployed, only support 1 cluster in yasom
此时提示我们已被deploy。
我们先尝试了启动环境,遇到了报错(没截图~大体就是数据文件不完整,原因应该就是deploy过程没有成功结束。),所以我们需要先清理掉当前环境重新进行deploy。
[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster clean -c yashandb
Are you sure you want to CLEAN cluster: [yashandb], DATA PATH WILL BE SAVED
[yes/no]: yes
type | uuid | name | hostid | index | status | return_code | progress | cost
-----------------------------------------------------------------------------------------------------------
task | 8748e73e1a24049b | CleanYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 1
------+------------------+-------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS
再次deploy。提示文件已存在。
[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster deploy -t yashandb.toml
type | uuid | name | hostid | index | status | return_code | progress | cost
-----------------------------------------------------------------------------------------------------------
task | 0e94b8105cc0a76c | DeployYasdbCluster | - | yashandb | FAILED | 1 | 100 | 2
------+------------------+--------------------+--------+----------+--------+-------------+----------+------
task completed, status: FAILED
retcode: 1
stdout: gen node sys password
stderr: gen yaspwd failed, YASPW-00001 file '/data/yashan/yasdb_data/db-1-1/instance/yasdb.pwd' already exists
原因是clean过程不会清理数据目录,输入yes之前我们也可以看到相关提示“DATA PATH WILL BE SAVED”。
清理data并clean。
[root@host-16-0-0-23 yashan]# rm -rf /data/yashan/yasdb_data/db-1-1/
[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster clean -c yashandb
重新deploy。
[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster deploy -t yashandb.toml
type | uuid | name | hostid | index | status | return_code | progress | cost
------------------------------------------------------------------------------------------------------------
task | 6909df8d7f0a7977 | DeployYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 1218
------+------------------+--------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS
从命令执行完回车开始至返回“task completed, status: SUCCESS”为止,共持续了28分钟,期间也看不到进度条之类的进度信息,让我一度以为是环境还是卡在了哪里。在技术群也咨询了下,让查询om目录下的日志文件。
[root@host-16-0-0-23 om]# cat yasboot.log
2023-11-29 15:04:13 DEBUG [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
2023-11-29 15:15:11 DEBUG [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
2023-11-30 08:49:57 DEBUG [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
2023-11-30 08:52:34 DEBUG [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
2023-11-30 09:29:53 DEBUG [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
也没有实质性内容。
当时对deploy进程进行了strace,可以看到进程是有在动,估计是我虚拟机环境还是比较慢。
最终检查状态。
[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster status -c yashandb
host_id | node_type | nodeid | pid
---------------------------------------
host0001 | db | 1-1:1 | 17025
----------+-----------+--------+-------
至此算是在我的环境上成功启动的数据库实例,可以进行下一步的学习啦~
综合本次安装过程遇到的问题,有两个建议:
1.在官方手册中明确下glibc的最低版本,避免deploy的时候遇到version `GLIBCXX_3.4.21’ not found的问题。
2.deploy过程是否可以加一下进度条之类的进度信息,或者deploy过程的日志有更详细的输出,来判断deploy是否正常。不然这28分钟什么信息也看不到界面也没有什么变化,确实会造成一些不安情绪。
体验YashanDB,报名链接:https://www.yashandb.com/YCA_courses