前言
近期,YashanDB 个人版已经在YCA认证群里开放了下载地址,代表着广大DBA都可以使用该版本的包测试使用。下载地址:download.yashandb.com

因为是测试环境,所以我的目标是,能快速将数据库环境正常部署起来即可,不一定是最优的,但是是可以正常运行的。
下面是下载安装介质到安装成功的详细操作步骤以及一些常见问题记录。仅供参考。
1. 下载安装介质
1.访问下载网址,可以发现有关系YashanDB个人版的一些安装包,包括数据库和各类驱动。我的测试环境是x86的,所以下载第一个包。

可以通过下面命令查看自己的测试环境是什么架构的
[root@yashandb1 ~]# uname -m
x86_64
2.点击下载需要输入手机号登录。如果没有注册,注意需要点击接受验证码,来注册(当时没有点击,等了半天没有收到验证码,结果需要手动点击…),问题不大。如果注册了的,通过手机号登录就行。

3.登录上去之后,同意软件协议就可以下载了

4.坐等下载完成

2. 安装部署
2.0 主机环境
| ip | hostname | CPU/内存/磁盘 |
|---|---|---|
| 192.168.3.176 | yashandb1 | 4C/32G/500G |
2.1 虚拟机准备
准备一台centos7的虚拟机的就可以了,配置的话官方文档写的2C4G50G(CPU/内存/磁盘)。
个人感觉1C2G也能跑,磁盘空间也不用那么大,一个软件包224M,测试的话,估计20G足以。
#操作系统版本
[root@yashandb1 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
2.2 系统参数调整
参考官方文档说的

在root用户下执行
echo "
yashan soft nofile 65536
yashan hard nofile 65536
yashan soft nproc 65536
yashan hard nproc 65536
yashan soft rss unlimited
yashan hard rss unlimited
yashan soft stack 8192
yashan hard stack 8192
" >> /etc/security/limits.conf
这里的yashan就是后面我们用户创建和维护数据库的系统用户
2.3 创建系统用户及用户组
创建yashan用户(这个系统用户名可以随便起,但是要跟上述的用户名对应好),后面YashanDB的部署在该用户下操作
groupadd YASDBA
useradd yashan -G YASDBA
echo "yashan"|passwd --stdin yashan #密码为yashan
2.4 解压软件包&安装
2.4.1 想办法将软件包从个人PC机传到虚拟机上。
[yashan@yashandb1 soft]$ pwd
/home/yashan/soft
[yashan@yashandb1 soft]$ ll
total 249684
-rw-r--r--. 1 root root 255673923 Oct 27 16:56 yashandb-personal-23.1.1.100-linux-x86_64.tar.gz
2.4.2 解压
[yashan@yashandb1 soft]$ tar -zxvf yashandb-personal-23.1.1.100-linux-x86_64.tar.gz [yashan@yashandb1 soft]$ ll total 249724 drwxrwxr-x. 6 yashan yashan 70 Oct 19 15:59 admin drwxrwxr-x. 2 yashan yashan 4096 Oct 19 15:59 bin drwxrwxr-x. 2 yashan yashan 152 Oct 19 15:59 conf drwxrwxr-x. 5 yashan yashan 60 Oct 19 15:59 ext -rw-rw-r--. 1 yashan yashan 11632 Oct 19 15:59 gitmoduleversion.dat drwxrwxr-x. 2 yashan yashan 65 Oct 19 15:59 include drwxrwxr-x. 3 yashan yashan 17 Oct 19 15:59 java drwxr-xr-x. 2 yashan yashan 4096 Oct 19 15:59 lib -rw-r-----. 1 yashan yashan 14989 Oct 19 15:38 LICENSE drwxrwxr-x. 3 yashan yashan 21 Oct 19 15:59 plug-in drwxrwxr-x. 2 yashan yashan 170 Oct 19 15:59 scripts -rw-r--r--. 1 root root 255673923 Oct 27 16:56 yashandb-personal-23.1.1.100-linux-x86_64.tar.gz
2.4.3 生成配置文件
[yashan@yashandb1 soft]$ ./bin/yasboot package se gen --cluster yashandb -u yashan -p yashan --ip 192.168.3.176 --port 22 --install-path /home/yashan/yasdb_home --data-path /home/yashan/yasdb_data --begin-port 1688 hostid | group | node_type | node_name | listen_addr | replication_addr | data_path -------------------------------------------------------------------------------------------------------------- host0001 | dbg1 | db | 1-1 | 192.168.3.176:1688 | 192.168.3.176:1689 | /home/yashan/yasdb_data ----------+-------+-----------+-----------+--------------------+--------------------+------------------------- Generate config success
执行完之后,当前目录下将生成yashandb.toml和hosts.toml两个配置文件,yashandb.toml为数据库集群的配置文件,hosts.toml为主机的配置文件。我没改,就按默认的走。

2.4.4 执行安装(安装数据库软件)
[yashan@yashandb1 soft]$ ./bin/yasboot package install -t hosts.toml -i yashandb-personal-23.1.1.100-linux-x86_64.tar.gz checking install package... install version: yashandb 23.1.1.100 host0001 100% [====================================================================] 3s update host to yasom...
执行完成,就会生成/home/yashan/yasdb_home目录文件,也就是YashanDB的home目录

2.4.5 创建数据库
[yashan@yashandb1 soft]$ ./bin/yasboot cluster deploy -t yashandb.toml
type | uuid | name | hostid | index | status | return_code | progress | cost
------------------------------------------------------------------------------------------------------------
task | 784d9638892510fb | DeployYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 9
------+------------------+--------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS
[yashan@yashandb1 soft]$ ./bin/yasboot cluster deploy -t yashandb.toml
type | uuid | name | hostid | index | status | return_code | progress | cost
------------------------------------------------------------------------------------------------------------
task | 784d9638892510fb | DeployYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 9
------+------------------+--------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS
[yashan@yashandb1 soft]$ ps -ef|grep yasdb
yashan 31319 1 0 17:34 ? 00:00:00 /home/yashan/yasdb_home/yashandb/23.1.1.100/bin/yasagent --init -c yashandb -l 192.168.3.176:1676 --host-id host0001 -k 55f9cb1456c3c202 -d
yashan 31348 1 0 17:34 ? 00:00:00 /home/yashan/yasdb_home/yashandb/23.1.1.100/bin/yasom --init -c yashandb -l 192.168.3.176:1675 -k 55f9cb1456c3c202 -d
yashan 31646 1 17 17:37 ? 00:00:06 /home/yashan/yasdb_home/yashandb/23.1.1.100/bin/yasdb nomount -D /home/yashan/yasdb_data/db-1-1
yashan 31741 30581 0 17:38 pts/0 00:00:00 grep --color=auto yasdb
创建完成,数据库实例就起来了。此时,/home/yashan/yasdb_data目录也会建起来。

2.4.6 配置环境变量
按照官方文档所说,部署命令成功执行后将会在$YASDB_HOME目录下的conf文件夹中生成<<集群名称>>.bashrc环境变量文件。
咱直接切换到home目录下,把环境变量写入到/.bashrc(这里代表的就是当前系统用户的home目录),source就是使环境变量生效。
[yashan@yashandb1 soft]$ cd /home/yashan/yasdb_home/yashandb/23.1.1.100/conf
[yashan@yashandb1 conf]$ cat yashandb.bashrc >> ~/.bashrc
[yashan@yashandb1 conf]$ source ~/.bashrc
2.4.7 设置sys用户密码
这个密码不设置是登录不上去的。因为YashanDB不提供系统初始口令。
回到刚刚的解压目录操作。
[yashan@yashandb1 conf]$ cd /home/yashan/soft/
[yashan@yashandb1 soft]$ ./bin/yasboot cluster password set -n 123456 -c yashandb
type | uuid | name | hostid | index | status | return_code | progress | cost
---------------------------------------------------------------------------------------------------------
task | 1b6f08075f05192a | YasdbPasswordSet | - | yashandb | FAILED | 1 | 100 | 2
------+------------------+------------------+--------+----------+--------+-------------+----------+------
task completed, status: FAILED
retcode: 1
stdout: generate password file
stderr: generate yaspwd file failed, YASPW-00002 password complexity failed for SYS user : password must contain at least 8 characters
err:
[yashan@yashandb1 soft]$ ./bin/yasboot cluster password set -n 12345678 -c yashandb
type | uuid | name | hostid | index | status | return_code | progress | cost
---------------------------------------------------------------------------------------------------------
task | f9228ceebdd545a1 | YasdbPasswordSet | - | yashandb | FAILED | 1 | 100 | 2
------+------------------+------------------+--------+----------+--------+-------------+----------+------
task completed, status: FAILED
retcode: 1
stdout: generate password file
stderr: generate yaspwd file failed, YASPW-00002 password complexity failed for SYS user : password must contain at least 1 letter
err:
[yashan@yashandb1 soft]$ ./bin/yasboot cluster password set -n Asdf123. -c yashandb
type | uuid | name | hostid | index | status | return_code | progress | cost
----------------------------------------------------------------------------------------------------------
task | d98474e573c5cd2a | YasdbPasswordSet | - | yashandb | SUCCESS | 0 | 100 | 2
------+------------------+------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS
这里有个雷,设置的密码好像要满足一定的复杂性,但是官方文档没有说明,热心市民已经在文档反馈了~

2.4.8 登录数据库
[yashan@yashandb1 soft]$ yasql sys/Asdf123.
YashanDB SQL Personal Edition Release 23.1.1.100 x86_64
Connected to:
YashanDB Server Personal Edition Release 23.1.1.100 x86_64 - X86 64bit Linux
SQL> select status,version from v$instance;
STATUS VERSION
------------- ----------------------------------------------------------------
OPEN Personal Edition Release 23.1.1.100 x86_64
1 row fetched.
3 易用技巧
发现yasql没有上下翻的功能,连删除也需要加上ctrl,决定使用rlwrap调优一把,方便自己使用。
上传不了附件,IT人总有法子能弄到这个rlwrap包的。
开箱即用,在环境变量里面配置一下即可。





