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

YashanDB 高可用实战:手把手搭建单机主备与避坑指南

原创 「捉虫特工队」🐞 2025-08-30
327

🔍 一、 关于 YashanDB

YashanDB(崖山数据库)是由深圳计算科学研究院完全自主研发的高性能关系型数据库。它定位金融级核心交易场景,致力于为企业提供稳定可靠、高度兼容、极致性能的数据底座。

核心特性速览:

  • 金融级高可用:原生支持RAC、主备等多种高可用架构,数据零丢失,业务无缝切换。
  • 极致性能:依托原创存储与计算引擎,在TPC-C等权威测试中表现卓越。
  • 高度兼容:深度兼容主流数据库语法与协议,迁移成本极低。
  • 全栈自研:从存储到查询引擎全链路自主可控,安全可靠。

本文将以 CentOS 7 为例,使用 yashan 用户,带你一步步完成一个高可用的主备(Primary-Standby)环境部署,并附上亲手踩过的“坑”和填坑方案。


⚙️ 二、 安装前准备:打好地基

准备工作是成功的一半,请严格按照步骤操作。

1. 系统与用户配置

  • 创建专属用户与组 (在所有节点执行)

    # 使用root权限操作 sudo groupadd YASDBA sudo useradd -g YASDBA yashan sudo passwd yashan # 为yashan用户设置一个强密码
  • 🔑 配置SSH互信(最关键一步)
    yasboot工具依赖SSH在节点间远程执行命令,必须配置双向免密。

    • 在主机A (192.168.3.110) 上执行:
      su - yashan # 切换至yashan用户 ssh-keygen -t rsa # 一路回车,生成密钥对 ssh-copy-id yashan@192.168.3.110 # 拷贝公钥到本机 ssh-copy-id yashan@192.168.3.111 # 拷贝公钥到主机B
    • 在主机B (192.168.3.111) 上重复以上操作,实现双向免密登录。

2. 系统环境调优

  • 关闭并禁用防火墙
    sudo systemctl stop firewalld sudo systemctl disable firewalld
  • 同步时间与时区(必须一致!)
    主备节点时间差会导致部署失败!
    sudo timedatectl set-timezone Asia/Shanghai # 统一设置为东八区 sudo yum install -y ntpdate # 安装时间同步工具 sudo ntpdate time.windows.com # 与公共NTP服务器同步时间 # 请在所有节点执行,并确保`date`命令输出结果完全相同

3. 安装依赖库
一键安装所有所需依赖,避免后续报错。

sudo yum install -y zlib lz4 libzstd openssl-devel libssl libcrypto

4. 安装包处理

  • 上传与校验:将安装包上传至所有节点的相同路径(如 /home/yashan/install),并校验MD5,确保文件传输无损。
    md5sum yashandb-23.4.1.102-linux-x86_64.tar.gz
  • 解压
    cd /home/yashan/install # 进入安装目录 tar xvf yashandb-23.4.1.102-linux-x86_64.tar.gz

🚀 三、 安装部署:一键自动化

我们使用官方工具 yasboot 进行自动化部署,极大简化了流程。

  1. 启动安装向导

    ./bin/yasboot init
  2. 交互式配置参考 (根据你的实际环境修改)

    提示项 示例输入/选择 说明
    Installation Mode 2 (multi-host) 选择多机模式
    IP Addresses 192.168.3.110,192.168.3.111 主备节点IP,用逗号分隔
    SSH Username yashan 拥有免密权限的用户
    SSH Password (输入yashan用户的密码)
    Cluster Name yashandb 数据库名称
    Number of Nodes 2 两个节点
    Plugins (直接回车选择all) 安装全部插件
    Install Path /home/yashan/install 软件安装目录
    Data Path /home/yashan/install/yasdb_data 数据文件目录
    Log Path /home/yashan/install/log 日志目录
    Listen IP 1 (manage-ip) 使用管理IP进行监听
    SYS password (设置sys用户密码) 需包含大小写、数字、特殊字符
    Memory Limit 0 不限制内存使用
    Port 1601 数据库监听端口
    Install Now 2 (install-now) 立即安装
    Append to .bashrc y 将环境变量加入配置文件
    Enable Monit y 启用进程监控守护
  3. 生效环境变量

    source ~/.bashrc

✅ 四、 安装后校验:确保一切就绪

部署完成不代表成功,必须进行严格校验。

1. 基础状态检查

  • 查看版本信息
    yasdb -v # 输出示例:YashanDB Server Enterprise Edition Release 23.4.1.102 x86_64
  • 使用yasboot检查集群全景状态
    yasboot cluster status --cluster yashandb -d
    关键确认点:
    • instance_status 均为 open
    • database_status 均为 normal
    • database_role 为一 primarystandby

2. 数据库内部验证

  • 连接主库
    yasql sys/你设置的密码@192.168.3.110:1601
  • 执行关键SQL验证
    -- 查看实例信息 SELECT HOST_NAME, INSTANCE_ROLE, DATABASE_STATUS FROM V$INSTANCE; -- 查看数据库角色和状态 SELECT DATABASE_NAME, PROTECTION_MODE, DATABASE_ROLE, STATUS FROM V$DATABASE; -- 查看备库同步状态 (这是重中之重) -- 确保STATUS为'NORMAL', SYNCHRONIZATION_STATUS为'SYNC' SELECT DEST_NAME, STATUS, SYNCHRONIZATION_STATUS, ERROR FROM V$ARCHIVE_DEST_STATUS;

🐞 五、 常见问题与排坑指南 (Q&A)

❌ Q1: 安装时报错 YAS-00512 failed to init dynamic library OPENSSL

  • 病因:缺少OpenSSL库或库路径未识别。
  • 药方
    sudo yum install -y openssl-devel libssl libcrypto echo 'export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

❌ Q2: 安装时报错 YAS-02137 parameter DB_TIME_ZONE mismatch

  • 病因:主备节点系统时区或时间不同步。
  • 药方:在所有节点执行:
    sudo timedatectl set-timezone Asia/Shanghai sudo ntpdate ntp.aliyun.com # 使用阿里云NTP服务器

❌ Q3: 报错 Libzstd unknowlibzstd.so.1: cannot open shared object file

  • 病因:缺少zstd库或版本不对。
  • 药方
    sudo yum install -y epel-release # 扩展源 sudo yum install -y zstd libzstd

❌ Q4: 设置sys密码时报复杂度错误

  • 病因:密码过于简单。
  • 药方:必须包含大写字母、小写字母、数字、特殊字符四类中至少三类。

❌ Q5: yasboot 检查SSH连接失败

  • 病因:免密登录未配置成功。
  • 药方:回头严格检查[1. 系统与用户配置]中的SSH互信步骤,并确保所有节点yashan用户的密码一致。

🆘 六、 获取帮助:官方AI问答平台

部署或使用过程中遇到任何未涵盖的疑难杂症?除了在社区讨论,您还可以求助官方渠道。

YashanDB 提供了官方的 AI 问答平台,您可以在这里获得7x24小时的智能解答和官方支持。

平台地址: https://chat.yashandb.com/#/chat

使用建议:

  • 清晰描述问题:提供完整的错误日志、操作步骤和环境信息。
  • 善用关键词:例如直接输入错误码 YAS-00512 或错误信息片段,快速获取解决方案。
  • 探索知识库:平台积累了丰富的问答知识,您遇到的问题很可能已有现成答案。

希望本指南和官方平台能助您顺利完成YashanDB的探索之旅!

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

评论