作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验
擅长主流数据Oracle、MySQL、PG、openGauss运维
备份恢复,安装迁移,性能优化、故障应急处理等
可提供技术业务:
1.DB故障处理/疑难杂症远程支援
2.Mysql/PG/Oracle/openGauss
数据库部署及数仓搭建
•••
微信:jem_db
QQ交流群:587159446
公众号:IT邦德
文章目录
1.YashanDB介绍
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,
经工信部下属机构权威检测,内核代码自主率100%。在经典数据库理论基础上,
融入原创的有界计算理论、近似计算理论、并行可扩展理论和跨模融合计算理论,
支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,
全面兼容私有化及云基础设施,为客户提供一站式的企业级融合数据管理解决方案,
满足金融、政府、电信、能源等关键行业对高性能、高并发及高安全性的要求。
官网:https://yashandb.com/

2.安装包下载
下载个人版数据库、驱动及相关工具进行体验
https://download.yashandb.com/download
安装包:yashandb-personal-23.2.1.100-linux-x86_64.tar.gz

3.安装环境
3.1 服务器配置
| 类别 | 推荐配置 | 最低配置 |
|---|---|---|
| 操作系统 | CentOS 7.6以上,KylinOS V10, openEuler 22.03 | - |
| CPU | X86_64,ARM64 超线程,非超线程 推荐4C及以上;共享集群推荐8C及以上 | CPU核数>2 |
| 内存 | 推荐16G及以上;共享集群推荐32G及以上 | >4G |
| 硬盘 | 推荐使用SSD 推荐存储空间50G及以上 | >4G |
| 文件系统 | ext4或xfs | 不能为tmpfs |
| 网络 | 千兆以上以太网,支持TCP和UDP;共享集群内部均要求10GE,不包含RDMA | - |
3.2 部署规模
1.单机主备部署
单机部署最小规模配置为1台服务器,但无法构建高可用环境。
可使用多台服务器构建主备形态的高可用环境。
2.分布式部署
分布式部署最小规模配置1台服务器,MN、CN、DN部署在同一台服务器上。
可使用至少3台服务器构建成MN/DN主备形态和CN多活的高可用环境。
3.共享集群部署
共享集群部署配置2台服务器+1台共享存储,搭建集群内高可用的多实例数据库。
可使用多台服务器构建主备形态的高可用集群。
4.操作系统配置
4.1 防火墙及安全服务关闭
## 关闭防火墙
systemctl stop firewalld
## 关闭开机自启
systemctl disable firewalld
##selinux临时关闭
setenforce 0
##selinux永久关闭
vim /etc/selinux/config
[root@centos79 ~]# more /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
4.2 关闭交换分区
此步操作目的是为最大限度使用物理内存
# sysctl -w vm.swappiness=0
# echo " vm.swappiness = 0">> /etc/sysctl.conf
[root@centos79 ~]# sysctl -a | grep swappiness
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.ens33.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
sysctl: reading key "net.ipv6.conf.virbr0.stable_secret"
sysctl: reading key "net.ipv6.conf.virbr0-nic.stable_secret"
vm.swappiness = 0
使变量生效
sysctl -p
4.3 分配本地端口
使用cat /proc/sys/net/ipv4/ip_local_port_range查看连接可用的本地端口范围,下限值建议大于30000以减少端口冲突。
# sysctl -w net.ipv4.ip_local_port_range='32768 60999'
# echo "net.ipv4.ip_local_port_range = 32768 60999" >> /etc/sysctl.conf
使变量生效
sysctl -p
4.4 调整进程的VMA上限
该参数作用是限制一个进程可以拥有的VMA(虚拟内存区域)的数量,调整是为了让数据库进程充分使用主机资源
# sysctl -w vm.max_map_count=2000000
# echo " vm.max_map_count=2000000" >> /etc/sysctl.conf
使变量生效
sysctl -p
4.5 调整资源限制值
将部分资源限制值(使用ulimit -a可查看所有的资源限制值)调整为推荐值或以上。
# ulimit -n 65536 #设置可以打开的最大的文件描述符数量65536(单位:个)
# ulimit -u 65536 #设置可以打开的最大的进程数65536(单位:个)
# ulimit -m unlimited #设置没有限制的使用常驻内存的大小(单位:kbytes)
# ulimit -s 8192 #设置可以使用linux的默认栈空间大小是8192kb(单位:kbytes)
vi /etc/security/limits.conf
在文件 /etc/security/limits.conf 后面添加以下内容:
yashan soft nofile 65536
#表示yashan用户可以打开的最大的文件描述符数量65536个
yashan hard nofile 65536
yashan soft nproc 65536
#表示yashan用户可以打开的最大的进程数65536个
yashan hard nproc 65536
yashan soft rss unlimited
#表示yashan用户可以没有限制的使用常驻内存的大小
yashan hard rss unlimited
yashan soft stack 8192
#表示yashan用户可以使用linux的默认栈空间大小是8192kb
yashan hard stack 8192
| 资源项 | 推荐值 | COMMAND | 资源项说明 |
|---|---|---|---|
| open files | 1048576 | ulimit -n 1048576 vi /etc/security/limits.conf后添加 * soft nofile 1048576 * hard nofile 1048576 | 进程打开的文件数 |
| max user processes | 1048576 | ulimit -u 1048576 vi /etc/security/limits.conf后添加 * soft nproc 1048576 * hard nproc 1048576 | 最大用户进程数 |
| max memory size | unlimited | ulimit -m unlimited vi /etc/security/limits.conf后添加 * soft rss unlimited * hard rss unlimited | 进程最大占用内存值 |
| stack size | 8192 | ulimit -s 8192 vi /etc/security/limits.conf后添加 * soft stack 8192 * hard stack 8192 | 进程最大栈空间 |
5.用户及目录创建
5.1 YashanDB用户
useradd -d /home/yashan -m yashan
passwd yashan
将安装用户加入YASDBA用户组
$ groupadd YASDBA
$ usermod -a -G YASDBA yashan
5.2 配置sudo免密
## 对root用户赋权并打开/etc/sudoers文件
cd /etc
ll sudoers
chmod +w sudoers
vi /etc/sudoers
## 在文件的最后添加如下内容后保存退出
yashan ALL=(ALL)NOPASSWD:ALL
按需恢复/etc/sudoers文件的属性。
chmod -w sudoers
5.3 创建软件安装目录
su - yashan
mkdir ~/install
cd ~/install
[yashan@centos79 ~]$ cd install/
[yashan@centos79 install]$ tar zxf /opt/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz -C ./
[yashan@centos79 install]$ ll
total 64
drwxrwxr-x. 6 yashan yashan 4096 Apr 1 10:49 admin
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 bin
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 conf
drwxrwxr-x. 5 yashan yashan 4096 Apr 1 10:49 ext
-rw-rw-r--. 1 yashan yashan 9998 Apr 1 10:49 gitmoduleversion.dat
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 include
drwxrwxr-x. 3 yashan yashan 4096 Apr 1 10:49 java
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 lib
-rw-r-----. 1 yashan yashan 14989 Apr 1 10:49 LICENSE
drwxrwxr-x. 3 yashan yashan 4096 Apr 1 10:49 plug-in
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 scripts
6.单节点部署
6.1 生成部署文件
本安装中,HOME目录和DATA目录均规划在/data/yashan下
mkdir -p /data/yashan
chmod -R 770 /data/yashan
chown -R yashan:yashan /data/yashan
1.执行yasboot package命令生成配置文件
[root@centos79 ~]# su - yashan
Last login: Wed Apr 24 07:32:18 CST 2024 on pts/0
[yashan@centos79 ~]$ cd install
[yashan@centos79 install]$ ll
total 64
drwxrwxr-x. 6 yashan yashan 4096 Apr 1 10:49 admin
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 bin
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 conf
drwxrwxr-x. 5 yashan yashan 4096 Apr 1 10:49 ext
-rw-rw-r--. 1 yashan yashan 9998 Apr 1 10:49 gitmoduleversion.dat
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 include
drwxrwxr-x. 3 yashan yashan 4096 Apr 1 10:49 java
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 lib
-rw-r-----. 1 yashan yashan 14989 Apr 1 10:49 LICENSE
drwxrwxr-x. 3 yashan yashan 4096 Apr 1 10:49 plug-in
drwxrwxr-x. 2 yashan yashan 4096 Apr 1 10:49 scripts
./bin/yasboot package se gen --cluster yashandb \
-u yashan -p yashan --ip 192.168.3.10 --port 22 \
--install-path /data/yashan/yasdb_home \
--data-path /data/yashan/yasdb_data --begin-port 1688
参数说明
--cluster 指定数据库集群名称,该名称也将作为集群中所有节点上初始创建数据库的名称(database name)
--port 指定SSH服务端口
--install-path 指定数据库安装路径
--data-path 指定数据存放目录
--begin-port 指定数据库监听端口
执行完毕后,当前目录下将生成yashandb.toml和hosts.toml两个配置文件,可手动修改,
但不建议删除文件中任何行,否则可能导致后续安装过程报错,或所搭建的环境后续无法进行扩展配置。
yashandb.toml:数据库集群的配置文件。
hosts.toml:主机的配置文件。

6.2 执行安装
[root@centos79 ~]# su - yashan
Last login: Wed Apr 24 07:32:18 CST 2024 on pts/0
[yashan@centos79 ~]$ cd install
./bin/yasboot package install -t hosts.toml -i /opt/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz
[yashan@centos79 install]$ ./bin/yasboot package install -t hosts.toml -i /opt/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz
192.168.3.10
ip:192.168.3.10 memory is less than 4096MB
config check failed
[yashan@centos79 install]$ free -g
total used free shared buff/cache available
Mem: 3 0 1 0 1 2
Swap: 4 0 4
此时加大内存即可解决,官方要求最少大于4G
[yashan@centos79 install]$ ./bin/yasboot package install -t hosts.toml -i /opt/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz
checking install package...
install version: yashandb 23.2.1.100
host0001 100% [====================================================================] 24s
update host to yasom...

6.3 部署数据库
su - yashan
[yashan@centos79 ~]$ cd install/
[yashan@centos79 install]$ ./bin/yasboot cluster deploy -t yashandb.toml
type | uuid | name | hostid | index | status | return_code | progress | cost
------------------------------------------------------------------------------------------------------------
task | dc258cb879402d5b | DeployYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 9
------+------------------+--------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS
task completed, status: SUCCESS表示安装成功

7.配置环境变量
##执行如下命令,生效环境变量。
部署命令成功执行后将会在$YASDB_HOME目录下的conf文件夹中生成<<集群名称>>.bashrc环境变量文件
cd /data/yashan/yasdb_home/yashandb/23.2.1.100/conf
cat yashandb.bashrc >> ~/.bashrc
source ~/.bashrc

8.安装使用
1.密码修改
YashanDB不提供系统初始口令,请以安装用户登录192.168.1.2服务器并通过yasboot工具设置集群内所有节点sys用户的密码。
[yashan@centos79 ~]$ yasboot cluster password set -n newpasswd -c yashandb
type | uuid | name | hostid | index | status | return_code | progress | cost
---------------------------------------------------------------------------------------------------------
task | f8998d97bc0ddb8b | YasdbPasswordSet | - | yashandb | FAILED | 1 | 100 | 1
------+------------------+------------------+--------+----------+--------+-------------+----------+------
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 digit
[yashan@centos79 ~]$ yasboot cluster password set -n Jeames$007 -c yashandb
2.查看数据库状态
[yashan@centos79 ~]$ yasboot cluster status -c yashandb -d

3.使用yasboot工具连接数据库,查看实例状态
yasboot sql -d sys/Jeames$007@192.168.3.10:1688
使用yasql工具连接数据库,创建数据库用户并赋权
SQL> CREATE USER sales IDENTIFIED BY sales;
SQL> GRANT CONNECT TO SALES;
GRANT CONNECT TO SALES;
Succeed.
SQL> conn sales/sales
conn sales/sales
Connected to:
YashanDB Server Personal Edition Release 23.2.1.100 x86_64 - X86 64bit Linux
4.实例启停
yasboot cluster stop -c yashandb
yasboot cluster start -c yashandb

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




