🔍 一、 关于 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) 上重复以上操作,实现双向免密登录。
- 在主机A (192.168.3.110) 上执行:
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 进行自动化部署,极大简化了流程。
-
启动安装向导
./bin/yasboot init -
交互式配置参考 (根据你的实际环境修改)
提示项 示例输入/选择 说明 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启用进程监控守护 -
生效环境变量
source ~/.bashrc
✅ 四、 安装后校验:确保一切就绪
部署完成不代表成功,必须进行严格校验。
1. 基础状态检查
- 查看版本信息
yasdb -v # 输出示例:YashanDB Server Enterprise Edition Release 23.4.1.102 x86_64 - 使用yasboot检查集群全景状态
关键确认点:yasboot cluster status --cluster yashandb -dinstance_status均为opendatabase_status均为normaldatabase_role为一primary一standby
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 unknow 或 libzstd.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的探索之旅!




