OBD白屏安装后我该如何设置服务开机自启动

【 使用环境 】 测试环境
【 OBD 】
【 使用版本 】4.3.0
【问题描述】使用OBD部署单机房3副本集群,目前集群状态正常,但是我发现针对observer与obagent等组件似乎没有任何开机自启动配置,官方文档中也没有相关内容说明与介绍。让我比较迷茫该针对哪些服务分别创建何种systemd unitfile。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

非常好的问题:

  1. 针对单机,我们暂时有一份systemd的部署教程,可以参考这里面的systemd文件
    OceanBase使用-Oceanbase搭建 教程-分布式数据库
  2. 但我认为这份文件还不是最佳,可以参考现在master代码分支中的oceanbase.service文件,那个更好,但那个需要等一个发版空间
  3. 你现在是obd部署3副本,针对三副本,我认为可以有两张方式做成,第一个是需要你安装最新的obd版本,用新obd来部署observer,这样会有obshell这个小工具,到时候用obshell进行接管,然后参考2上面提及的service文件,应该就可以拉起集群版
  4. 第二个是你可以直接用1种的systemd方法安装3个,然后将三个的obshell join在一起,成为一个集群
  5. 如果只是临时方案,可以略微等待一下,我们后续马上就会出systemd集群版,届时会是一个更加适配你的方案。
1 个赞

关于observer的开启自启动,可以使用obshell。在observer可执行文件边上有个叫obshell的可执行文件。执行obshell cluster start就可以拉起对应节点的observer。可以参考下这个

[Unit]
Description=oceanbase

[Service]
User=root
Type=forking
KillMode=none
ExecStart=/home/admin/oceanbase/bin/obshell cluster start
ExecStop=/home/admin/oceanbase/bin/obshell cluster start -f
PIDFile=/home/admin/oceanbase/run/observer.pid
TimeoutSec=2000
TimeoutStopSec=300
Restart=on-failure
RestartSec=10
SuccessExitStatus=SIGKILL
SendSIGKILL=no
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
LimitSTACK=infinity

[Install]
WantedBy=multi-user.target

关于agent的启动则是执行ob_agentctl start。也可以参考上面的service自己改下。其他组件的start可以参考obd的实现。执行obd cluster start -v可以看到obd详细的执行过程

1 个赞