YashanDB Installation and Upgrade
环境配置
硬件环境检查
检查项
命令示例
核心关注点
操作系统版本
cat /etc/os-release
操作系统版本
CPU 信息
lscpu
Architecture (架构)、 CPU (s)(核心数)、Model name (型号主频)
内存状态
free -h
available (实际可用物理内存)
磁盘空间
df -h
Size/Avail (总容量与可用容量)
磁盘属性
lsblk -o NAME,SIZE,ROTA,FSTYPE
ROTA (1 为机械硬盘,0 为固态硬盘)
网络连通性
ping -c 4 <目标 IP>
packet loss (丢包率)、avg RTT (平均延迟)
网络带宽
服务端: iperf3 -s 客户端: iperf3 -c <服务端 IP>
Bandwidth (吞吐量)、Retr (重传次数)
服务器规划示例
单机单库部署
服务器名称
服务器 IP
角色
host0001
192.168.1.2
主
单机主备部署
服务器名称
服务器 IP
角色
host0001
192.168.1.2
主
host0002
192.168.1.3
备
host0003
192.168.1.4
备
第一部分:安装前准备(使用 root 用户)
1.1 检查依赖项
ldconfig -p | grep -E "libssl.so|liblz4.so|libz.so|libzstd.so" yum install openssl-devel lz4 zlib libzstd -y
1.2 关闭防火墙
# 临时停止防火墙服务 systemctl stop firewalld # 禁止防火墙开机自启 systemctl disable firewalld
1.3 创建安装用户
/usr/sbin/groupadd -g 701 yashan /usr/sbin/groupadd -g 702 YASDBA /usr/sbin/useradd -u 701 -g yashan -G YASDBA -m yashan -s /bin/bash echo 'Asdf123.' |passwd yashan --stdinchmod +w /etc/sudoersecho "yashan ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoerschmod -w /etc/sudoers
1.4 创建安装目录
mkdir -p /data/yashan/{yasdb_home,yasdb_data,log }chown -R yashan:yashan /data/yashan/
1.5 调整系统内核参数
cat > /etc/sysctl.d/yashandb.conf << 'EOF' vm.swappiness = 0 net.ipv4.ip_local_port_range=32768 60999 vm.max_map_count=2000000 net.core.somaxconn=32768 kernel.shmall = 6029312 kernel.shmmni = 4096 kernel.shmmax = 24696061952 fs.aio-max-nr = 6194304 vm.dirty_ratio=20 vm.dirty_background_ratio=3 vm.dirty_writeback_centisecs=100 vm.dirty_expire_centisecs=500 vm.min_free_kbytes=524288 net.core.netdev_max_backlog = 30000 net.core.netdev_budget = 600 vm.oom-kill = 0 vm.overcommit_memory = 2 EOF sysctl -p
1.6 调整用户资源限制值
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 yashan soft core unlimited yashan hard core unlimited yashan soft memlock -1 yashan hard memlock -1 EOF
1.7 调整时区
timedatectl set-timezone "Asia/Shanghai"
1.8 内核启动参数配置
grubby --update-kernel=ALL --args="transparent_hugepage=never elevator=deadline LANG=en_US.UTF-8" reboot
第二部分:安装部署(使用安装用户)
完成以上系统层面的准备工作后,服务器环境已满足 YashanDB 的安装要求。接下来使用安装用户(yashan)登录服务器,执行数据库软件的解压、配置和部署,最终目标是获得一个状态正常、可连接的数据库实例。
2.1 下载并解压软件包
以 yashan 用户登录安装服务器:
su - yashan mkdir -p /home/yashan/installsudo tar -zxf /soft/yashandb-23.4.6.100-linux-x86_64.tar.gz -C /home/yashan/install
2.2 生成配置文件
2.2.1 生成默认配置文件
./bin/yasboot package se gen --cluster yashandb --recommend-param \ -u yashan -p Asdf123. --ip 192.168.3.191 --port 22 \ --install-path /data/yashan/yasdb_home \ --data-path /data/yashan/yasdb_data \ --log-path /data/yashan/log \ --begin-port 1688 \ --node 1
2.2.2 修改配置文件(redo 和字符集)
生成的数据库配置文件 yashandb.toml 中,常需要调整的参数包括:
REDO_FILE_SIZE :
CHARACTER_SET :建议与源端数据库字符集保持一致,以下为常见对应关系:
Oracle ZHS16GBK→ Yashan GB18030
Oracle AL32UTF8→ Yashan UTF8
修改 redo 大小为 4G:
找到 [group.config] 区域,修改以下参数:
[group.config] REDO_FILE_SIZE = "4G"
[group.config] CHARACTER_SET = "GBK"
可选字符集:UTF8(默认)、GBK、GB18030、ASCII、ISO88591
2.3 执行安装
/home/yashan/install/bin/yasboot package install -t hosts.toml
2.4 部署数据库
/home/yashan/install/bin/yasboot cluster deploy -t yashandb.toml -p yasdb_123
返回以下信息表示成功:
task completed, status: SUCCESS
2.5 配置环境变量
cd /data/yashan/yasdb_home/{version_number}/confcat yashandb.bashrc >> ~/.bashrcsource ~/.bashrc
2.6 检查安装结果
2.6.1 查看数据库状态
yasboot cluster status -c yashandb -d
预期输出:
| hostid | node_type | nodeid | pid | instance_status | database_status | database_role | listen_address | data_path | | host0001 | db | 1-1:1 | 25283 | open | normal | primary | 192.168.1.2:1688 | /data/yashan/yasdb_data/db-1-1 |
2.6.2 连接数据库验证
yasql sys/yasdb_123 SQL> SELECT STATUS FROM V$INSTANCE ;
第三部分:数据库基本操作
3.1 实例启动与停止
场景一:当因服务器因维护、故障或其他特殊原因需要关机时,应提前按以下顺序关闭数据库,避免数据损坏:
停止数据库
yasboot cluster stop -c yashandb yasboot process yasagent stop -c yashandb yasboot process yasom stop -c yashandb ps -ef|grep yas
服务器重启后,按以下顺序恢复数据库服务。
# 启动yasom和yasagent进程 yasboot process yasom start -c yashandb yasboot process yasagent start -c yashandb # 待yasom和yasagent进程启动后,才能启动数据库 yasboot cluster start -c yashandb # 检查数据库集群已开启 yasboot cluster status -c yashandb -d
** 场景二:** 在某些情况下可能需要重启数据库,例如进行数据迁移时,若需调整数据库参数(如 WORK_AREA_POOL_SIZE),通常需要重启数据库以使参数生效。
yasboot cluster restart -c yashandb yasboot cluster status -c yashandb -d
3.2 表空间管理
SELECT TABLESPACE_NAME,ALLOCATION_TYPE,USER_BYTES,TOTAL_BYTES,(1 - USER_BYTES/ TOTAL_BYTES)* 100 useage from dba_tablespaces; CREATE TABLESPACE mytbs DATAFILE 'mytbs01' SIZE 1 G AUTOEXTEND ON MAXSIZE UNLIMITED;ALTER TABLESPACE mytbs ADD DATAFILE 'mytbs02' SIZE 100 G AUTOEXTEND ON MAXSIZE UNLIMITED;
3.3 用户管理
CREATE USER testuser IDENTIFIED BY "P@ss1234" DEFAULT TABLESPACE mytbs;ALTER USER testuser IDENTIFIED BY "New_P@ss1234";GRANT DBA TO testuser;DROP USER testuser CASCADE;
3.4 Redo 日志管理
select * from v$logfile; ALTER DATABASE ADD LOGFILE ('redo5' SIZE 8 G, 'redo6' SIZE 8 G, 'redo7' SIZE 8 G); ALTER SYSTEM SWITCH LOGFILE;如果原文件不是INACTIVE状态,继续切换 ALTER SYSTEM SWITCH LOGFILE;ALTER SYSTEM CHECKPOINT;ALTER DATABASE DROP LOGFILE 'redo1' ;ALTER DATABASE DROP LOGFILE 'redo2' ;ALTER DATABASE DROP LOGFILE 'redo3' ;ALTER DATABASE DROP LOGFILE 'redo4' ;SELECT id, name, block_count* block_size/ 1024 / 1024 AS size_mb, status FROM v$logfile;
YashanDB 离线升级实操手册
一、升级前准备
1.1 环境检查
确认数据库实例状态为 open。
yasboot cluster status -c yashandb -d
【主备架构】 需确认所有节点(主库与备库)的实例状态均为 open。
1.2 检查 hosts.toml 文件
hosts.toml 文件的默认路径为 /home/yashan/install/hosts.toml。
检查 yasom 信息
yasboot process yasom status -c yashandb
确认 hosts.toml 中 OM 的 LISTEN_ADDR 与主 yasom 的 local_yasom_addr 一致。
检查服务器信息
如果升级前执行过新增服务器的扩容操作,需确保新增服务器的信息已追加到 hosts.toml 文件中。
1.3 终止守护进程
yasboot monit stop -c yashandb
1.4 确认备份路径容量
离线升级时会自动进行数据库备份,备份范围包括当前数据库的控制文件、redo 文件、SYSTEM 表空间文件、SYSAUX 表空间文件以及 UNDO 表空间文件。
需要确认确认默认备份路径所在父目录 ${新版本的YASDB_HOME} 具备足够的容量。
备份所需总容量 = 备份刚需容量 + 额外预留容量(默认 5G,可通过 --backup-reserved-space 参数自定义)。
备份刚需容量的估算方式如下。
方式一:通过 SQL 查询各文件大小并汇总。
SELECT (SELECT SUM (BYTES) FROM V$CONTROLFILE) + (SELECT SUM (USED_BLOCKS * BLOCK_SIZE) FROM V$LOGFILE) + (SELECT SUM (BYTES) FROM DBA_DATA_FILES WHERE TABLESPACE_NAME IN ('SYSTEM' , 'SYSAUX' , 'UNDO' )) AS total_capacity FROM DUAL;
方式二:根据各服务器中 $YASDB_DATA/dbfiles 路径的总容量估算。
【主备架构】 需分别检查每台服务器的备份路径容量是否满足要求。
1.5 准备安装包
在临时目录中解压新版本安装包。建议以版本号或操作日期命名目录,便于管理与区分。
mkdir -p /home/yashan/tmp_upgrade20260407 cd /home/yashan/tmp_upgrade20260407 tar zxf yashandb-{新版本号}-linux-x86_64.tar.gz
1.7 数据备份
执行全量 checkpoint 后进行全量备份。
ALTER SYSTEM CHECKPOINT;BACKUP DATABASE FULL FORMAT '/home/yashan/full_backup' TAG 'full' ;
【主备架构】 备份前需确保主库 redo 已全部同步至备库。通过以下语句确认 transport_lag 和 apply_lag 均为 0:
SELECT connection, status, peer_addr, transport_lag, apply_lagFROM V$REPLICATION_STATUS;
确认同步完成后,在所有主备库上分别执行 ALTER SYSTEM CHECKPOINT;,以加快后续升级速度。
1.8 关闭 yasom 仲裁选主
【一主一备架构专属步骤】 若为一主一备架构,且已开启仲裁选主,需在升级前关闭,避免升级过程中触发非预期的主备切换。单机环境可跳过此步骤。
yasboot election enable off -c yashandb
二、执行升级
步骤 1:升级 yasom 与 yasagent
# 查看当前版本 ps -ef | grep -E "yasom|yasagent" | grep -v grep # 执行升级 cd /home/yashan/tmp_upgrade20260407 ./bin/yasboot package upgrade -t /home/yashan/install/hosts.toml # 验证升级后版本 ps -ef | grep -E "yasom|yasagent" | grep -v grep
步骤 2:升级数据库
# 查看升级前数据库版本 yasql / as sysdba SELECT version FROM V$INSTANCE; # 执行数据库升级 cd /home/yashan/tmp_upgrade20260407 ./bin/yasboot cluster upgrade -c yashandb # 验证集群状态 ./bin/yasboot cluster status -c yashandb -d # 查看升级后数据库版本 yasql / as sysdba SELECT version FROM V$INSTANCE;
三、升级后操作
若为顺利执行升级操作而临时调整过某些配置,在升级完成后应按需还原。
例如,开启仲裁选主(一主一备场景)、打开守护进程。
【一主一备架构】 若在 1.6 中关闭了仲裁选主,升级完成后需重新开启:
yasboot election enable on -c yashandb
YashanDB 卸载
卸载数据库
yasboot cluster clean --cluster yashandb --purge
卸载 yasmon 和 yasagent
yasboot package uninstall --cluster yashandb
清理环境变量