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

在openEuler环境安装部署YashanDB 23.4 共享集群(YAC)

原创 拨开乌云见阳光 2025-09-22
375

一、写这篇文字的起因

在上个月(8月22日)看到国家信息安全测评中心发布了第三批通过安全可靠测评的数据库名单(国测名单),此次仅有三款数据库产品通过了国测,深圳计算科学研究院(深算院)的崖山数据库位列其中。

image.png

我曾经在崖山数据库培训官网上学习了这款国产数据库的基础知识,并且有过一段试用体验。感觉在使用习惯上(命令功能与语法、常用工具的功能与用法、SQL和PL/SQL等方面)与Oracle数据库高度兼容。对于习惯使用Oracle数据库的用户非常友好。
崖山数据库通过了国测,这对于国内使用Oracle数据库的用户来说,在做国产化替换时,提供了一个非常好的选择。通过了严格国测的崖山数据库,在安全可靠方面显然是值得信赖的。而且选用崖山数据库替换Oracle数据库,会大幅节省替换成本、降低替换风险。因为崖山数据库高度兼容Oracle,对于Oracle用户在使用技能方面无需投入过多的人员技能培训成本,应用代码也几乎无需改动,这将大大节省人力和时间成本,并大幅降低因兼容性所带来的运行风险。
Oracle数据库在企业级应用中,大多采用的是RAC架构,这是有其原因的(可参看《国产数据库浪潮下的 RAC 坚守:为何中国仍需这一经典架构?》),从网上相关报道了解到:崖山数据库通过自主研发的共享集群,攻克了 Oracle RAC 架构技术,支持金融级高可用场景,基于 “共享集群” 及 “两地三中心” 方案,实现集群级、机房级、区域级全维度故障秒级切换,RTO 及 RPO 等关键指标均达到行业顶尖水平。
对于这款国产数据库的RAC架构,我很想在国产操作系统环境中尝试一下。因为既然是国产化替换,那么国产操作系统+国产数据库的组合才更对味。在工作中,用到较多的国产操作系统是openEuler(这是华为自主研发的开源服务器操作系统,用于构建面向企业级通用服务器架构平台。具有系统高性能、高可靠、高安全等特性)。因此就想在openEuler环境中安装部署一套YashanDB共享集群,然后再试用体验。
虽然早就有了要试用国产RAC的想法,但因忙于工作,一直拖到现在(忙只是借口,其实就是懒)。
从8月22日看到崖山数据库通过国测的消息,到现在眼看就快一个月了,终于内心的小勤征服了小懒,再一次共同登录了崖山数据库官网,正巧看到了“YashanDB V23.4 LTS 全新发布!”,如下所示:
image.png

那么就乘坐崖山数据库这趟最新的航班,来一次YashanDB共享集群安装部署之旅,并将这次旅程中的见闻用文字记录下来吧!

二、参看官方文档

俗话说:磨刀不误砍柴工。首先要认真阅读和学习官方文档中的相关内容,这就是磨刀的过程。
说到这儿,不禁想说一下我个人的感受:目前国产数据库排行榜中有170多个国产数据库产品(最多时将近300个),在这么多的竞品中,如何能更方便用户(包括潜在用户)去了解自家的产品、吸引更多的用户,进而扩大市场?我认为除了产品过硬并做好产品宣传外,也要用心做好产品的官方文档。因为这是产品功能、特性、使用说明等方面最权威的资料。通过官方文档,可以直接展现出厂家是否在用心做产品、是否对自家产品充满信心。可以说官方文档是产品的门面担当。
崖山数据库(YashanDB)的官方文档,让人感受到厂家很用心、很认真,对产品功能和使用的介绍很详细,非常便于用户(包括初学者)去了解、学习和使用。能站在用户的角度,为用户着想,这种对用户的尊重、对产品认真、做事用心的态度,通过官方文档是能够让用户真切感知到的。
回到正题,由于本次选用的是YashanDB最新发布的版本(V23.4),所以首先要阅读和学习对应版本的官方文档,为后续的安装部署做好准备。这就相当于在旅游前要先做好攻略,这样才能避坑和少走弯路,让旅途变得轻松愉悦。
YashanDB V23.4的官方文档链接如下:
https://doc.yashandb.com/yashandb/23.4/zh/All-Manuals/Product-Overview/About-YashanDB.html

三、YashanDB共享集群架构

YashanDB共享集群架构示意图:
image.png
对于经常使用Oracle RAC的小伙伴们,这个架构图再熟悉不过了,这就是一个单数据库多实例的集群。而YashanDB共享集群为了实现这个架构功能,也有相关的功能模块,示意图如下:
image.png
YashanDB共享集群,简称YAC(YashanDB for Cluster),是依据YashanDB的数据库内核逻辑演进而来,并在共享存储的基础上引入了Cohesive Memory核心技术,用于集群数据库各实例之间协同数据页的读写访问以及各种非数据类资源的并发控制。其中,GRC(Global Resource Catalog)负责全局资源管理,GCS(Global Cache Service)负责全局数据页管理,GLS(Global Lock Service)负责全局锁管理。

内部通讯服务(ICS,Inter-Communication Service)用于建立实例之间的连接池,并实现实例间的相互通信。

崖山文件系统(YFS,Yashan File System)承担了集群文件系统的职责,直接管理裸设备,并提供强一致的文件系统服务给数据库使用。

崖山集群服务(YCS,Yashan Cluster Service)是集群数据库高可用的核心部件,统一管理崖山文件系统、数据库等资源,包括配置、启停、监控等,并在各种故障场景下提供仲裁服务,维护全局统一的拓扑状态。

下图是集群数据库的物理部署示意图,硬件上包括两台服务器和一台共享存储,每台服务器视为集群的一个节点;其中YFS运行期无独立进程,由YCS进程看护,不同服务器之间的YCS通过网络互联;数据库实例运行期有独立进程,不同服务器之间的实例进程通过网络互联;在同一个服务器上,数据库实例使用UDS方式连接到YCS和YFS。
image.png

四、安装前的准备

1、YAC架构规划

本次准备按最常用了两节点RAC的架构,来安装部署YAC,架构示意图如下;
image.png
上图中主要概念解释如下:
(1)YCS
YCS(Yashan Cluster ServiceYCS 崖山集群服务),YCS实例采用单进程、多线程的服务架构(进程名为yascs),包括负责监听、心跳、监控以及服务客户端的代理线程。YashanDB的数据库服务端作为外部资源由YCS进行管理。
(2)YFS
YFS(Yashan File System 崖山文件系统),担集群文件系统的职责,提供强一致的文件系统服务给数据库使用。YFS作为内嵌资源随YCS启动,该资源对使用者透明。
(3)YCR(Yashan Cluster Registry 集群注册表),保存集群服务的配置信息,包括服务器配置、资源配置等,YCR必须保存在共享存储上,所有YCS实例和数据库实例运行期需要能够正常访问YCR,以确保获得一致的集群服务配置信息。
(4)Voting file
集群投票文件,是所有服务器运行期会周期性写入状态信息的磁盘文件。在故障发生时,需要在集群投票文件进行投票并决定哪些服务器幸存而哪些服务器被逐出集群,无法访问投票文件则无法获得最新集群状态信息,相关YCS实例和数据库实例无法正常运行。

服务器主要配置要求:
image.png

2、创建两台虚拟机

为了方便试用,准备在本机上搭建一套两节点的YAC。根据以上服务器配置的要求,先通过VMware虚机管理工具创建两台虚拟机:
image.png

客户机操作系统,选择:“Linux”,
版本,选择:“其他 Linux 5.x 内核 64 位”
image.png

虚拟机的资源配置情况如下所示:
image.png

3、为虚拟机安装openEuler操作系统

下载地址:https://www.openeuler.org/zh/download/archive/
选择:“openEuler 22.03 LTS SP4”
image.png

在虚拟机上,最小化安装“openEuler 22.03 LTS SP4”
image.png
完成之后查看虚拟机操作系统的版本信息如下:
image.png

4、创建共享磁盘

(1)在宿主机上创建共享磁盘
利用VMware的虚拟磁盘管理工具,创建如下5个共享磁盘:

vmware-vdiskmanager -c -s 1g -a lsilogic -t 2 "D:\vm-instances\yac-sharedisk\yfs-disk1.vmdk" 
vmware-vdiskmanager -c -s 1g -a lsilogic -t 2 "D:\vm-instances\yac-sharedisk\yfs-disk2.vmdk" 
vmware-vdiskmanager -c -s 1g -a lsilogic -t 2 "D:\vm-instances\yac-sharedisk\yfs-disk3.vmdk" 
vmware-vdiskmanager -c -s 5g -a lsilogic -t 2 "D:\vm-instances\yac-sharedisk\data-disk01.vmdk"
vmware-vdiskmanager -c -s 5g -a lsilogic -t 2 "D:\vm-instances\yac-sharedisk\data-disk02.vmdk"

以上命令参数说明:
-c: create disk
-s: capacity of the virtual disk
-a: adapter type
-t: disk type id (2: preallocated virtual disk)

(2)向虚拟机中添加共享磁盘
关闭两台虚拟机,分别在两台虚拟机的vmx文件中添加如下内容:

#shared disks configure
diskLib.dataCacheMaxSize=0        
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096    
diskLib.maxUnsyncedWrites = "0"

disk.locking = "FALSE"
scsi1.sharedBus = "virtual"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"

scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "D:\vm-instances\yac-sharedisk\yfs-disk1.vmdk" 
scsi1:0.redo = ""

scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "D:\vm-instances\yac-sharedisk\yfs-disk2.vmdk" 
scsi1:1.redo = ""

scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "D:\vm-instances\yac-sharedisk\yfs-disk3.vmdk" 
scsi1:2.redo = ""

scsi1:3.mode = "independent-persistent"
scsi1:3.deviceType = "disk"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "D:\vm-instances\yac-sharedisk\data-disk01.vmdk" 
scsi1:3.redo = ""

scsi1:4.mode = "independent-persistent"
scsi1:4.deviceType = "disk"
scsi1:4.present = "TRUE"
scsi1:4.fileName = "D:\vm-instances\yac-sharedisk\data-disk02.vmdk" 
scsi1:4.redo = ""

(3)验证共享磁盘已经挂载到两台虚拟机
启动两台虚拟机,验证已经挂载了共享磁盘:
image.png
image.png

5、安装所需的软件依赖包和工具

(1)软件依赖包

  • 数据库运行所需依赖项如下表所示:
    image.png
    对于最小化安装的openEuler操作系统,已经满足了上述要求。

  • 数据库运维工具所需依赖项如下表所示:
    image.png

通过以上可以看出,YashanDB已经将安装所需要的特殊依赖包,打包进一个安装包中,降低了安装过程的复杂度。这种方便用户的做法,确实要为YashanDB点赞!

(2)安装tar工具用于解压安装包

# yum install -y tar

(3)安装multipath用于磁盘多路径绑定

# yum install -y device-mapper-multipath

(4)安装sshpass
下载地址:https://sourceforge.net/projects/sshpass/

# yum -y install gcc
# yum -y install make
# tar -zxvf sshpass-1.10.tar.gz
# cd sshpass-1.10
# ./configure
​# make && make install
# sshpass -V

6、设置服务器主机名

分别设置两台服务器主机名,命令如下:

# hostnamectl set-hostname yac01
# hostnamectl set-hostname yac02

注意:主机名中不能有横线,并且长度要求4~64位

7、设置hosts

# cat >> /etc/hosts <<EOF
192.168.20.231 yac01
192.168.20.232 yac02
EOF

8、关闭防火墙

# systemctl stop firewalld
# systemctl disable firewalld

9、禁用selinux

# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0

10、操作系统参数调整

(1)关闭交换分区

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

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

# sysctl -w net.ipv4.ip_local_port_range='32768 60999' 
# echo "net.ipv4.ip_local_port_range=32768 60999" >> /etc/sysctl.conf

(3)调整进程的VMA上限

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

11、调整资源限制值

# cat>>/etc/security/limits.conf<<EOF
yashan soft nofile 1048576
yashan hard nofile 1048576
yashan soft nproc 1048576
yashan hard nproc 1048576
yashan soft rss unlimited
yashan hard rss unlimited
yashan soft stack 8192
yashan hard stack 8192
EOF

12、关闭透明大页

(1)检查是否已经关闭

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

image.png

(2)关闭透明大页

# cat >> /etc/rc.d/rc.local <<EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
  echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
# chmod +x /etc/rc.d/rc.local
# systemctl start rc-local.service
# systemctl enable rc-local.service

(3)再次检查是否已经关闭

cat /sys/kernel/mm/transparent_hugepage/enabled

image.png

13、清理共享内存

# ipcrm -a

14、创建安装用户

# useradd -d /home/yashan -m yashan
# echo 'yashan123'|passwd --stdin yashan
# id yashan

image.png

15、配置安装用户sudo免密

# visudo
加入以下一行:
yashan ALL=(ALL) NOPASSWD:ALL

验证sudo免密是否生效:

# su - yashan
$ sudo -n whoami

image.png

16、创建目录

# mkdir -p /data/yashan
# chown -R yashan:yashan /data/yashan
# su - yashan
$ cd /data/yashan
$ mkdir yasdb_home
$ mkdir yasdb_data
$ mkdir log

17、共享磁盘多路径绑定

YashanDB要求共享存储规划如下两类磁盘:

  • 系统盘
    用于集群管理,仅支持1、3或5块相同大小的磁盘,每块磁盘容量至少1G(当系统盘数量为1块,并且AU Size配置为32M时,系统盘大小至少为2G),规划的系统盘个数会影响系统盘组的冗余度(redundancy),1、3或5块系统盘分别对应的冗余度为EXTERNAL、NORMAL或HIGH。

  • 数据盘
    用于保存集群业务数据,1块或多块相同大小的磁盘,根据实际业务需求规划其数量和容量。

本次安装部署使用了3块系统盘 + 2块数据盘。
【注意】

  • 要求所有共享磁盘(系统盘和数据盘)应被绑定至同一目录。该目录将作为yasboot package ce gen命令的–disk-found-path选项参数(在后续安装过程中介绍)

  • 绑定后磁盘的绝对路径(例如/dev/yfs/sys1)长度不得超过31字节。

有两种常用的绑定方式:“通过多路径绑定” 和 “通过SCSI设备的WWID绑定”。
推荐使用多路径绑定,因为通过SCSI设备的WWID绑定存储设备不满足高可用需求,不建议用于生产环境。
多路径技术(MultiPath)是指通过多条物理路径同时连接到同一个存储设备的技术,从而提高了系统的可用性和I/O性能。它具有以下主要功能:

  • 链路故障的切换和恢复:当一条或多条路径发生故障时,能够自动切换到其他可用路径,确保数据的连续访问。
  • I/O流量的负载均衡:通过将I/O请求均匀地分配到所有可用路径上,提高存储系统的整体性能。
  • 磁盘的虚拟化:通过将多条物理路径合并为一个逻辑设备,简化了存储管理。

共享磁盘多路径绑定,具体操作如下:
(1)启用multipath服务

# systemctl start multipathd
# systemctl enable multipathd
# systemctl status multipathd

(2)查看共享盘的scsi_id
image.png

(3)配置 multipath 文件

# vi /etc/multipath.conf

image.png

(4)重新加载多路径服务

# multipath -r

(5)查看多路径的信息

# multipath -ll
# lsblk
# ls -ltr /dev/mapper/

image.png

(6)创建genDevRuleByUUID脚本并生成配置文件

# cd ~
# vi genDevRuleByUUID.sh
# cat genDevRuleByUUID.sh
#/bin/bash

# 请修改为各设备路径
DEVICES=("/dev/mapper/data1" "/dev/mapper/data2" "/dev/mapper/sys1" "/dev/mapper/sys2" "/dev/mapper/sys3")
# 请按DEVICES数组顺序指定这些设备绑定的名称,且建议指定为与业务相关的名称
TARGETS=("data1"                   "data2"                   "sys1"                   "sys2"                   "sys3")
# 指定绑定的目录
YFS_DISK_DIR="yfs"

# 请保持默认,请确保yashan用户已存在
USER="yashan"
GROUP="yashan"
UGROUP="$USER:$GROUP"

if [ ${#TARGETS[@]} != ${#DEVICES[@]} ]
then
    echo "DEVICES and TARGETS count does not match"
    exit 1
fi

if [ ${#TARGETS[@]} == 0 ]
then
    echo "no targets found"
    exit 1
fi

curDir=$(cd "$(dirname "$0")";pwd)
rm -f $curDir/yashan-device-rule.rules

count=${#TARGETS[@]}

for ((i = 0; i < $count; i ++))
do
    device=${DEVICES[$i]}
    target_name=${TARGETS[$i]}
    target="${YFS_DISK_DIR}/${target_name}"

    str1="$device:`udevadm info --query=all --name=$device | grep DM_UUID`"
    str2=${str1#*=}
    echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${str2}\",SYMLINK+=\"$target\",OWNER=\"$USER\",GROUP=\"$GROUP\",MODE=\"0666\",RUN+=\"/bin/sh -c 'chown -R $UGROUP /dev/$target'\""  >> $curDir/yashan-device-rule.rules
done
# sh ./genDevRuleByUUID.sh
# cat yashan-device-rule.rules
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c298acc2296ed9b5aa5a48b040e5",SYMLINK+="yfs/data1",OWNER="yashan",GROUP="yashan",MODE="0666",RUN+="/bin/sh -c 'chown -R yashan:yashan /dev/yfs/data1'"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c295262770ff1081c49715a19f86",SYMLINK+="yfs/data2",OWNER="yashan",GROUP="yashan",MODE="0666",RUN+="/bin/sh -c 'chown -R yashan:yashan /dev/yfs/data2'"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29d0ff3d3ddaee6865054799245",SYMLINK+="yfs/sys1",OWNER="yashan",GROUP="yashan",MODE="0666",RUN+="/bin/sh -c 'chown -R yashan:yashan /dev/yfs/sys1'"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29f71028f3d7ce7f1fd6f3b60a0",SYMLINK+="yfs/sys2",OWNER="yashan",GROUP="yashan",MODE="0666",RUN+="/bin/sh -c 'chown -R yashan:yashan /dev/yfs/sys2'"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29149590de7c63867cb80af5e4d",SYMLINK+="yfs/sys3",OWNER="yashan",GROUP="yashan",MODE="0666",RUN+="/bin/sh -c 'chown -R yashan:yashan /dev/yfs/sys3'"
# cp yashan-device-rule.rules /etc/udev/rules.d/yashan-device-rule.rules

(7)加载udev配置

# udevadm control --reload-rules

(8)绑定存储设备

# udevadm trigger --type=devices

(9)查看绑定的存储设备

# ll /dev/yfs/

image.png

五、安装部署

YashanDB支持在任一服务器上下载软件包,向其他所有服务器发起并行安装。因此,以下操作如无说明,则均在第一台主机上进行操作。

1、在第一台主机上创建安装目录

# su - yashan
$ mkdir install

2、下载YashanDB安装包

下载地址:https://download.yashandb.com/download
image.png

3、将安装包上传到第一台虚拟机的安装目录并解压

$ cd /home/yashan/install
$ tar -zxf yashandb-23.4.1.102-linux-x86_64.tar.gz

4、生成YAC部署文件

$ cd /home/yashan/install
$ ./bin/yasboot package ce gen --cluster yashandb \
-u yashan -p yashan123 --ip 192.168.20.231,192.168.20.232 --port 22 \
--install-path /data/yashan/yasdb_home \
--data-path /data/yashan/yasdb_data \
--log-path /data/yashan/log \
--begin-port 1688 --node 2 \
--data /dev/yfs/data1,/dev/yfs/data2 \
--disk-found-path /dev/yfs  \
--system-data /dev/yfs/sys1,/dev/yfs/sys2,/dev/yfs/sys3 

此命令用于根据输入的各选项生成共享集群部署的配置文件,其中的选项说明如下:

选项 含义
-c,--cluster 生成的集群名称
-u,--username 服务器SSH用户名
-p,--password SSH登录密码
--ip 服务器SSH的IP地址,多个IP间用逗号,隔开
--port 服务器SSH连接端口
-i, --install-path 数据库安装路径
--data-path 数据库实例的DATA目录
--log-path yasagent、yasom、数据库run.log、slow.log的路径
--begin-port 起始端口,默认为1688
--node 共享集群部署时,表示单个集群中的实例数量,默认为2
--data 存储网络中的数据盘,多个数据盘信息间用逗号,隔开
--disk-found-path 磁盘发现路径(默认为/dev/yfs)
--system-data 存储网络中的系统盘,多个系统盘信息间用逗号,隔开

以下是上述命令执行的结果截图:
image.png
以上命令执行成功后,将在当前目录下生成两个toml文件:hosts.toml 和 yashandb.toml

5、执行软件包安装

$ ./bin/yasboot package install -t hosts.toml

此命令根据 “hosts.toml” 配置文件,对其中配置的服务器执行软件包安装,执行结果截图如下:
image.png

6、数据库部署

$ ./bin/yasboot cluster deploy -t yashandb.toml --yfs-force-create -p yashan_123

此命令按照 “yashandb.toml” 配置文件,在所有服务器上部署和初始化YashanDB。
其中的命令选项说明如下:

选项 含义
--yfs-force-create YFS强制创建diskgroup(仅适用共享集群)
-p, --sys-password 设置数据库sys用户的密码,密码长度为8 - 64位

此命令执行耗时约3分钟,执行结果截图如下:
image.png

7、检查安装结果

$ ./bin/yasboot cluster status -c yashandb -d

此命令用于查询所有服务器上的YashanDB进程状态,其中的命令选项说明如下:

选项 含义
-c, --cluster YashanDB的集群名
-d, --detail 展示更多细节

image.png

8、设置环境变量(在两台主机上操作)

部署成功后,–install-path(例如/data/yashan/yasdb_home)指定的目录下会生成子目录{版本号}/conf,该目录下会自动生成YashanDB相关的环境变量文件{集群名称}.bashrc,需将其应用于操作系统。

$ cd /data/yashan/yasdb_home/23.4.1.102/conf
$ cat yashandb.bashrc >> ~/.bashrc
$ source ~/.bashrc

9、启动守护进程

$ yasboot monit start --cluster yashandb

命令用于启动所有服务器上的monit进程,执行结果如下:
image.png

六、客户端工具连接数据库

1、字符客户端工具

yasql是YashanDB的客户端连接管理工具,可以通过此工具连接数据库服务器并对其进行操作和维护,除了具备操作数据库的基本功能,yasql还提供了若干其他功能,便于用户使用。
详细的使用方法,详见yasql使用指导
通过yasql连接数据库的方法如下:
yasql username/password@host:port
image.png

2、图形客户端工具

较常用的图形客户端工具是DBeaver(工具下载地址:https://dbeaver.io/)
image.png

通过DBeaver连接YashanDB的方法如下:
(1)下载YashanDB的JDBC驱动
下载地址:https://download.yashandb.com/download

image.png

(2)创建新驱动
打开DBeaver,点选菜单栏中的“数据库”菜单项中的“驱动管理器”,如下:
image.png
再点击“新建”,如下:
image.png
在“设置”栏目页中,填写新创建的驱动名称,如下:
image.png
在“库”栏目页中,点击“添加文件”,将下载的YashanDB的JDBC驱动文件(yashandb-jdbc-1.9.3.jar)添加进去,并且找到类,如下:
image.png

(3)新建数据库连接
点选DBeaver菜单栏中的“数据库”菜单项中的“新建数据库连接”,如下:
image.png
找到新创建的驱动,如下:
image.png
在“JDBC URL”栏中,按照“jdbc:yasdb://ip地址:port/数据库名”的格式,填入实际内容,
并且填写连接数据库的用户名和密码,如下:
image.png
以上填写的信息均正确无误,点击左下角的“测试连接”,如果连接成功,则显示如下:
image.png

(4)通过DBeaver查询YashanDB数据库的相关信息
例如:要查询YashanDB数据库的版本信息,则鼠标右键点击上面新建数据库连接的名字,选择右键菜单项中的“SQL 编辑器” -> “新建 SQL 编辑器”,在打开的SQL编辑器窗口中,输入查询命令,然后点击旁边的三角执行按钮,就可以查询出结果了,如下所示:
image.png

七、查看集群状态和数据库信息

1、查看集群相关的状态

(1)查看集群状态
image.png

(2)查看当前集群的配置信息
image.png

(3)查看YCS的配置参数信息
image.png

(4)查看SYSTEM磁盘组的信息
image.png

(5)查看YFS中的diskgroup信息
image.png

(6)查看YFS中disk信息
image.png

2、查看数据库的主要信息

(1)查看版本信息
image.png

(2)查看数据库实例信息
image.png

(3)查看数据库信息
image.png

(4)查看参数文件内容
image.png

(5)查看控制文件的位置
image.png

(6)查看重做日志文件的信息
image.png

(7)查看数据文件的信息
image.png

八、共享集群的启停

1、停止集群及相关服务:

(1)停止守护进程

$ yasboot monit stop --cluster yashandb

此命令用于停止所有服务器上的monit进程,执行结果如下:
image.png

(2)停止数据库集群

$ yasboot cluster stop -c yashandb

以上命令用于停止所有服务器上的YashanDB服务,停止数据库的过程大约耗时1分钟,执行成功后的结果如下:
image.png

(3)停止yasagent

$ yasboot process yasagent stop -c yashandb -t /home/yashan/install/hosts.toml

此命令根据 “hosts.toml” 配置文件,停止对应主机上的yasagent进程,执行结果如下:
image.png

(4)停止yasom

$ yasboot process yasom stop -c yashandb -t /home/yashan/install/hosts.toml

此命令用于停止本机的yasom进程,执行结果如下:
image.png

(5)停止ycsrootagent(在两个主机上执行)

$ sudo pkill -9 ycsrootagent

2、启动集群及相关服务

(1)启动yasom和yasagent进程

$ yasboot process yasom start -c yashandb -t /home/yashan/install/hosts.toml
$ yasboot process yasagent start -c yashandb -t /home/yashan/install/hosts.toml

image.png

(2)启动集群数据库

$ yasboot cluster start -c yashandb

image.png

(3)检查集群状态

$ yasboot cluster status -c yashandb -d

image.png

(4)启动守护进程
用于守护数据库相关进程,包括yasdb进程、yasom进程和yasagent进程。

$ yasboot monit start --cluster yashandb

image.png

九、遇到的问题及解决

1、配置VIP时报错

image.png
经查阅官方文档,发现VIP这个特性,要在23.4.2.100及以上版本才支持:
image.png
目前官网提供下载的最新版本是23.4.1.102,不符合要求。
因此希望官方能开放23.4.2.100版本的安装包下载。

2、在生成集群部署配置文件时出现第一个报错

image.png
对这个问题排查了很长时间,最后发现问题原因竟然是把安装用户yashan的密码写错了。
一个小小的失误,就有可能导致后续的大麻烦。再一次告诫自己:要仔细认真!

3、在生成集群部署配置文件时出现第二个报错

image.png
开始为了方便,是通过SCSI设备WWID绑定的共享磁盘。根据上面的报错,换成了多路径绑定共享磁盘后,解决了上面的问题。

4、在生成集群部署配置文件时出现第三个报错

image.png
这个问题的原因是对共享磁盘设备的权限设置有误,将MODE设置为"0666",就解决了。

5、在生成集群部署配置文件时出现第四个报错

image.png
根据这个报错,对第二台主机(232),进行了核查,但并没有发现问题,于是索性输入“yes”,居然成功的生成了集群部署的配置文件。就先当做一个可以忽略的报错吧。如果有发现这个报错根因的小伙伴,烦请告知,在此感谢。

6、在启动守护进程时报错

image.png
错误原因是找不到类库文件。既然它找不到,那么就人工帮它找到:
ln -s /usr/lib64/libnsl.so.3.0.0 /usr/lib64/libnsl.so.1

7、在设置rc-local自启动时报错

image.png
解决方法:在/usr/lib/systemd/system/rc-local.service文件中添加以下内容:

[Install]
WantedBy=multi-user.target

结语:

此次YashanDB共享集群安装部署之旅,虽然有攀爬过程中的略感劳顿、有偶遇溪流挡路的小迷惑,但好在有正确路标(崖山数据库官方文档)的指引,终于如愿登高远眺、心旷神怡,这正是旅游的乐趣所在!
image.png
此次安装部署过程,总体来说是比较顺利的,因为有准确而详细的官方文档的指导。在遇到问题时,基本都能迎刃而解。崖山数据库的官方文档结构清晰、内容简洁准确,非常方便查找相关的知识点,这让阅读和学习官方文档的过程变得很愉悦。好的学习体验提高了学习的质量和效率,此处要为崖山数据库点赞!
在国产化的大趋势下,崖山数据库(YashanDB)这款高度兼容Oracle的国产数据库产品,同样也具备企业级应用所需要的 Oracle RAC 架构技术,而且崖山数据库通过了严格的国测,其安全可靠性更是值得信赖。这些都让YashanDB成为替换Oracle数据库的一个毋庸置疑的好选择。
通过学习和使用崖山数据库,让我真切的感受到其对产品的用心、认真与自信,以及对用户的尊重。在此真诚祝愿崖山数据库越来越好!为独立自主、自立自强的国产化技术的发展,做出更大贡献!

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

评论