暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[崖山数据库初体验]-YashanDB

原创 胡振兴 2023-12-25
2431

一、崖山数据库产品介绍

崖山数据库管理系统(YashanDB)是深圳计算科学研究院在经典数据库理论基础上,融入新的原创理论,自主设计、研发的新型数据库管理系统

部署形态

单机

传统的关系型数据库理论与创新的底座引擎技术相结合,适用于集中式事务业务场景,支持主备形态。

分布式

继承单机能力的原生分布式处理系统,适用于分布式分析业务场景,支持主备形态。

共享集群

基于共享存储的多活集群,提供计算/存储扩展和金融级高可用能力,适用于高端核心交易场景

产品架构

单机部署

image.png

分布式部署

image.png

共享集群部署

image.png

二、YashanDB个人版、标准版和企业版功能差异

版本描述

个人版:YashanDB面向个人用户推出的免费试用版本,除不支持多模数据类型、高级安全能力、数据库集群等企业级功能,该版本包含YashanDB数据库所有基础核心能力,支持单机主备部署形态,配套开发者工具,供个人用户或开发者用于学习、测试、开发用途。

标准版:YashanDB面向小规模用户推出的商业版本,该版本价格适中,除不支持多模数据类型、高级安全能力等企业级功能,该版本包含YashanDB数据库所有基础核心能力,支持单机主备、分布式、共享集群部署形态,配套完整数据迁移和监控运维工具,可以为政府或中小企业提供支撑其业务所需的基本能力。

企业版:YashanDB面向大规模用户推出的商业版本,该版本包含YashanDB数据库完整核心能力,支持PB级海量数据存储和大量的并发用户,支持多模数据类型、高级安全能力,支持单机主备、分布式、共享集群部署形态,配套完整数据迁移和监控运维工具,可以满足支撑各类企业应用

版本差异

image.png

三、单机部署

本章节将介绍个人版单机形态YashanDB服务端安装部署所需的前期准备,安装前请根据本文所述内容进行相关配置。

演示环境如下:

image.png

服务器准备

image.png

image.png

四、操作系统参数调整

关闭交换分区

使用 sysctl -a | grep swappiness查看当前状态

# sysctl -w vm.swappiness=0

# echo "vm.swappiness = 0">> /etc/sysctl.conf


image.png

调整自动分配本地端口范围

下限值建议大于30000。

sysctl -w net.ipv4.ip_local_port_range='32768 60999'

echo "net.ipv4.ip_local_port_range = 32768 60999" >> /etc/sysctl.conf


image.png

本调整对ipv6同样生效

调整进程的VMA上限

使用

sysctl -a|grep vm.max_map_count查看当前上限值,建议大于2000000

sysctl -w vm.max_map_count=2000000

echo "vm.max_map_count=2000000" >> /etc/sysctl.conf


调整资源限制值

将一些内核参数所定义的资源限制值(使用ulimit -a可查看所有的资源限制值)调整为大于或等于最小要求的某个值,具体如下

vi /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

* soft nproc 65536

* hard nproc 65536

* soft rss unlimited

* hard rss unlimited

* soft stack 8192

* hard stack 8192


关闭透明大页

标准大页内存会在系统启动时预分配,而透明大页会在运行时动态分配大页内存,可能产生运行时错误,造成 YashanDB 被终止。我们建议您在安装时,关闭操作系统透明大页(Transparent HugePages)选项

查看透明大页是否开启

在一些系统的内核中默认开启了透明大页选项。您可以通过以下指令确认:

## Red Hat Enterprise Linux 内核

# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled


## 其他内核

# cat /sys/kernel/mm/transparent_hugepage/enabled

若显示[always] madvise never,则说明透明大页开启。

若显示always madvise [never],则说明透明大页关闭。


#关闭透明大页

1. 请 vi /etc/default/grub,在 GRUB_CMDLINE_LINUX 中添加或修改参数 transparent_hugepage=never

2.执行 grub2–mkconfig 指令重新配置  grub.cfg

# grub2-mkconfig -o /boot/grub2/grub.cfg

3. 重启操作系统,使配置永久生效


安装初始环境调整

#开放端口

运行YashanDB产品需要占用一系列端口(通信矩阵中已列示这些端口的作用及相关信息)。YashanDB制订了一套端口划分规则,并据此规则给出了安装部署过程中需要指定的端口号默认值。用户可根据自身网络状况修改这些端口号,但应该遵循这套规则,以避免出现端口冲突错误。

端口划分规则

一个实例需要配多个监听端口,给一个初始值,后面端口缺省+1。

一个物理机需要配多个实例,给一个初始值,后面实例缺省+10。

按照MN、CN、DN的顺序生成端口号。

单机实例或分布式CN的监听端口初始值默认为1688,对应后续安装中的beging-port参数

image.png

建议在所有服务器上开放上表所列示端口。

此外,对启用可视化部署web服务的主机,还需开放9001端口

五、安装初始环境调整

#开放端口

方式一:关闭防火墙

在所有主机上执行如下命令关闭防火墙

##关闭防火墙

# systemctl stop firewalld

##关闭开机自启

# systemctl disable firewalld


方式二:添加白名单

如果防火墙不能关闭,则必须按如下步骤添加端口到白名单中:

1.查看防火墙端口开放情况:

# firewall-cmd --zone=public --list-ports


2.添加端口到防火墙(Firewall):

这里以1688为例演示如何添加端口到防火墙中,其他端口操作方法相同。

##添加(--permanent 永久生效,没有此参数重启后失效)

# firewall-cmd --zone=public --add-port=1688/tcp --permanent

##重新载入

# firewall-cmd --reload

##查看

# firewall-cmd --zone=public --query-port=1688/tcp


通过添加白名单的方式开放端口,安装过程中仍有可能出现由于端口无法通信而部署失败的风险。此时应联系公司网络管理员查清原因,重新开放端口后再进行安装。

如需从白名单中删除已添加的端口,使用如下命令:

开启SSH服务

首先,请在所有服务器上检查ssh服务是否已打开:

systemctl status sshd.service


如输出信息中无 active (running)内容,请参照如下命令开启ssh服务:

systemctl start sshd.service


本安装手册默认ssh端口号为22,如为其他端口号,后续安装过程中需要进行手工指定

共享集群专有调整

如部署YashanDB共享集群,还需在所有服务器上进行如下调整:

1.删除以前残留的配置文件

如服务器上已经执行过YashanDB安装,请执行如下命令进行残留文件清除

rm -f /etc/ld.so.conf.d/yashandb*.conf


2.清理共享内存

# ipcrm -a


六、创建安装用户

强烈建议在所有服务器上创建YashanDB产品的安装用户,而不是使用root身份执行安装部署。

1.创建yashan用户

本安装手册中,以yashan作为数据库安装用户名称,请在所有服务器上执行如下命令

useradd -d /home/yashan -m yashan

passwd yashan


2.配置sudo免密

首先,请打开/etc/sudoers文件,通常情况下,即使root用户都无该文件的编辑权限,此时需要先对root授权

cd /etc

 ll sudoers

 chmod +w sudoers

 vim /etc/sudoers


在文件的最后添加如下内容后保存退出:

yashan ALL=(ALL)NOPASSWD:ALL


最后,如该文件初始为只读,恢复其属性:

 chmod -w sudoers


3.将yashan用户加入到YASDBA用户组

groupadd YASDBA

usermod -a -G YASDBA yashan


7、目录划分

主机目录规划

1.安装目录

YashanDB采用集群多节点并行安装模式,只需在一台主机上创建安装目录,用于下载和解压软件包。

本安装手册中,安装目录规划在/home/yashan下,由yashan用户执行软件包下载时自行创建

2.HOME目录和DATA目录

所有安装YashanDB的实例节点(一台服务器对应一个实例节点,或者一台服务器包含多个实例节点)上必须规划的两个目录为:

HOME目录:YashanDB的产品目录,包含YashanDB所提供的命令、数据库运行所需的库及各关键组件。该目录由yashan用户执行安装部署时输入的install-path参数根据一定规则生成并创建。

DATA目录:YashanDB的数据目录,包含数据库的各类系统数据文件、日志文件和配置文件,用户数据也缺省存储在该目录下。但对于共享集群,所有的数据文件和redo文件均需保存在共享存储上,DATA目录将只用于存储实例运行相关的配置文件、日志文件等数据。该目录由yashan用户执行安装部署时输入的data-path参数根据一定规则生成并创建

本安装手册中,HOME目录和DATA目录均规划在/data/yashan下,yashan用户需要对该目录拥有全部权限,可执行如下命令授权

cd /

mkdir data

cd data

mkdir yashan

chmod -R 777 /data/yashan


下载软件包

#软件包清单

请依据所需要使用的场景向我们的技术支持获取软件包,包括如下三类:

由DBA在服务器上安装的YashanDB软件包。

用于连接YashanDB的客户端软件包,由需要使用的用户在本机安装。

用于进行YashanDB接口程序开发的各驱动软件包,由应用程序开发人员在需要时选择安装。

YashanDB提供的所有软件包列表如下:(xx.xx为软件版本号)

image.png

软件包下载

从本步骤开始的后续所有服务端安装步骤,将由数据库安装用户来进行操作,请先切换至yashan用户,或以yashan用户登录至服务器。

su yashan


1.创建install目录

在yashan用户主目录下创建一个空目录,作为安装包的存放路径

$ cd

$ mkdir install


2.下载软件包

将软件包下载到/home/yashan/install目录下,并解压软件包:

cd /home/yashan/install

 tar -zxvf yashandb-23.1.0.2-linux-x86_64.tar.gz


3.获取安装工具

YashanDB所提供软件包中包含安装工具,位于bin目录下。其中,如执行命令行安装,需要用到yasboot命令,如执行可视化安装,则需要用到yasom命令。

$ ll yasboot

-rwxrwxr-x 1 yashan yashan 9377280 Sep 26 01:32 yasboot

$ ll yasom

-rwxrwxr-x 1 yashan yashan 9377280 Sep 26 01:32 yasom


在执行完本步骤后,即可进入正式的YashanDB安装过程,请根据操作偏好选择如下安装方式:

命令行安装

可视化安装

7、YashanDB 命令行安装

执行安装部署前,请以yashan用户登录192.168.6.45服务器,并进入/home/yashan/install安装目录

 cd /home/yashan/install


Step1:生成部署文件

执行yasboot package命令生成配置文件,命令详细参数可查阅

yasboot

其中,--cluster指定为要部署的数据库集群名称,该名称也将作为集群中所有节点上初始创建数据库的名称(database name),--port指定SSH服务端口,--install-path指定数据库安装路径,--data-path指定数据存放目录,--begin-port指定数据库监听端口

$ ./bin/yasboot package se gen --cluster yashandb1 -u yashan -p yashan --ip 192.168.6.45 --port 22 --install-path /data/yashan/yasdb_home --data-path /data/yashan/yasdb_data --begin-port 1688


image.png

Note:

如需安装可开启CPU资源管理的单机数据库(非级联备),可同时参考CPU资源管理章节

上一步骤执行完毕后,当前目录下将生成yashandb.toml和hosts.toml两个配置文件,yashandb.toml为数据库集群的配置文件,hosts.toml为主机的配置文件,可手动修改,但不建议删除文件中任何行,否则可能导致后续安装过程报错,或者所搭建的环境后续无法进行扩展配置。

image.png

依据企业实际需要调整yashandb.toml配置文件中的安装参数。其中,可在group级别设置YashanDB的所有建库参数配置参数

[root@jay install]# more hosts.toml

uuid = "65892aaf6838dafd9e51780ef8974fa6"

cluster = "yashandb"

yas_type = "SE"

secret_key = "730815b1e70ef0e6"

add_yasdba = true

[om]

hostid = "host0001"

[om.config]

LISTEN_ADDR = "192.168.6.45:1675"

[[host]]

hostid = "host0001"

group = "yashan"

user = "yashan"

password = "yashan"

ip = "192.168.6.45"

port = 22

path = "/data/yashan/yasdb_home"

jvm_path = ""

total_memory = 0

[host.yasagent]

[host.yasagent.config]

LISTEN_ADDR = "192.168.6.45:1676"

[root@jay install]# more yashandb

yashandb: No such file or directory

[root@jay install]# more yashandb.toml

cluster = "yashandb"

create_simple_schema = false

uuid = "65892aaf6838dafd9e51780ef8974fa6"

yas_type = "SE"

[[group]]

group_type = "db"

name = "dbg1"

[group.config]

CHARACTER_SET = "utf8"

ISARCHIVELOG = true

REDO_FILE_NUM = 4

REDO_FILE_SIZE = "128M"

[group.create_sql]

[[group.node]]

data_path = "/data/yashan/yasdb_data"

hostid = "host0001"

role = 1

[group.node.config]

LISTEN_ADDR = "192.168.6.45:1688"

REPLICATION_ADDR = "192.168.6.45:1689"

RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.1.1.100/log/yashandb/db-1-1/run"

RUN_LOG_LEVEL = "INFO"

SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.1.1.100/log/yashandb/db-1-1/slow"


Step2:执行安装

$ ./bin/yasboot package install -t hosts.toml -i yashandb-23.1.1.100-linux-x86_64.tar.gz


Step3:数据库部署

1.执行部署命令

$ ./bin/yasboot cluster deploy -t yashandb.toml


2.生效环境变量(此步骤需以yashan用户登录到每个节点上执行)。

#部署命令成功执行后将会在$YASDB_HOME目录下的conf文件夹中生成<<集群名称>>.bashrc环境变量文件

$ cd /data/yashan/yasdb_home/yashandb/23.1.1.100/conf

# 如~/.bashrc中已存在YashanDB相关的环境变量,将其清除

$ cat yashandb1.bashrc >> ~/.bashrc

$ source ~/.bashrc


Step4:修改sys用户口令

YashanDB不提供系统初始口令,请通过yasboot工具设置集群内所有节点sys用户的密码

$ cd /home/yashan/install

$./bin/yasboot cluster password set -n Yashan23.1 -c yashandb1


image.png

Step5:验证安装是否成功

执行查看数据库状态命令。

image.png

2.使用yasboot工具连接数据库,查看实例状态

./bin/yasboot sql -d sys/Yashan23.1@192.168.6.45:1688


image.png

Step6:创建数据库用户(可选)

./bin/yasql sys/Yashan23.1@192.168.6.45:1688

SQL> CREATE USER sales IDENTIFIED BY sales;

SQL> GRANT CONNECT TO SALES;


image.png

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

评论