YashanDB 23.2 YAC -单库多实例架构多活共享集群安装部署指南

一、概述

1.1 文档目标

​ 本说明旨在指导技术人员在 CentOS 7 x86_64 操作系统上完成崖山数据库企业版 23.2 的共享集群安装与部署。通过系统架构、集群拓扑及部署需求的精确描述,帮助读者在开始安装前对崖山数据库的架构形成清晰认识。本文以高效、稳定、安全为核心目标,为后续的详细安装、配置和调试步骤提供指导,确保数据库在企业级生产环境中稳定运行并满足高可用性和性能需求

1.2 架构概览

​ 崖山数据库通过多实例共享集群架构,为企业级业务负载提供高可用性、高扩展性与高性能的数据库服务。其多层次模块化设计使得各节点可并行访问统一的共享存储,确保在复杂的多节点部署环境中保持数据一致性、故障切换灵活性与整体处理性能的持续优化。

img

YashanDB推出了主备集群方案,通过在共享集群上集成主备特性,提供全面的高可用和容灾解决方案。
在这里插入图片描述

除了上述架构,崖山还推出了核心的自研对等集群内核架构,如下所示:

在这里插入图片描述

1.3 核心组件与服务

1.3.1 崖山集群内核

​ YCK 位于集群架构的核心层次,用于管理多节点的资源访问与调度协调。通过 Cohesive Memory 技术,YCK 整合底层存储访问与全局资源控制,确保在多节点并行读写场景下实现一致、高效的访问性能与透明的数据处理。

1.3.2 聚合内存

​ 聚合内存是 YCK 为多实例并发访问而引入的一项关键技术。通过全局资源目录(GRC)、全局缓存服务(GCS)与全局锁服务(GLS)协同工作,聚合内存对所有实例节点提供统一的资源视图与高速缓存访问能力。

  • GRC:负责全局资源的注册与分配,确保每个资源在集群内有唯一标识和全局共享的访问路径。
  • GCS:通过分布式缓存机制,在不同节点间实现高效的数据块共享与缓存一致性维持。
  • GLS:负责全局资源的锁管理与并发控制,确保集群事务处理过程中数据一致性和资源安全性。

1.3.3 集群事务服务

​ 崖山数据库在集群模式下提供对事务处理的全局视图与管理能力。每个实例都拥有专属的 Undo 空间与事务标识(XID),在通过本地事务与远程事务标识进行协调时实现跨节点的一致性事务执行。多版本并发控制(MVCC)与动态事务分配机制可在负载变化与节点扩展时稳定保持事务处理性能与数据一致性。

1.3.3 崖山集群服务

​ YCS 是集群运行环境中专职的管理与监控服务。它通过监控节点状态、资源分配与投票机制(Voting Disk)、集群租约(Lease)与故障检测等手段,确保集群在节点增加、移除或故障时快速进行故障恢复与资源重配置。YCS 实现了集群成员管理、资源管理与选举仲裁的核心功能。

1.3.4 崖山集群文件系统

​ YFS 为多节点并发访问共享存储提供高效的文件访问机制与容量管理能力。YFS 通过 FAT(File Allocation Table)结构维护文件元数据信息,支持多节点共享访问同一组数据文件。结合 YCS 提供的底层集群服务与 UDS(Unix Domain Service)等传输通道,YFS 能为数据库实例与客户端提供高可靠性、高性能的文件访问与资源管控,为上层数据库操作提供统一、透明、可扩展的数据存储基础。

1.4 部署需求

1.4.1 软件需求

  • 操作系统:本安装文档适用于 CentOS 7 x86_64 操作系统。在安装前,请确保操作系统已完成完整安装,并通过 yum 或其他官方软件包管理工具更新至最新补丁版本。这将修复已知漏洞并提升系统稳定性,确保后续操作顺利进行。
  • 数据库软件:获取崖山数据库企业版 23.2 的官方安装介质,确保安装包来源可靠且未被篡改。在获取安装包后,建议对安装包进行哈希校验(如 MD5 或 SHA - 256),以验证其完整性。
  • 依赖软件包:CentOS 7 系统需要安装一系列的依赖软件包来支持崖山数据库的运行。这些软件包包括但不限于:
    • libaio - devel:用于支持异步 I/O 操作,提高数据库的 I/O 性能。
    • numactl - devel:在支持非均匀内存访问(NUMA)架构的服务器上,优化内存分配和访问效率。
    • openssl - devel:提供加密库支持,保障数据库在网络通信和数据存储过程中的安全性。

1.4.2 硬件需求

  • CPU:建议采用多核心处理器,生产及性能测试环境核心数不少于 12 核,主频不低于 3.0GHz。支持超线程技术的 CPU 更适合应对高并发写入及部分读取场景,显著提升性能。
  • 内存:推荐配置 ≥64GB 内存,以便缓存大量数据和索引,减少磁盘 I/O 操作,从而加速响应。
  • 存储:采用高速固态硬盘(SSD)作为主要存储介质,存储数据库的数据文件、日志文件和临时文件、data、vote、ycr 磁盘。

网络

  • 连接类型:网络设备需支持高速、稳定的网络连接。对于千兆以太网,应确保线缆质量优良,网卡正常运行,无瓶颈。优先考虑万兆以太网连接,以获得更大的带宽支持。
  • 性能要求:网络延迟和丢包率应控制在最低水平,确保节点之间数据传输可靠、快速。

1.4.3 人员需求

  • 系统管理员

    • 技术能力

      • 具备丰富的 Linux 操作系统管理经验,包括但不限于以下方面:

      • 系统安装与配置

      • 内核参数优化

      • 用户与权限管理

      • 网络配置与存储管理

    • **硬件支持:**熟悉硬件设备的安装、调试及故障排除,能够快速定位并解决硬件问题。

    • 职责目标:确保操作系统环境的稳定性和高效运行,为数据库的部署与后续运行提供可靠的基础支持。

  • 数据库管理员

    • 专业知识:掌握崖山数据库管理技能,覆盖以下关键领域:
      • 数据库安装与初始化配置
      • 参数调优与性能优化
      • 数据备份与恢复策略
      • 数据库安全管理与访问控制
      • 实时性能监控与分析
    • 业务能力:能够结合实际业务需求,合理调整数据库参数,快速响应并解决性能瓶颈及运行故障,确保数据库高效、安全、稳定地运行。

1.4.4 时间需求

安装部署过程的时间消耗取决于多种因素,包括硬件性能、网络环境以及操作人员的熟练程度。以下为各阶段性能及生产部署时间预估:

  • 操作系统准备

    • **内容:**从硬件设备上电到完成 CentOS 7 的安装、配置和更新,包括以下步骤:
      • 系统安装及初始化
      • 基础软件包安装
      • 网络配置
      • 系统安全加固
    • **时间:**约 3 - 5 小时
  • 数据库安装

    • **内容:**安装崖山数据库企业版 23.2,具体包括:
      • 安装包解压
      • 环境变量配置
      • 依赖检查
      • 执行安装脚本
    • **时间:**约 2- 3 小时
  • 配置与测试

    • 内容:在数据库安装完成后进行以下工作:
      • 集群配置与参数优化
      • 网络连接测试
      • 功能验证(如高可用性、读写性能等)
    • **时间:**约 4- 6 小时

总体时间

  • 从操作系统准备到数据库集群完成初步测试与配置,预计总耗时为 9 - 14 小时。

建议

  • 预留额外时间以应对意外情况,并进行全面的测试、优化与问题排查。
  • 确保数据库集群的性能、稳定性与可靠性达到生产环境的要求,避免因仓促上线导致的潜在问题。

二、安装环境设置

集群环境各服务器应具有相同体系架构

  • 64bit 和 32bit 不能同一集群
  • ARM 和 x86 两类系统不能同一集群

2.1 硬件环境要求

部署 YashanDB 23.2 共享集群各服务器应满足以下最低硬件需求,生产环境应根据业务需求适时调整硬件配置。

项目名称最低配置推荐配置
服务器数量2(台)
内存>4(GB)推荐16G及以上;共享集群推荐32G及以上,测试环境不低于 4(GB)
CPUCPU核数>2X86_64,ARM64
超线程,非超线程
推荐4C及以上;共享集群推荐8C及以上
硬盘> 4(GB)系统盘建议配置RAID1
数据盘建议配置RAID5(规划4组RAID5数据盘安装
推荐使用SSD
data、vote、ycr 盘不低于 1 G
文件系统不能为tmpfsext4或xfs
网络生产环境建议设置双网卡冗余bond、千兆以上以太网,支持TCP和UDP

2.2 操作系统要求

2.2.1 软件环境要求

软件类型最低配置推荐配置
操作系统如需使用大页内存,Linux内核版本为2.6及以上CentOS 7.6以上,KylinOS V10,openEuler 22.03
inode个数剩余inode个数>15(亿)

2.2.2 软件依赖要求

为保障 YashanDB 顺利安装与稳定运行,请依下述来源及最低版本要求,于所有服务器环境中配置必备依赖项。

动态库名称来源版本要求作用
libcrypto.soopenssl1.0.0及以上加密
libcrypto.so.1.1openssl1.0.0及以上-
libssl.soopenssl1.0.0及以上网络通信
libssl.so.1.1openssl1.0.0及以上-
libgmssl.so.3.1gmssl3.1.1及以上加密
liblz4.solz41.9.3及以上数据压缩和解压缩
liblz4.so.1lz41.9.3及以上-
liblz4.so.1.9.3lz41.9.3及以上-
libz.sozlib1.2.12及以上数据压缩
libz.so.1zlib1.2.12及以上-
libz.so.1.2.12zlib1.2.12及以上-
libzstd.sozstd1.5.2及以上数据压缩和解压缩
libzstd.so.1zstd1.5.2及以上-
libzstd.so.1.5.2zstd1.5.2及以上-
monitmonit5.28.0及以上守护进程

三、集群规划

3.1 主机名称规划

主机名称描述说明
yashandb01主节点一服务器名称
yashandb02主节点二服务器名称

3.2 主机地址规划

IP地址描述说明
192.168.10.101主节点一 IP 地址
192.168.10.102主节点二 IP 地址

3.3 端口号规划

端口号参数名称描述说明
1675yasomyasom 默认端口号
1676CN - Cordinator Node计算节点 CN 端口号

3.4 用户及组规划

项目名称名称所属类型规划建议
用户名yashan操作系统建议集群各节点密码及 ID 相同
组名YASDBA操作系统建议集群各节点组 ID 相同

3.5 软件目录规划

注:崖山共享集群可使用 裸盘作为 data、vote、ycr 共享盘。

目录名称对应名称目录作用
/data/yashan/yasdb_homeHOME目录YashanDB 产品目录涵盖其命令集、运行库以及关键组件
/data/yashan/yasdb_data数据目录含数据库系统数据文件、部分日志文件、配置文件以及默认存储的用户数据
/dev/sdbdata指定绑定的数据盘路径
/dev/sdcvote指定绑定的投票盘路径
/dev/sddycr指定绑定的YCR盘路径
-- 如何划分共享存储,本内容略:可参照相关资料
-- 共享盘要求权限不低于 666,为保证启动后能正常识别到盘。
sudo bash -c 'cat <<EOF >> /etc/rc.d/rc.local
chmod 666 /dev/sdb
chmod 666 /dev/sdc
chmod 666 /dev/sdd
EOF'

四、环境准备

4.1 操作系统参数调整

注:部署生产分布式集群时建议关闭生成 core 文件开关

-- 开发测试环境为方便定位问题可打开生成 core 文件开关
-- 查看当前是否开启系统 core 文件开关
# ulimit -c   [0 表示禁用核心转储]
-- 开启核心转储文件生成
# ulimit -c unlimited [ core 文件大小无限制,ulimit -c 100000 表示限制大小为 100000kb ]# vi /etc/security/limits.conf## 添加以下信息并保存:- soft core unlimited- hard core unlimited

4.2 关闭交换分区

注:为避免内存交换影响性能,建议关闭交换分区

-- 查看当前系统交换分区状态
# sysctl -a | grep swappiness 
-- 关闭系统交换分区
# sysctl -w vm.swappiness=0
# echo "vm.swappiness=0">> /etc/sysctl.conf

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

4.4 调整进程虚拟内存地址上限

注:生产环境建议调整虚拟内存地址上线

-- [VMA(Virtual Memory Address)虚拟内存地址 ]
-- 查看当前 VMA 上限
# sysctl -a|grep vm.max_map_count
-- 调整系统 VMA 上限,建议生产环境不低于 2000000
# sysctl -w vm.max_map_count=2000000
# echo "vm.max_map_count=2000000" >> /etc/sysctl.conf 

4.5 调整资源限制值

注:调整部分资源限制,生产环境应不低于推荐值

资源项推荐值配置文件命令注释说明
open files1048576ulimit -n 1048576调整打开文件的最大数量
max user processes1048576ulimit -u 1048576设置允许的最大进程数量
max memory size无限制ulimit -m unlimited设置最大内存使用量为无限制
stack size8192ulimit -s 8192设置堆栈大小

注:可通过如下命令写入

-- 使用 root 用户执行
sudo bash -c 'cat <<EOF >> /etc/security/limits.conf
* soft nofile 1048576
* hard nofile 1048576
* soft nproc 1048576
* hard nproc 1048576
* soft rss unlimited
* hard rss unlimited
* soft stack 8192
* hard stack 8192
EOF'

4.6 配置大页内存

注:生产环境建议 启用大页内存、关闭透明大页

-- 查看当前大页内存配置
# grep -i huge /proc/meminfo
-- 查看当前透明大页配置
# cat /sys/kernel/mm/transparent_hugepage/enabled [若显示 always madvise [never],表明透明大页已禁用]-- BIOS 系统可通过如下脚本 启用大页内存和关闭透明大页
cat << 'EOF' > configure-hugepages-thp.sh
#!/bin/bash# 确保脚本以root权限运行
if [ "$(id -u)" != "0" ]; thenecho "此脚本必须以root权限运行" 1>&2exit 1
fi# 配置大页数量
REQUIRED_HUGEPAGES=<required_hugepages>  # 替换为实际计算值
echo "配置 $REQUIRED_HUGEPAGES 大页内存..."
echo "vm.nr_hugepages=$REQUIRED_HUGEPAGES" | tee -a /etc/sysctl.conf
sysctl -p# 禁用透明大页
echo "正在修改GRUB配置以禁用透明大页..."
GRUB_CMDLINE="transparent_hugepage=never"
if grep -q '^GRUB_CMDLINE_LINUX' /etc/default/grub; thensed -i "s/^\(GRUB_CMDLINE_LINUX=\".*\)\"/\1 $GRUB_CMDLINE\"/" /etc/default/grub
elseecho "GRUB_CMDLINE_LINUX=\"$GRUB_CMDLINE\"" | tee -a /etc/default/grub
fi# 更新GRUB配置
echo "更新GRUB配置..."
grub2-mkconfig -o /boot/grub2/grub.cfg# 重启系统
echo "准备重启系统以应用更改..."
read -p "是否现在重启系统?(y/n): " answer
if [[ $answer =~ ^[Yy]$ ]]
thenreboot
elseecho "更改将在下次重启后生效。"
fi
EOF--设置权限
# chmod +x configure-hugepages-thp.sh
-- 执行脚本
# sh configure-hugepages-thp.sh
-- 根据提示重启操作系统,输入 y

注:为优化YashanDB性能,建议配置适量大页内存以减少页表开销并提高内存效率。以下是配置示例。

计算总内存需求

1)基本内存配置:

  • DATA_BUFFER_SIZE: 32 MB
  • REDO_BUFFER_SIZE: 8 MB
  • VM_BUFFER_SIZE: 16 MB
  • SHARE_POOL_SIZE: 64 MB
  • LARGE_POOL_SIZE: 8 MB
  • DBWR_BUFFER_SIZE: 4 MB
  • WORK_AREA_POOL_SIZE: 16 MB
  • AUDIT_QUEUE_SIZE: 16 MB

总计基本内存需求(UserSize): 164 MB

2)额外内存需求:

  • 额外的内存需求(如MMS表空间)应该预先评估(MMSSize)。

计算大页所需空间

  • 根据公式 LargePageSize = (UserSize + MMSSize + 额外64 MB) * 1.2 【计算所需调整后的内存总量】
  • 假设MMSSize为100 MB,调整后的总内存需求为:(164+100+64)∗1.2=394.8(MB)

配置大页

  • 以2 MB为单个大页尺寸计算,所需大页数为:Ceil(394.8/2)=198
  • 配置大页内存需预留198个大页。

4.7 关闭SELinux

注意:建议关闭所有数据库服务器 SELinux

-- 临时关闭 SELinux
# setenforce 0
-- 永久关闭SELinux
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
-- 检查 SELinux 状态
# getenforce
-- 状态为Disabled表明SELinux已关闭

4.8 关闭防火墙

注意:建议关闭所有数据库服务器防火墙

-- 停止 firewalld 服务
# systemctl stop firewalld.service
-- 禁用 firewalld 服务
# systemctl disable firewalld.service
-- 查看 firewalld 服务状态 [ Active: inactive (dead) 表示已关闭防火墙 ]
# systemctl status firewalld  -- 若防火墙不能关闭,可通过添加白名单方式将相关端口添加到白名单中
-- 以下演示将 1688 端口添加至防火墙白名单
-- 添加(--permanent表示永久生效,没有此参数重启后失效)
# firewall-cmd --zone=public --add-port=1688/tcp --permanent
-- 重新载入
# firewall-cmd --reload
-- 查看规则生效情况
# firewall-cmd --zone=public --query-port=1688/tcp

4.9 开启 SSH 服务

-- 禁用 SSH 登录时的横幅(Banner)
# sed -i '/Banner/s/^/#/' /etc/ssh/sshd_config
-- 目的是禁用允许以 root 用户登录的配置选项
# sed -i '/PermitRootLogin/s/^/#/' /etc/ssh/sshd_config
# echo -e "\n" >> /etc/ssh/sshd_config
# echo "Banner none " >> /etc/ssh/sshd_config
# 修改Banner配置,去掉连接到系统时,系统提示的欢迎信息。欢迎信息会干扰安装时远程操作的返回结果,影响安装正常执行
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# cat /etc/ssh/sshd_config |grep -v ^#|grep -E 'PermitRootLogin|Banner'
-- 重启 SSH 服务生效
# systemctl restart sshd.service
-- 查看 SSH 服务状态
# systemctl status sshd.service

4.10 设置时区和时间

注:建议安装配置 chrony 设置时钟同步

-- 可使用如下脚本安装配置 chrony 服务
cat << 'EOF' > setup_chrony.sh
#!/bin/bash# 检查是否具有 root 权限
if [ "$EUID" -ne 0 ]; thenecho "请以 root 用户或使用 sudo 执行此脚本。"exit 1
fi# 安装 chrony
echo "安装 chrony..."
yum install -y chrony# 配置 chrony(修改 /etc/chrony.conf)
echo "配置 chrony..."
cat > /etc/chrony.conf <<EOL
# 默认公共 NTP 服务器
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst# 允许本地网络同步
allow 192.168.0.0/16# 日志记录
logdir /var/log/chrony
EOL# 启动并启用 chrony 服务
echo "启动并设置 chrony 服务开机自启..."
systemctl start chronyd
systemctl enable chronyd# 检查服务状态
echo "检查 chrony 服务状态..."
systemctl status chronyd# 验证同步状态
echo "验证时钟同步状态..."
chronyc tracking# 设置硬件时钟同步
echo "同步硬件时钟..."
hwclock --systohc# 输出完成信息
echo "Chrony 安装与配置完成。"
EOF--设置权限
# chmod +x setup_chrony.sh
-- 执行脚本
# sh setup_chrony.sh

4.11 配置硬件时钟

注:硬件时钟(RTC,Real-Time Clock)在集群环境中是时间管理的关键,其准确性直接影响多节点间的协作效率、数据一致性和系统稳定性。建议生产环境配置硬件时钟同步。

-- 确认硬件时钟当前状态
# hwclock --show
-- 确保系统时钟与硬件时钟同步
# hwclock --systohc
-- 选择硬件时钟的时间基准
-- 设置为 UTC 时间(推荐,尤其是服务器和集群环境)
# timedatectl set-local-rtc 0
-- 验证时钟同步
# timedatectl
-- 配置自动同步硬件时钟 [示例]
0 * * * * /sbin/hwclock --systohc 

4.12 修改字符集

注:为避免操作系统因字符集异常,建议前期设置为所需字符集

-- 此处已修改字符集为 en_US.UTF-8 为例
-- 设置字符集到 /etc/profile
# echo "export LANG=en_US.UTF-8" >> /etc/profile
-- 重新加载配置文件
# source /etc/profile
-- 检查字符集
# env | grep -i lang

4.13 安装软件依赖包

-- 安装 tar、gz、openssl 依赖包
-- 通过如下脚本安装以上依赖包
cat << 'EOF' > install_openssl.sh
#!/bin/bash# 检查是否具有 root 权限
if [ "$EUID" -ne 0 ]; thenecho "请以 root 用户或使用 sudo 执行此脚本。"exit 1
fi# 定义变量
OPENSSL_VERSION="1.1.1w"
OPENSSL_TAR="openssl-${OPENSSL_VERSION}.tar.gz"
OPENSSL_SHA256="openssl-${OPENSSL_VERSION}.tar.gz.sha256"
INSTALL_DIR="/usr/local/openssl"
SOURCE_DIR="/root/soft"# 安装解压工具
echo "检查并安装必要的解压工具..."
yum install -y tar gzip# 安装开发工具(如 gcc)
echo "检查并安装开发工具..."
yum groupinstall -y "Development Tools"
yum install -y gcc# 检查安装包和校验文件是否存在
if [ ! -f "${SOURCE_DIR}/${OPENSSL_TAR}" ]; thenecho "未找到 ${SOURCE_DIR}/${OPENSSL_TAR},请确认文件路径正确。"exit 1
fiif [ ! -f "${SOURCE_DIR}/${OPENSSL_SHA256}" ]; thenecho "未找到 ${SOURCE_DIR}/${OPENSSL_SHA256},请确认文件路径正确。"exit 1
fi# 进入文件目录
cd "${SOURCE_DIR}" || exit# 校验文件格式修复
if ! grep -q "${OPENSSL_TAR}" "${OPENSSL_SHA256}"; thenecho "修复校验文件格式..."SHA256_VALUE=$(cat "${OPENSSL_SHA256}" | awk '{print $1}')echo "${SHA256_VALUE} ${OPENSSL_TAR}" > "${OPENSSL_SHA256}"
fi# 校验文件完整性
echo "校验文件完整性..."
sha256sum -c "${OPENSSL_SHA256}"
if [ $? -ne 0 ]; thenecho "校验失败,请检查安装包是否损坏或下载是否完整。"exit 1
fi# 解压安装包
echo "解压安装包..."
tar xzf "${OPENSSL_TAR}"# 进入解压后的目录
cd "openssl-${OPENSSL_VERSION}" || exit# 编译安装 OpenSSL
echo "开始编译和安装 OpenSSL..."
./config --prefix="${INSTALL_DIR}"
make -j$(nproc) && make installif [ $? -ne 0 ]; thenecho "OpenSSL 编译或安装失败,请检查日志。"exit 1
fi# 配置系统路径
echo "配置系统路径..."
ln -sf "${INSTALL_DIR}/bin/openssl" /usr/bin/openssl
ln -sf "${INSTALL_DIR}/include/openssl" /usr/include/openssl
echo "${INSTALL_DIR}/lib" >> /etc/ld.so.conf
ldconfig -v# 验证安装
echo "验证 OpenSSL 版本..."
openssl version -a# 清理临时文件
cd ..
rm -rf "openssl-${OPENSSL_VERSION}"echo "OpenSSL ${OPENSSL_VERSION} 安装和配置完成!"
EOF--设置权限
# chmod +x install_openssl.sh
-- 执行脚本
# sh install_openssl.sh

4.14 创建用户

-- 通过如下脚本方式创建 yashan 用户并设置 sudo 免密
cat << 'EOF' > setup_user.sh
#!/bin/bash# 检查是否具有 root 权限
if [ "$EUID" -ne 0 ]; thenecho "请以 root 用户或使用 sudo 执行此脚本。"exit 1
fi# 定义变量
USERNAME="yashan"
HOMEDIR="/home/${USERNAME}"
USERGROUP="YASDBA"
PASSWORD="yashan!1234"  # 定义密码变量# 创建用户及设置密码
echo "创建用户 ${USERNAME}..."
if ! id -u "${USERNAME}" >/dev/null 2>&1; thenuseradd -m -d "${HOMEDIR}" -s /bin/bash "${USERNAME}"echo "${USERNAME}:${PASSWORD}" | chpasswdecho "用户 ${USERNAME} 已创建,密码设置为 '${PASSWORD}'。"
elseecho "用户 ${USERNAME} 已存在,跳过创建步骤。"
fi# 配置 sudo 免密权限
echo "配置 sudo 免密权限..."
if ! grep -q "^${USERNAME} ALL=(ALL) NOPASSWD: ALL" /etc/sudoers; thenecho "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoersecho "已为用户 ${USERNAME} 配置 sudo 免密权限。"
elseecho "用户 ${USERNAME} 已配置 sudo 免密权限,跳过。"
fi# 确保 /etc/sudoers 文件属性恢复为只读
echo "恢复 /etc/sudoers 文件为只读属性..."
chmod 440 /etc/sudoers# 创建用户组并将用户加入组
echo "创建用户组 ${USERGROUP} 并将用户加入组..."
if ! grep -q "^${USERGROUP}:" /etc/group; thengroupadd "${USERGROUP}"echo "用户组 ${USERGROUP} 已创建。"
elseecho "用户组 ${USERGROUP} 已存在,跳过创建。"
fiusermod -aG "${USERGROUP}" "${USERNAME}"
echo "用户 ${USERNAME} 已加入用户组 ${USERGROUP}。"echo "所有操作已完成。"EOF--设置权限
# chmod +x setup_user.sh
-- 执行脚本
# sh setup_user.sh

4.15 创建目录

-- 每个节点数据库服务器都要创建相同目录
# mkdir -p /data/yashan
# chmod 777 /data/yashan
# chown yashan:yashan /data/yashan

4.16 下载软件安装包

4.16.1 下载安装包

方式一:

登录崖山数据库官网 https://download.yashandb.com/download 下载页面,下载 YashanDB 企业版,截止到 2024年12月-11日,当前官网可供下载的最新企业版为 YashanDB 23.2.4 版本,并选择对应的 Linux X86 数据库版本进行下载,然后将下载的数据库软件上传到数据库服务器指定目录下。

在这里插入图片描述

方式二:

如果服务器可以连接外网,可以在数据库服务器上通过如下方式进行下载。

-- 下载数据库软件
$ cd /home/yashan/install
$ wget https://linked.yashandb.com/upload1010/yashandb-23.2.4.100-linux-x86_64.tar.gz

4.16.2 解压安装包

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

五、数据库软件安装

5.1 生成部署文件

注:执行yasboot package命令生成 toml 配置文件

-- 使用 yashan 用户在其中节点执行
# su - yashan
$ cd install
$ ./bin/yasboot package ce gen --cluster yashandb -u yashan -p 'yashan!1234' --ip 192.168.10.101,192.168.10.102 --port 22 --install-path /data/yashan/yasdb_home --data-path /data/yashan/yasdb_data --begin-port 1688 --node 2 --data /dev/sdb --vote /dev/sdc  --ycr /dev/sdd-- 参数说明
--cluster	指定数据库集群名称,该名称也将作为初始数据库的名称(database name)
--port	指定SSH服务端口
--install-path	指定数据库安装路径
--data-path	指定数据存放目录
--begin-port	指定第一个数据库实例的数据库监听端口
--data	指定绑定的数据盘路径
--vote	指定绑定的投票盘路径
--ycr	指定绑定的 YCR 盘路径-- 上述命令执行后会在 install 目录下生成 yashandb.toml 和 hosts.toml 两个配置文件
-- yashandb.toml:数据库集群配置文件。
-- hosts.toml:服务器配置文件
-- toml 配置文件如附件

在这里插入图片描述

5.1.1 配置文件及含义介绍

注:执行 yasboot package 安装部署时,会生成 hosts.toml 和 yashandb.toml 两个配置文件,两个配置文件的内容及含义如下:

1)hosts.toml 配置文件

uuid = "67623aae42555d4f02bf13b06b22197c"    #系统自动生成,不建议修改
cluster = "yashandb"       #安装后修改也不会生效,除非重新安装
yas_type = "CE"       #部署模式,安装后修改也不会生效,除非重新安装   
secret_key = "77050acd15a2a09b"   #系统自动生成,不建议修改
add_yasdba = true  # 表示是否添加yasdba相关的配置或功能,true 表示启用[om]hostid = "host0001"   # 主机唯一标识符,用于在集群中区分不同的主机[om.config]      LISTEN_ADDR = "192.168.10.101:1675"  # om模块监听地址和端口[[host]]hostid = "host0001"   # 主机唯一标识符,每个主机的hostid都不同group = "yashan"   #主机所属组名user = "yashan"password = "yashan!1234"ip = "192.168.10.101"port = 22   # 登录主机 SSH 端口path = "/data/yashan/yasdb_home" # 产品安装路径,安装后修改也不会生效,除非重新安装disks = ["/dev/sdb", "/dev/sdc", "/dev/sdd"] # 安装过程设置的 data、vote、ycr 盘[host.yasagent][host.yasagent.config]LISTEN_ADDR = "192.168.10.101:1676"  # yasagent 侦听地址和端口[[host]]hostid = "host0002"group = "yashan"user = "yashan"password = "yashan!1234"ip = "192.168.10.102"port = 22path = "/data/yashan/yasdb_home"disks = ["/dev/sdb", "/dev/sdc", "/dev/sdd"][host.yasagent][host.yasagent.config]LISTEN_ADDR = "192.168.10.102:1676"

2)yashandb.toml 配置文件

# ------------------------------------------------------------------------------
# YashanDB 共享集群配置文件示例 (yashandb.toml)
# ------------------------------------------------------------------------------cluster = "yashandb"               # 集群名称,不建议修改,修改后不生效
create_simple_schema = false       # 是否自动创建简单 Schema (true/false)
uuid = "67623aae42555d4f02bf13b06b22197c"   # 集群唯一标识符
yas_type = "CE"                    # YashanDB 版本类型 (CE: 社区版, EE: 企业版)[[group]]database_role = "primary"        # 数据库组角色 (primary/standby 等)group_type = "ce"                # 数据库组类型 (ce/ee 等)name = "ceg1"                    # 数据库组名称[group.cedisk]vote = "/dev/sdc"             # 投票磁盘(Voting Disk)路径ycr = "/dev/sdd"              # YCR日志磁盘路径 (类似 OCR/Voting Disk 作用)[group.config]CHARACTER_SET = "utf8"        # 数据库字符集 (utf8/gbk 等)ISARCHIVELOG = true           # 是否启用归档日志模式 (true/false)REDO_FILE_NUM = 4             # REDO 文件组数量REDO_FILE_SIZE = "128M"       # 每组 REDO 文件大小[[group.diskgroup]]au_size = "1M"                # Allocation Unit 大小disk_size = ""                # 磁盘组期望大小 (留空表示自动获取)name = "DG0"                  # 磁盘组名称redundancy = "EXTERNAL"       # 冗余级别 (EXTERNAL/NORMAL/HIGH)yfs_force_create = false      # 是否强制创建 (true/false)[[group.diskgroup.failgroup]]disk = ["/dev/sdb"]         # 故障组内包含的物理磁盘路径name = "DG0_0"              # 故障组名称[[group.node]]data_path = "/data/yashan/yasdb_data"    # 数据文件存放路径hostid = "host0001"                     # 主机 ID/名称role = 1      # 节点角色编号 (共享集群的节点没有主备概念,不支持修改)[group.node.config]CLUSTER_DATABASE = "TRUE"             # 是否参与集群数据库 (TRUE/FALSE)CLUSTER_INTERCONNECT = "192.168.10.101:1689"   # 集群内部通信地址/端口DATA_BUFFER_SIZE = "1G"               # 数据缓冲区大小HA_ELECTION_TIMEOUT = 18              # HA 选举超时时间 (秒)HA_HEARTBEAT_INTERVAL = 6             # HA 心跳间隔 (秒)INTER_URL = "192.168.10.101:1788"     # 节点对外/对内服务 URLLISTEN_ADDR = "192.168.10.101:1688"   # 数据库监听地址/端口REDO_BUFFER_PARTS = 8                 # REDO 缓冲区分区数量REDO_BUFFER_SIZE = "64M"              # REDO 缓冲区大小RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.2.4.100/log/yashandb/ce-1-1/run"   # 运行日志路径SHARE_POOL_SIZE = "1G"                # 共享池大小SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.2.4.100/log/yashandb/ce-1-1/slow" # 慢日志路径SQL_POOL_PARTS = 8                    # SQL 池分区数量[[group.node]]data_path = "/data/yashan/yasdb_data"    # 数据文件存放路径hostid = "host0002"                     # 主机 ID/名称role = 2                                # 节点角色编号 (1: 主节点, 2: 备节点等)[group.node.config]CLUSTER_DATABASE = "TRUE"             # 是否参与集群数据库 (TRUE/FALSE)CLUSTER_INTERCONNECT = "192.168.10.102:1689"   # 集群内部通信地址/端口DATA_BUFFER_SIZE = "1G"               # 数据缓冲区大小HA_ELECTION_TIMEOUT = 18              # HA 选举超时时间 (秒)HA_HEARTBEAT_INTERVAL = 6             # HA 心跳间隔 (秒)INTER_URL = "192.168.10.102:1788"     # 节点对外/对内服务 URLLISTEN_ADDR = "192.168.10.102:1688"   # 数据库监听地址/端口REDO_BUFFER_PARTS = 8                 # REDO 缓冲区分区数量REDO_BUFFER_SIZE = "64M"              # REDO 缓冲区大小RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.2.4.100/log/yashandb/ce-1-2/run"   # 运行日志路径SHARE_POOL_SIZE = "1G"                # 共享池大小SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.2.4.100/log/yashandb/ce-1-2/slow" # 慢日志路径SQL_POOL_PARTS = 8                    # SQL 池分区数量[group.ycsconfig]DISK_HB_KEEP_ALIVE = 30   # 磁盘心跳保活时间(秒)LOG_LEVEL = "DEBUG"       # 日志等级 (DEBUG/INFO/WARN/ERROR 等)LOG_NUMBER = 10           # 日志文件最大保留数量LOG_SIZE = "20M"          # 单个日志文件最大尺寸NETWORK_HB_TIMEOUT = 30   # 网络心跳超时时间(秒)RESTART_INTERVAL = 30     # 节点故障后自动重启时间间隔(秒)RESTART_TIMES = 3         # 最大自动重启次数WAIT_STOP_FIN_TIME = 90   # 停止节点时等待进程退出超时时间(秒)[group.yfsconfig]SHM_POOL_SIZE = "2G"      # 共享内存池大小SYS_AREA_SIZE = "1G"      # 系统区域大小YFS_PACKET_SIZE = "1M"    # YFS 数据包大小

5.2 执行安装

场景一:直接安装

-- 使用 yashan 用户在生成 toml 配置文件的服务器上进行安装
$ cd install
$ ./bin/yasboot package install -t hosts.toml -i yashandb-23.2.4.100-linux-x86_64.tar.gz

场景二:扩展插件安装

注:如需使用DBLINK功能和更丰富的内置函数,可借助 plugin 插件包进行安装,若前期采用了直接安装,安装后,无法再单独安装插件包

-- 本次采用了扩展插件安装
-- 首先登录官网下载并上传 yashandb-plugins-all-23.2.4.100-linux-x86_64.tar.gz 插件到 /home/yashan/install 目录
-- 执行安装命令
$ cd install
$ ./bin/yasboot package install -t hosts.toml -i yashandb-23.2.4.100-linux-x86_64.tar.gz --plugin yashandb-plugins-all-23.2.4.100-linux-x86_64.tar.gz

在这里插入图片描述

5.3 数据库部署

-- 使用 yashan 用户执行
-- 使用参数 “-d” 或 “--child”,可展示任务及其子任务信息,便于查看部署进度。
$ cd install
$ ./bin/yasboot cluster deploy -t yashandb.toml --yfs-force-create -d 
-- 执行结果出现 task completed, status: SUCCESS 提示安装部署成功
-- 执行过程可查看 /data/yashan/yasdb_home/yashandb/23.2.4.100/om/yashandb/log 目录下 yasom.log 和 yasagent.log 查看安装过程日志

在这里插入图片描述

5.4 配置环境变量

注:为确保 YashanDB 相关命令正常执行,需将生成的环境变量配置文件加入当前用户环境,请参照如下步骤配置环境变量。

​ 登录到每台服务器执行如下相同操作

1)定位环境变量文件

-- 部署完成后,环境变量文件存于 $YASDB_HOME/conf 目录,示例路径:
-- yashan 用户操作
$ cd /data/yashan/yasdb_home/yashandb/23.2.4.100/conf

2)更新用户环境变量

-- 将文件内容追加至 ~/.bashrc:
-- yashan 用户操作
$ cat yashandb.bashrc >> ~/.bashrc

3)立即生效

-- 执行以下命令生效:
$ source ~/.bashrc

以上操作可通过如下脚本实现:

-- 使用 yashan 用户,每个节点执行
#!/bin/bash# 定义变量
CONF_DIR="/data/yashan/yasdb_home/yashandb/23.2.4.100/conf"
ENV_FILE="yashandb.bashrc"
BASHRC="$HOME/.bashrc"
TEST_VAR="YASDB_HOME"  # 用于验证的环境变量名
YASHAN_CMD="yasboot --help"  # 用于验证的 YashanDB 命令
BIN_DIR="bin"  # 假设 yasboot 在 $YASDB_HOME/bin 下# 检查环境变量文件是否存在
if [[ ! -f "$CONF_DIR/$ENV_FILE" ]]; thenecho "环境变量文件不存在:$CONF_DIR/$ENV_FILE"exit 1
fi# 备份原有的 .bashrc 文件
echo "备份当前 .bashrc 文件为 .bashrc.bak"
cp "$BASHRC" "$BASHRC.bak"# 删除已有的 YashanDB 环境变量
echo "清除旧的 YashanDB 环境变量配置"
sed -i '/# YashanDB 环境变量配置开始/,/# YashanDB 环境变量配置结束/d' "$BASHRC"# 添加新环境变量配置
echo "添加新的 YashanDB 环境变量配置"
echo -e "\n# YashanDB 环境变量配置开始" >> "$BASHRC"
cat "$CONF_DIR/$ENV_FILE" >> "$BASHRC"
echo "export PATH=\$YASDB_HOME/$BIN_DIR:\$PATH" >> "$BASHRC"  # 添加 bin 目录到 PATH
echo "# YashanDB 环境变量配置结束" >> "$BASHRC"# 使环境变量立即生效
echo "使环境变量立即生效"
source "$BASHRC"
export PATH=$YASDB_HOME/$BIN_DIR:$PATH  # 确保当前会话生效# 检查环境变量是否配置成功
if [[ -z "${!TEST_VAR}" ]]; thenecho "环境变量未生效,请检查配置!"exit 1
elseecho "环境变量已成功配置,$TEST_VAR=${!TEST_VAR}"
fi# 测试 YashanDB 命令
echo "执行 YashanDB 测试命令:$YASHAN_CMD"
if command -v yasboot >/dev/null 2>&1; thenif $YASHAN_CMD >/dev/null 2>&1; thenecho "YashanDB 命令执行成功,环境变量已正确配置!"elseecho "YashanDB 命令执行失败,请检查数据库状态!"exit 1fi
elseecho "yasboot 未找到,请检查 PATH 配置或 yasboot 是否存在!"exit 1
fiecho "所有配置完成!"
source $HOME/.bashrc--设置权限
# chmod +x setup_env.sh 
-- 执行脚本
# sh setup_env.sh 

5.4 修改初始口令

注:YashanDB 无初始系统口令,可通过安装用户使用 yasboot 工具设置 sys 用户密码。

-- 使用如下命令初始 sys 密码
-- yasboot cluster password set -n newpasswd -c yashandb
-- 注意:如果密码有特殊字符要加 '' 符号
$ yasboot cluster password set -n 'yashan!a1357' -c yashandb

在这里插入图片描述

5.5 查看集群状态

5.5.1 查看数据库状态

-- 通过 yasboot 命令查看集群和数据库状态  
$ yasboot cluster status -c yashandb -d

在这里插入图片描述

注:

表格列解析

  • hostid
    每个节点的主机名或标识符。
  • node_type
    节点类型,通常包括:
    • ce:计算节点(Compute Node)。
  • nodeid
    节点唯一标识符,格式 x-y-z,表示集群逻辑分区。
  • pid
    每个节点对应进程 ID,用于标识该节点进程。
  • instance_status
    节点实例运行状态为 open,表示节点正常运行。
  • database_status
    数据库状态,通常包括:
    • normal:数据库运行正常。
    • abnormal:数据库运行异常。
  • database_role
    数据库角色,包括:
    • primary :主节点,负责处理读写请求。
    • standby:备用节点,负责故障切换或备份。
  • listen_address
    节点的监听地址,用于通信和连接。
  • data_path
    节点数据存储路径指向该节点在磁盘上的数据目录。

5.5.2 查看实例状态

注:使用 yasql 工具连接数据库,查看实例状态。

-- 如密码包含特殊字符,请对特殊字符进行转义处理。
-- 使用如下命令登录数据库
-- yasql sys/sys_password@cn_hostname:port
$ yasql sys/'yashan!a1357'@192.168.10.102:1688

在这里插入图片描述

5.5.3 集群启停测试

-- 停止集群
[yashan@yashandb01 ~]$ yasboot cluster stop -c yashandb -d
-- 查看集群状态
[yashan@yashandb01 ~]$ yasboot cluster status -c yashandb -d
-- 启动集群
[yashan@yashandb01 ~]$ yasboot cluster start -c yashandb -d

在这里插入图片描述

5.6 配置守护进程

注:通过命令行安装的 YashanDB 默认不支持 monit 守护进程功能,需安装配置。

5.6.1 检查 monit 是否安装

-- 使用 yashan 用户
$ cd /home/yashan/install
-- 执行如下命令检查 monit 状态
yasboot monit status --cluster cluster_name
$ ./bin/yasboot monit status --cluster yashandb
-- 以下表示未启动 monit

在这里插入图片描述

5.6.2 启动守护进程

-- 使用 yashan 用户
$ cd /home/yashan/install
$ ./bin/yasboot monit start --cluster yashandb

5.6.3 查看守护进程状态

-- 使用 yashan 用户
$ cd /home/yashan/install
$ ./bin/yasboot monit status --cluster yashandb

5.6.4 配置开机自启动[可选]

注:可通过如下脚本实现

#!/bin/bash# 检查 monit 是否已安装
MONIT_PATH=$(which monit)
if [ -z "$MONIT_PATH" ]; thenecho "[ERROR] monit 未安装,请先安装 monit。"exit 1
fiecho "[INFO] monit 安装路径为: $MONIT_PATH"# 检查 monit 是否运行
if ! pgrep -x "monit" > /dev/null; thenecho "[INFO] monit 服务未运行,正在启动..."$MONIT_PATHif [ $? -ne 0 ]; thenecho "[ERROR] monit 服务启动失败,请检查配置。"exit 1fi
elseecho "[INFO] monit 服务已运行。"
fi# 启动守护进程
cd /home/yashan/install || exit 1
./bin/yasboot monit start --cluster yashandb
if [ $? -ne 0 ]; thenecho "[ERROR] 无法启动守护进程,请检查配置。"exit 1
fiecho "[INFO] 守护进程已成功启动。"# 打印服务信息
./bin/yasboot monit status --cluster yashandb
if [ $? -ne 0 ]; thenecho "[ERROR] 无法获取守护进程状态,请检查配置。"exit 1
fiecho "[INFO] 服务信息已打印。"# 配置开机启动
RC_LOCAL="/etc/rc.local"
START_COMMAND="su yashan -c '$MONIT_PATH -c /data/yashan/yasdb_home/yashandb/23.2.4.100/ext/monit/monitrc'"if [ -f "$RC_LOCAL" ]; thensudo chmod +x "$RC_LOCAL"grep -q "$START_COMMAND" "$RC_LOCAL" || echo "$START_COMMAND" | sudo tee -a "$RC_LOCAL" > /dev/nullecho "[INFO] 开机启动配置完成。"
elseecho "[ERROR] $RC_LOCAL 文件不存在,请检查系统。"exit 1
fiexit 0--设置权限
# chmod +x setup_yashandb_autostart.sh
-- 执行脚本
# sh setup_yashandb_autostart.sh

在这里插入图片描述

六、附录

6.1 主机名名称不能有特殊符号

注:使用主机名为 yashandb-01、yashandb-02 安装共享集群时,报 YAS-05721 Invalid input parameter 错误,后跟官方技术人员反馈是数据库标记的node名字格式冲突导致,是一个 BUG,目前已条件开发人员解决处理。

在这里插入图片描述

6.2 用户锁定解锁问题

注:验证测试时遇到 sys 用户因异常登录锁定导致无法登录该节点,后通过 yasql 登录另一个节点,使用 alter user xxx account unlock 解锁,解锁后可使用该账户重新登录原节点。

在这里插入图片描述
在这里插入图片描述

6.3 不支持 AUTO_INCREMENT

注:当前 23.2.4 版本不支持 AUTO_INCREMENT 自增模式,Oracle 和 MySQL 当前均不支持,已将该问题反馈给研发人员。

[yashan@yashandb01 ~]$ yasql sys/'yashan!a1357'@192.168.10.101:1688
YashanDB SQL Enterprise Edition Release 23.2.4.100 x86_64Connected to:
YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 - X86 64bit LinuxSQL> SHOW PARAMETER SQL_PLUGIN;NAME                                                             VALUE                                                            
---------------------------------------------------------------- ---------------------------------------------------------------- 
SQL_PLUGIN                                                       NONE                                                            1 row fetched.SQL> CREATE TABLE employees (2     employee_id INT AUTO_INCREMENT PRIMARY KEY,3     employee_name VARCHAR(50) NOT NULL,4     gender ENUM('M', 'F') NOT NULL,5     hire_date DATE NOT NULL,6     salary DECIMAL(10, 2) NOT NULL7 );[2:21]YAS-04209 unexpected word AUTO_INCREMENTSQL> -- 开启MySQL兼容
SQL> ALTER SYSTEM SET SQL_PLUGIN = 'MYSQL' SCOPE = MEMORY;Succeed.SQL> CREATE TABLE employees (2     employee_id INT AUTO_INCREMENT PRIMARY KEY,3     employee_name VARCHAR(50) NOT NULL,4     gender ENUM('M', 'F') NOT NULL,5     hire_date DATE NOT NULL,6     salary DECIMAL(10, 2) NOT NULL7 );[2:21]YAS-04209 unexpected word AUTO_INCREMENTSQL> 

在这里插入图片描述

6.4 集群模式不支持 sid =‘*’

注:当前集群模式下希望修改参数保证集群所有节点生效,使用 sid=‘*’,YAS-00207 end of text expected but S found,当前数据库版本不支持 sid = * 这种模式,已将该问题反馈给研发人员。

[yashan@yashandb01 ~]$ yasql sys/'yashan!a1357'@192.168.10.101:1688
YashanDB SQL Enterprise Edition Release 23.2.4.100 x86_64Connected to:
YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 - X86 64bit LinuxSQL> SHOW PARAMETER SQL_PLUGIN;NAME                                                             VALUE                                                            
---------------------------------------------------------------- ---------------------------------------------------------------- 
SQL_PLUGIN                                                       MYSQL                                                           1 row fetched.SQL> ALTER SYSTEM SET SQL_PLUGIN = 'MYSQL' SCOPE = MEMORY SID='*';[1:54]YAS-00207 end of text expected but S foundSQL> ALTER SYSTEM SET SQL_PLUGIN = 'MYSQL' SCOPE = SPFILE SID='*';[1:54]YAS-00207 end of text expected but S foundSQL> 
Disconnected from:
YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 - X86 64bit Linux

在这里插入图片描述

6.5 数据库部署遇到 ping 失败报错

注:在部署数据库时遇到 stdout:start node with ping failed 报错,最后通过 yashan 用户配置两个节点的互信解决。

在这里插入图片描述

6.6 服务器内存不能小于 4G

注:部署测试环境时,服务器内存设置为 4G,安装时报 memory is less than 4096MB。

最后将服务器内存调整为大于 4G,重新安装部署通过。

6.7 dial tcp xxx:1675: connect: connection refused

注:集群停止后启动时报 failed to dial server: dial tcp 192.168.10.101:1675: connect: connection refused 错误

在这里插入图片描述

注:解决办法,需要先启动 yasom 进程 ,再启动 yasagent ,然后再启动集群

-- 启动 yasom
yasboot process yasom start -c yashandb
-- 启动 yasagent 
yasboot process yasagent start -c yashandb
-- 等所有节点 yasom 和 yasagent 都启动,然后启动集群
yasboot cluster start -c yashandb -d

6.8 openssl 提示版本低

注:当在 CentOS 7.9 操作系统执行安装部署时,会提示默认版本 openssl 较低,输出信息为 OpenSSL version is 1.1.1 or greater,需要较高版本,当 openssl 版本升级到 较高版本,比如 1.1.1w,但执行安装时仍然会输出 OpenSSL version is 1.1.1 or greater,但可以正常安装,此问题已反馈给崖山研发,后续会进行修正。

在这里插入图片描述

七、总结

曾经在安装测试过崖山个人版数据库的安装部署,相对于个人版,企业版拥有更多的功能,可以让数据库爱好者体验崖山共享集群数据库、崖山分布式数据库,虽然在企业版安装部署过程中也遇到一些问题,但整体都非常流畅,相对于 Oracle RAC 的安装部署也更简单,特别适合很多 Oracle DBA 转型学习。

54]YAS-00207 end of text expected but S found

SQL>
Disconnected from:
YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 - X86 64bit Linux


[外链图片转存中...(img-igVPnseu-1734943780086)]## 6.5 数据库部署遇到 ping 失败报错注:在部署数据库时遇到 stdout:start node with ping failed 报错,最后通过 yashan 用户配置两个节点的互信解决。[外链图片转存中...(img-OruzMahd-1734943780086)]## 7.6 服务器内存不能小于 4G注:部署测试环境时,服务器内存设置为 4G,安装时报 memory is less than 4096MB。最后将服务器内存调整为大于 4G,重新安装部署通过。## 6.7 dial tcp xxx:1675:  connect: connection refused注:集群停止后启动时报 failed to dial server: dial tcp 192.168.10.101:1675: connect: connection refused 错误[外链图片转存中...(img-7GxhPXrE-1734943780086)]注:解决办法,需要先启动 yasom 进程 ,再启动 yasagent ,然后再启动集群```powershell
-- 启动 yasom
yasboot process yasom start -c yashandb
-- 启动 yasagent 
yasboot process yasagent start -c yashandb
-- 等所有节点 yasom 和 yasagent 都启动,然后启动集群
yasboot cluster start -c yashandb -d

7.8 openssl 提示版本低

注:当在 CentOS 7.9 操作系统执行安装部署时,会提示默认版本 openssl 较低,输出信息为 OpenSSL version is 1.1.1 or greater,需要较高版本,当 openssl 版本升级到 较高版本,比如 1.1.1w,但执行安装时仍然会输出 OpenSSL version is 1.1.1 or greater,但可以正常安装,此问题已反馈给崖山研发,后续会进行修正。

在这里插入图片描述

七、总结

曾经在安装测试过崖山个人版数据库的安装部署,相对于个人版,企业版拥有更多的功能,可以让数据库爱好者体验崖山共享集群数据库、崖山分布式数据库,虽然在企业版安装部署过程中也遇到一些问题,但整体都非常流畅,相对于 Oracle RAC 的安装部署也更简单,特别适合很多 Oracle DBA 转型学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/65295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开发问题记录】执行 git cz 报require() of ES Module…… 错误

文章目录 1、问题2、解决3、参考链接 1、问题 在对 commitizen 进行完&#xff0c;一系列的初始化以后 &#xff0c; 对代码进行 提交 到暂存区&#xff0c;然后要提交到 本地仓库 的报错 然后因为安装了 commitizen 所以是想用 git cz 进行提交的&#xff0c; 执行命令的时候…

AI三驾马车——数据、算法与算力的一体化融合体验

一、概述 随着AI大模型、云计算和大数据技术的快速发展&#xff0c;智能算力市场需求持续增长。今年7月由国家信息中心发布的《智能算力产业发展白皮书》指出&#xff0c;随着AI大模型等关键技术取得突破&#xff0c;算力需求正从通用计算转向智能计算。智能计算是指面向人工智…

前端知识补充—CSS

CSS介绍 什么是CSS CSS(Cascading Style Sheet)&#xff0c;层叠样式表, ⽤于控制⻚⾯的样式 CSS 能够对⽹⻚中元素位置的排版进⾏像素级精确控制, 实现美化⻚⾯的效果. 能够做到⻚⾯的样式和结构分离 基本语法规范 选择器 {⼀条/N条声明} 1&#xff09;选择器决定针对谁修改…

在git commit之前让其自动执行一次git pull命令

文章目录 背景原因编写脚本测试效果 背景原因 有时候可以看到项目的git 提交日志里好多 Merge branch ‘master’ of …记录。这些记录是怎么产生的呢&#xff1f; 是因为在本地操作 git add . 、 git commit -m "xxxxx"时&#xff0c;没有提前进行git pull操作&…

c# RSA加解密工具,.netRSA加解密工具

软件介绍 名称: c# RSA加解密工具,.netRSA加解密工具依赖.net版本: .net 8.0工具类型: WinForm源码下载 c# RSA加解密工具,.netRSA加解密工具 依赖项 WinFormsRSA.csproj <Project

GitCode 光引计划投稿|智能制造一体化低代码平台 Skyeye云

随着智能制造行业的快速发展&#xff0c;企业对全面、高效的管理解决方案的需求日益迫切。然而&#xff0c;传统的开发模式往往依赖于特定的硬件平台&#xff0c;且开发过程繁琐、成本高。为了打破这一瓶颈&#xff0c;Skyeye云应运而生&#xff0c;它采用先进的低代码开发模式…

iOS从Matter的设备认证证书中获取VID和PID

设备认证证书也叫 DAC, 相当于每个已经认证的设备的标识。包含了 VID 和 PID. VID: Vendor ID &#xff0c;标识厂商 PID: Product ID&#xff0c; 标识设备的 根据 Matter 对于设备证书的规定&#xff0c;DAC证书subject应该包含VID 和 PID. 可通过解析 X509 证书读取subject…

关于分布式数据库需要了解的相关知识!!!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于关于分布式数据库方面的相关内容&a…

EdgeX Core Service 核心服务之 Core Command 命令

EdgeX Core Service 核心服务之 Core Command 命令 一、概述 Core-command(通常称为命令和控制微服务)可以代表以下角色向设备和传感器发出命令或动作: EdgeX Foundry中的其他微服务(例如,本地边缘分析或规则引擎微服务)EdgeX Foundry与同一系统上可能存在的其他应用程序…

《计算机组成及汇编语言原理》阅读笔记:p86-p115

《计算机组成及汇编语言原理》学习第 6 天&#xff0c;p86-p115 总结&#xff0c;总计 20 页。 一、技术总结 1.if statement 2.loop 在许多编程语言中&#xff0c;有类种循环&#xff1a;一种是在程序开头检测条件(test the condition),另一种是在程序末尾检测条件。 3.C…

Linux高级--2.4.5 靠协议头保证传输的 MAC/IP/TCP/UDP---协议帧格式

任何网络协议&#xff0c;都必须要用包头里面设置写特殊字段来标识自己&#xff0c;传输越复杂&#xff0c;越稳定&#xff0c;越高性能的协议&#xff0c;包头越复杂。我们理解这些包头中每个字段的作用要站在它们解决什么问题的角度来理解。因为没人愿意让包头那么复杂。 本…

uniapp 微信小程序 数据空白展示组件

效果图 html <template><view class"nodata"><view class""><image class"nodataimg":src"$publicfun.locaAndHttp()?localUrl:$publicfun.httpUrlImg(httUrl)"mode"aspectFit"></image>&l…

BAPI_BATCH_CHANGE在更新后不自动更新批次特征

1、问题介绍 在CL03中看到分类特性配置了制造日期字段&#xff0c;并绑定了生产日期字段MCH1~HSDAT MSC2N修改批次的生产日期字段时&#xff0c;自动修改了对应的批次特性 但是通过BAPI&#xff1a;BAPI_BATCH_CHANGE修改生产日期时&#xff0c;并没有更新到批次特性中 2、BAPI…

数据仓库工具箱—读书笔记02(Kimball维度建模技术概述03、维度表技术基础)

Kimball维度建模技术概述 记录一下读《数据仓库工具箱》时的思考&#xff0c;摘录一些书中关于维度建模比较重要的思想与大家分享&#x1f923;&#x1f923;&#x1f923; 第二章前言部分作者提到&#xff1a;技术的介绍应该通过涵盖各种行业的熟悉的用例展开&#xff08;赞同…

视频汇聚融合云平台Liveweb一站式解决视频资源管理痛点

随着5G技术的广泛应用&#xff0c;各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据&#xff0c;并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而&#xff0c;随着数字化建设和生产经营管理活动的长期开展&#xff0…

linux 查看服务是否开机自启动

一、centos6查看开机自启服务 chkconfig rpcbind --list chkconfig 服务 --list 二、centos7查看开机自启服务 1.systemctl list-unit-files 查看启动项 左边是服务名称&#xff0c;右边是状态&#xff0c;enabled是开机启动&#xff0c;disabled是开机不启动 systemctl l…

MySQL连接IDEA(Java Web)保姆级教程

第一步&#xff1a;新建项目(File)->Project 第二步&#xff1a;New Project(JDK最好设置1.8版本与数据库适配&#xff0c;详细适配网请到MySQL官网查询MySQL :: MySQL 8.3 Reference Manual :: Search Results) 第三步&#xff1a;点中MySQLTest(项目名)并连续双击shift键-…

linux下搭建lamp环境(dvwa)

lamp简介 LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写&#xff1a; Linux&#xff0c;操作系统 Apache&#xff0c;网页服务器 MariaDB或MySQL&#xff0c;数据库管理系统或数据库服务器 PHP、Perl或Python&#xff0c;脚本语言 # ubuntu安装…

腾讯云云开发 Copilot 深度探索与实战分享

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 目录 一、引言 二、产品介绍 三、产品体验过程 四、整体总结 五、给开发者的复用建议 六、对 AI 辅助开发的前景展望 一、引言 在当今数字化转型加速的时代&#xff0c;…

潮玩设备AI语音交互方案,ESP32-S3芯片模组物联网通信技术

在智能化的世界里&#xff0c;每一个设备都是一个节点&#xff0c;它们通过无线网络相互连接&#xff0c;形成一个庞大的智能网络。这些设备能够相互通信&#xff0c;理解并判断用户的需求&#xff0c;从而提供更加个性化的服务。 而这一切的背后&#xff0c;是强大的处理器和…