YashanDB 开机自启

【问题归类】YashanDB 自启动配置问题

【关键词】自启动、monit、守护进程、systemd

问题描述

在服务器重启后,系统仅自动拉起了 monit 和 yasom 相关进程,但数据库主进程 yasdb 并未自动启动。

原因分析

出现该情况的主要原因是安装数据库时未开启守护程序,导致 yasdb 进程未被纳入监控管理范围。

解决方案

进入安装目录后,手动启动守护程序:

代码语言:javascript代码运行次数:0运行复制
cd /home/yashan/install
./bin/yasboot monit start --cluster yashandb

YashanDB 使用自研的 yasboot 工具监控关键进程,并具备异常自动拉起机制。可以通过如下命令检查监控状态:

代码语言:javascript代码运行次数:0运行复制
cd /home/yashan/install
./bin/yasboot monit summary -c yashandb

输出内容中应包含 yasdb、yasom、yasagent 等关键服务,状态为 OK 表示监控正常。

配置系统层面自启动方法

方法一:修改 rc.local 脚本

编辑文件 /etc/rc.local(或部分系统为 /etc/rc.d/rc.local),添加以下内容:

代码语言:javascript代码运行次数:0运行复制
su yashan -c '/home/yashan1/yashandb/22.2.12.100/bin/monit/monit -c /home/yashan1/yashandb/22.2.12.100/bin/monit/monitrc'

并赋予执行权限:

代码语言:javascript代码运行次数:0运行复制
sudo chmod +x /etc/rc.d/rc.local

方法二:使用 systemd 创建服务

1.创建服务文件,例如 /etc/systemd/system/yashanboot.service

代码语言:javascript代码运行次数:0运行复制
sudo nano /etc/systemd/system/yashanboot.service

2.添加服务内容:

代码语言:javascript代码运行次数:0运行复制
[Unit]
Description=YashanDB Auto Start
After=network.target
[Service]
Type=simple
ExecStart=sh /path/to/your/yasstart.sh
Restart=on-failure
[Install]
WantedBy=default.target
3.启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable yashanboot
sudo systemctl start yashanboot

4.查看服务状态:

代码语言:javascript代码运行次数:0运行复制
sudo systemctl status yashanboot

该服务便会在系统开机时自动启动,确保数据库始终在线运行。

适用版本

适用于 YashanDB 22.2 / 23.2 版本