最近墨天轮首页看到很多朋友写的YashanDB的体验,加上这个名字实在是太吸引我了。于是周六一大早吃完早饭就开始搞,中间多少遇到一点坑,但是整体来说,仍然是超过我预期的。
资源准备
系统配置:
系统配置我参考了官网手册的配置,做一台虚机,因为不想花太多时间折腾多节点版本,所以就选了一个单节点版。
操作系统:Redhat 8.8
CPU:4C
内存:32G
硬盘:60G
文件系统:SSD
下载链接:
https://download.yashandb.com/download
下载了personal版和云管理工具YCM
部署文档:
https://doc.yashandb.com/yashandb/23.1
https://doc.yashandb.com/ycm/23.1/
安装部署
和单机版Oracle部署比较接近,在正式安装部署之前,需要创建用户、修改系统参数、创建文件夹几个步骤:
1.创建用户
useradd yashan
passwd yashan
2.修改系统参数
YashanDB这里主要是修改limits文件,其他地方不用动,一个命令搞定然后重启生效:
echo "
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft rss unlimited
* hard rss unlimited
* soft stack 8192
* hard stack 8192
" >> /etc/security/limits.conf
3.创建文件夹
官网文档推荐的是/home/yashan,我个人习惯是建立了一个目录/opt/app/yashan,把所有相关的文件都部署在这里
# mkdir -p /opt/app/yashan/install
# cd /opt/app
# chown -R yashan yashan
4.解压缩文件
我下载的是yashandb-personal-23.1.1.100-linux-x86_64.tar.gz,大家根据下载时间可能小版本号有所不同,将这个文件复制到install目录下解压缩
$ tar -zxvf yashandb-personal-23.1.1.100-linux-x86_64.tar.gz
5.生成配置文件
这一步骤是用于部署时调用的toml文件,在install目录下使用命令,这里的IP和端口号什么的都可以根据自己实际情况来改
$ ./bin/yasboot package se gen --cluster yashandb -u yashan -p yashandbV23 --ip 192.168.32.101 --port 22 --install-path /opt/app/yashan/yasdb_home --data-path /opt/app/yashan/yasdb_data --begin-port 1688
看到Generate config success就意味着成功了
几个参数的意义如下:
--cluster 数据库集群的名字
-u 操作系统用户名
-p 对应的密码
--ip 部署的目标服务器,建议这里不要写127.0.0.1和localhost
--port ssh 端口号
--install-path 数据库软件安装路径,约等于ORACLE_HOME
--data-path 数据文件所在路径,约等于ORADATA目录
--begin-port 数据库服务的起始端口号
这步完成之后,会生成两个toml文件yashandb.toml和hosts.toml,保险起见再vim进去看看,有没有哪里有误
6.安装数据库
执行如下命令,安装数据库软件,会有一个进度条
$ ./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% [====================================================================] 5s
update host to yasom…
**这里需要注意的是,如果这一步骤出了问题,一定要手动删掉之前的install-path路径,并且重新将tar包复制到install目录下一份,否则会出现解压失败,**不知道是不是bug,我在这里反复出现解压失败,然后发现install目录下的tar包解压也会失败,只能重新下载一份。
7.部署数据库
这一步骤约等于Oracle的DBCA,创建并注册一个数据库实例
$ ./bin/yasboot cluster deploy -t yashandb.toml
同时修改环境变量
$ cd /opt/app/yashan/yasdb_home/yashandb/23.1.1.100/conf
# 如~/.bashrc中已存在YashanDB相关的环境变量,将其清除
$ cat yashandb.bashrc >> ~/.bashrc
$ source ~/.bashrc
设置sys密码,这里的命令确实是可以把Oracle的使用习惯迁移过来
$ cd /opt/app/yashan/yasdb_data/db-1-1/instance
$ mv yasdb.pwd yasdb1.pwd
$ yaspwd file=yasdb.pwd
Enter password for SYS:
8.验证结果
如果如上步骤都完成了,就可以看到当前实例的运行状态
$ yasboot cluster status -c yashandb
host_id | node_type | nodeid | pid
--------------------------------------
host0001 | db | 1-1:1 | 8554
目前pid是8554,我们在用命令提示行登录:
Enter password for SYS:yasdb_123
$ yasql sys/yasdb_123
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>
能够看到已经成功登入,再做个简单查询:
SQL> select * from dba_Data_files;
---------------------------------------------------------------- ------------ ---------------------------------------------------------------- --------------------- ------------ --------- --------------------- ----------- ----------- --------------------- --------------------- ------------
/opt/app/yashan/yasdb_data/db-1-1/dbfiles/system 0 SYSTEM 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 47120384 5752
/opt/app/yashan/yasdb_data/db-1-1/dbfiles/sysaux 1 SYSAUX 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 64880640 7920
/opt/app/yashan/yasdb_data/db-1-1/dbfiles/temp 2 TEMP 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 61865984 7552
/opt/app/yashan/yasdb_data/db-1-1/dbfiles/swap 3 SWAP 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 66060288 8064
/opt/app/yashan/yasdb_data/db-1-1/dbfiles/users 4 USERS 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 66060288 8064
/opt/app/yashan/yasdb_data/db-1-1/dbfiles/undo 5 UNDO 134217728 16384 ONLINE 68719476736 8388608 ON 67108864 58195968 7104
6 rows fetched.
SQL> select database_id,database_name from v$database;
DATABASE_ID DATABASE_NAME
--------------------- ----------------------------------------------------------------
2682529795 yashandb
1 row fetched.
这里让我感到惊讶的是,凭着自己对Oracle肌肉记忆敲出来的命令,竟然全都抛出结果了,兼容性做到这个程度,让我意外惊喜。
部署Cloud Manger
实例的部署时间比预期少很多,既然YCM都下载了,那就一起部署吧。
1.准备工作
先按照官方文档把libnsl安装了,因为我用的是Redhat8.8,所以还是用了allowerasing参数把个别rpm包降级,如果你用的不是这么高版本可以不加
yum install libnsl
2.部署YCM
我在/opt/app/yashan下创建一个目录ycm,把压缩包复制到里面解压缩后,只需要对一个ycm-init操作即可
# ./ycm-init deploy
这中间如果报错,大概率是一些系统文件比如rc.local没有+x权限导致,根据自己报错情况调整即可,然后启动web服务
# ./ycm-init web
到这一步就可以去浏览器访问初始化了
3.初始化YCM
在网页端输入你的ip:9001,把各类参数填上开始初始化
4.添加服务器和数据库
在添加数据库之前需要添加服务器
然后添加数据库,这里的数据库名称就是之前初始化时cluster参数的名字,也可以从SQL命令从v$database去查(如果没有执行yasboot cluster deploy,这一步这里扫描不出来)
5.查看数据库状态
YCM内置了很多运维功能,除了折线图和各种告警信息,还可以比如创建备份策略、创建快照生成性能报告等等,很实用
总结
从部署数据库到YCM,再到完成到把文章写出来,用了大概三个小时不到,中间还有我吃午饭的时间,作为之前从没接触过YashanDB的我来说,这次部署感觉非常惊喜,做一个总结吧,优缺点都说说。
优点
- 单机版安装部署简单,几乎不需要官网文档之外的任何指导
- 对Oracle高度兼容的各种命令和使用习惯
- Cloud Manager内置的功能很常用,一看就是有老DBA参与的
不足
- 安装过程中的压缩包失效情况,不知道是不是我个人系统问题还是其他原因
- 文档中的个别概念建议做一下解释,比如密码文件是做什么的,尤其对不熟悉Oracle的用户来说
后续我希望继续再尝试使用一下不同场景,也希望YashanDB能够给我们持续带来更多惊喜。