【 使用环境 】 测试环境
【 OBD 】
【 使用版本 】4.3.0
【问题描述】使用OBD部署单机房3副本集群,目前集群状态正常,但是我发现针对observer与obagent等组件似乎没有任何开机自启动配置,官方文档中也没有相关内容说明与介绍。让我比较迷茫该针对哪些服务分别创建何种systemd unitfile。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
非常好的问题:
- 针对单机,我们暂时有一份systemd的部署教程,可以参考这里面的systemd文件
OceanBase使用-Oceanbase搭建 教程-分布式数据库 - 但我认为这份文件还不是最佳,可以参考现在master代码分支中的oceanbase.service文件,那个更好,但那个需要等一个发版空间
- 你现在是obd部署3副本,针对三副本,我认为可以有两张方式做成,第一个是需要你安装最新的obd版本,用新obd来部署observer,这样会有obshell这个小工具,到时候用obshell进行接管,然后参考2上面提及的service文件,应该就可以拉起集群版
- 第二个是你可以直接用1种的systemd方法安装3个,然后将三个的obshell join在一起,成为一个集群
- 如果只是临时方案,可以略微等待一下,我们后续马上就会出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 个赞