一、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能够带给我们更多精彩内容!