ubuntu设置oceanbase开机自动运行服务

先查找perf路径全盘搜索(一般就在文件解压后的路径下面下一级下一级找)
0
0
标准路径下没有,那我们就执行全盘搜索,看看 OBD 到底把 observer 藏在了哪里。请在终端执行以下命令(需要一点时间):bash
编辑
sudo find / -name observer -type f -executable 2>/dev/null

这次的日志终于把“真凶”揪出来了!你看这行关键的报错:

observer: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
这说明你的系统里缺少了 OceanBase 运行所必需的一个基础依赖库 libaio。之前我们绕过了 OBD 直接去拉 observer,结果反而暴露出了这个底层的环境缺失问题。只要把这个库装上,之前的阻碍就扫清了一大半!
🛠️ 第一步:安装缺失的系统依赖库
请在终端执行以下命令,一键补全 OceanBase 所需的基础依赖(包括刚刚报错的 libaio 以及其他常用的 numactl 等):bash
 
这一步可以不执行
sudo yum install -y libaio numactl-libs ncurses-libs openssl-libs zlib readline

注:如果你使用的是 Ubuntu/Debian 系统,请将 yum install 替换为 apt install,包名对应为 libaio1 libnuma1 等。

⚙️ 第二步:回归最稳妥的 OBD 启动方案

依赖库装好后,强烈建议放弃直接拉起 observer 的做法(因为容易引发配置文件和权限冲突),重新回到用 OBD 管理集群的正轨上。
请再次编辑你的服务文件,使用最精简、兼容性最好的配置:bash
编辑
sudo nano /etc/systemd/system/oceanbase-perf.service
将内容完全替换为以下配置(这里使用了 su -l root 来完美模拟你平时手动敲命令时的环境):ini
[Unit]
Description=OceanBase Cluster Perf Service
After=network.target

[Service]
Type=forking
User=root
Group=root
# 👇 核心改动:使用 su -l 模拟 root 完整登录环境,自动加载 PATH 和 OBD 配置
ExecStart=/bin/su -l root -c "/home/haihong/下载/oceanbase-all-in-one-4.5.0_20260203.el8.x86_64/oceanbase-all-in-one/obd/usr/bin/obd cluster start perf"
ExecStop=/bin/su -l root -c "/home/haihong/下载/oceanbase-all-in-one-4.5.0_20260203.el8.x86_64/oceanbase-all-in-one/obd/usr/bin/obd cluster stop perf"
Restart=on-failure
TimeoutSec=300

[Install]
WantedBy=multi-user.target 
# 👇 核心改动:使用 su -l 模拟 root 完整登录环境,自动加载 PATH 和 OBD 配置--就是文件解压路径下图
0
保存退出后,依次执行以下命令重载并重启服务:bash
这步执行报错可以不用管直接设置开机自动运行服务
sudo systemctl daemon-reload sudo systemctl restart oceanbase-perf.service sudo systemctl status oceanbase-perf.service

设置服务开机运行

sudo systemctl enable oceanbase-perf.service
执行后,终端通常会提示创建了一个符号链接(例如 Created symlink ...),这就代表设置成功了。以后每次服务器重启,OceanBase 集群都会自动被拉起来。

💡 补充建议:验证与日常维护

为了确保万无一失,你可以顺便了解一下这几个常用的维护命令:
  1. 验证是否生效:执行 sudo systemctl is-enabled oceanbase-perf.service。如果返回 enabled,就说明开机自启已经稳稳地配置好了。
  2. 如果需要取消开机自启:随时可以执行 sudo systemctl disable oceanbase-perf.service 来解除绑定。
  3. 日常手动控制服务:
    手动启动:sudo systemctl start oceanbase-perf.service
    手动停止:sudo systemctl stop oceanbase-perf.service
    查看实时状态:sudo systemctl status oceanbase-perf.service
posted @ 2026-05-23 08:53  海宏软件  阅读(28)  评论(0)    收藏  举报