一、YashanDB介绍
崖山数据库管理系统(YashanDB)是深圳计算科学研究院在经典数据库理论基础上,融入新的原创理论,自主设计、研发的新型数据库管理系统,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP 交易和分析混合负载场景;
主要产品体系及工具体系:
二、YashanDB软件下载
目前YashanDB数据库的版本主要有以下3个:
个人版:
YashanDB面向个人用户推出的免费试用版本,该版本包含YashanDB数据库所有基础核心能力,支持单机主备部署形态,配套开发者工具,供个人用户或开发者用于学习、测试、开发用途;
个人版不支持多模数据类型、高级安全能力、数据库集群等企业级功能;
标准版:
YashanDB面向小规模用户推出的商业版本,该版本包含YashanDB数据库所有基础核心能力,支持单机主备、分布式、共享集群部署形态,配套完整数据迁移和监控运维工具,可以为政府或中小企业提供支撑其业务所需的基本能力。
标准版除不支持多模数据类型、高级安全能力等企业级功能
企业版:
YashanDB面向大规模用户推出的商业版本,该版本包含YashanDB数据库完整核心能力,支持PB级海量数据存储和大量的并发用户,支持多模数据类型、高级安全能力,支持单机主备、分布式、共享集群部署形态,配套完整数据迁移和监控运维工具,可以满足支撑各类企业应用。
目前仅开放个人版本下载体验,下载地址:https://download.yashandb.com/download
本文以Linux X86平台为主;
三、YashanDB部署安装
单机架构
传统的关系型数据库理论与创新的底座引擎技术相结合,适用于集中式事务业务场景,支持主备形态。
体系结构:
- 共享内存区域保障高速高效;
- 线程区域包含各种后台线程处理数据;
- 文件区域包含各种持久化存储文件;
OS环境准备
虚拟机系统:oracle linux 7.9,2c,8g,30GB;内存至少4G+,否则无法安装;
安装用户:yashan
软件目录:/app/install
安装目录:/app/yasdb_home
数据目录:/app/yasdb_data
安装部署
创建用户并修改密码
[root@db01 ~]# useradd yashan [root@db01 ~]# passwd yashan 更改用户 yashan 的密码 。 新的 密码: 无效的密码: 密码少于 8 个字符 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。
复制
操作系统参数调整
修改配置文件/etc/security/limits.conf
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
复制
创建目录并授权
mkdir -p /app/yasdb_home mkdir -p /app/yasdb_data mkdir -p /app/install chown -R yashan:yashan /app
复制
上传安装包到install目录并解压:yashandb-personal-23.1.1.100-linux-x86_64.tar.gz
生成参数文件
[yashan@db01 install]$ ./bin/yasboot package se gen --cluster yashandb -u yashan -p yashan --ip 192.168.93.129 --port 22 --install-path /app/yasdb_home --data-path /app/yasdb_data --begin-port 1688 hostid | group | node_type | node_name | listen_addr | replication_addr | data_path -------------------------------------------------------------------------------------------------------- host0001 | dbg1 | db | 1-1 | 192.168.93.129:1688 | 192.168.93.129:1689 | /app/yasdb_data ----------+-------+-----------+-----------+---------------------+---------------------+----------------- Generate config success
复制
执行安装:yashandb-personal-23.1.1.100-linux-x86_64.tar.gz
[yashan@db01 install]$ ./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...
复制
执行部署
[yashan@db01 install]$ ./bin/yasboot cluster deploy -t yashandb.toml type | uuid | name | hostid | index | status | return_code | progress | cost ------------------------------------------------------------------------------------------------------------ task | 8091cd8e816a1518 | DeployYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 63 ------+------------------+--------------------+--------+----------+---------+-------------+----------+------ task completed, status: SUCCESS
复制
配置环境变量:
[yashan@db01 install]$ cd /app/yasdb_home/yashandb/23.1.1.100/conf [yashan@db01 conf]$ [yashan@db01 conf]$ cat yashandb.bashrc export YASDB_HOME=/app/yasdb_home/yashandb/23.1.1.100 export PATH=${YASDB_HOME}/bin:$PATH export LD_LIBRARY_PATH=${YASDB_HOME}/lib:$LD_LIBRARY_PATH if command -v rlwrap >/dev/null 2>&1; then alias yasql="rlwrap yasql" fi export YASDB_DATA=/app/yasdb_data/db-1-1 [yashan@db01 conf]$ [yashan@db01 conf]$ cat yashandb.bashrc >> ~/.bashrc [yashan@db01 conf]$ source ~/.bashrc [yashan@db01 conf]$ [yashan@db01 conf]$ env|grep YAS YASDB_HOME=/app/yasdb_home/yashandb/23.1.1.100 YASDB_DATA=/app/yasdb_data/db-1-1
复制
设置sys用户密码:至少8位,至少包含1个特殊字符,好像没有限制大写字母
[yashan@db01 conf]$ cd /app/yasdb_data/db-1-1/instance [yashan@db01 instance]$ ls yasdb.ipc yasdb.pid yasdb.pwd [yashan@db01 instance]$ [yashan@db01 instance]$ mv yasdb.pwd yasdb1.pwd [yashan@db01 instance]$ yaspwd file=yasdb.pwd Enter password for SYS:yas123 YASPW-00002 password complexity failed for SYS user : password must contain at least 8 characters [yashan@db01 instance]$ [yashan@db01 instance]$ yaspwd file=yasdb.pwd Enter password for SYS:yasdb123 YASPW-00002 password complexity failed for SYS user : password must contain at least 1 special character [yashan@db01 instance]$ yaspwd file=yasdb.pwd Enter password for SYS:yasdb_123
复制
使用YasBoot查看YashanDB数据库状态,显示以下信息表示安装成功
[yashan@db01 instance]$ yasboot cluster status -c yashandb host_id | node_type | nodeid | pid --------------------------------------- host0001 | db | 1-1:1 | 21938 ----------+-----------+--------+------- [yashan@db01 instance]$ ps -ef|grep yas root 4130 2446 0 16:34 pts/0 00:00:00 su - yashan yashan 4131 4130 0 16:34 pts/0 00:00:00 -bash yashan 7200 1 0 16:38 ? 00:00:01 /app/yasdb_home/yashandb/23.1.1.100/bin/yasagent --init -c yashandb -l 192.168.93.129:1676 --host-id host0001 -k 938ceba2b6d28c35 -d yashan 7244 1 0 16:38 ? 00:00:02 /app/yasdb_home/yashandb/23.1.1.100/bin/yasom --init -c yashandb -l 192.168.93.129:1675 -k 938ceba2b6d28c35 -d yashan 21938 1 10 17:05 ? 00:01:21 /app/yasdb_home/yashandb/23.1.1.100/bin/yasdb nomount -D /app/yasdb_data/db-1-1 yashan 28990 4131 0 17:17 pts/0 00:00:00 ps -ef yashan 28991 4131 0 17:17 pts/0 00:00:00 grep --color=auto yas
复制
登陆验证,显示以下信息表示登陆成功
[yashan@db01 instance]$ 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 database_name,open_mode from v$database; DATABASE_NAME OPEN_MODE ---------------------------------------------------------------- ----------------- yashandb READ_WRITE 1 row fetched. SQL> SQL> select instance_name,status from v$instance; INSTANCE_NAME STATUS ---------------------------------------------------------------- ------------- yasdb OPEN 1 row fetched.
复制
四、图形化工具管理维护
- 开发运维工具:DBeaver for YashanDB
是基于流行的开源图形化工具DBeaver,在严格遵循DBeaver Community Edition 的ASL开源协议基础上,进行了二次开发和封装,支持管理单机、集群和分布式三种形态的YashanDB数据库图形化开发及管理;
连接配置
慢日志参数配置:超过1000毫秒记录到日志
表空间维护:ADD-RESIZE-DROP
SQL> ALTER TABLESPACE users ADD DATAFILE '?/dbfiles/users01' SIZE 100M; Succeed.
复制
SQL> ALTER DATABASE DATAFILE '?/dbfiles/users01' RESIZE 20M; Succeed.
复制
SQL> ALTER TABLESPACE users DROP DATAFILE '?/dbfiles/users01'; Succeed.
复制
日志查看
- 日志参数配置
[yashan@db01 run]$ tail -f /app/yasdb_home/yashandb/23.1.1.100/log/yashandb/db-1-1/run/run.log 2023-12-01 17:05:59.013 22051 [INFO] [HA] redo receiver thread exited 2023-12-01 17:05:59.014 22121 [INFO] [HA] start redo senders for primary 2023-12-01 17:05:59.015 22121 [INFO] [HA] stop redo receiver 0 2023-12-01 18:03:26.601 22092 [INFO] [TABLESPACE] try to update instance 0 's space change lsn from 3337 to 4256 2023-12-01 18:03:26.606 22092 [INFO] [TABLESPACE] succeed to create datafile /app/yasdb_data/db-1-1/dbfiles/users01 2023-12-01 18:06:48.958 22092 [INFO] [DATAFILE] datafile /app/yasdb_data/db-1-1/dbfiles/users01 truncLsn is 0, current lsn 4269 2023-12-01 18:06:48.967 22092 [INFO] [TABLESPACE] try to update instance 0 's space change lsn from 4256 to 4270 2023-12-01 18:06:48.978 22092 [INFO] [TABLESPACE] succeed to truncate datafile /app/yasdb_data/db-1-1/dbfiles/users01 to 20971520 bytes 2023-12-01 18:07:52.969 22092 [INFO] [TABLESPACE] try to update instance 0 's space change lsn from 4270 to 4271 2023-12-01 18:07:52.973 22092 [INFO] [TABLESPACE] succeed to drop datafile /app/yasdb_data/db-1-1/dbfiles/users01
复制
五、体验总结
结合了官方文档的说明,初步完成了单机版yashandb的安装部署,官方文档非常详细,通俗易懂,即使第一次安装也是很快能够完成部署,Yashandb是单进程多线程架构,内存结构和oracle相似,并且Yashandb独特的有界计算是一大亮点;Yashandb语法和oracle高度兼容,对于熟悉oracle的小伙伴可以平滑过渡到Yashandb,非常友好;
- YashanDB在墨天轮11月报告中表现亮眼
YashanDB 本月得分96.29分,排名较上月提升11个位次,新增30篇论文。YashanDB 作为一款企业级 数据库,今年正式推出“1+3”产品体系,即一个数据库产品和三个产品化工具平台,可为企业提供全面、高效的一站式融合数据管理解决方案。
期待未来YashanDB能够带给我们更多精彩内容!