首页 > 数据库 >GBase 8s数据库随系统启动、自重启配置

GBase 8s数据库随系统启动、自重启配置

时间:2024-08-22 16:22:41浏览次数:14  
标签:opt systemd 系统启动 gbasedbt gbase systemctl usr 8s GBase

近期的客户想实现数据库自重启功能(即故障后自动重启),该功能需要在自动启动的基础上进行改进。
关于systemd方式实现自启动的方法可参考之前的文档:https://gbasedbt.com/index.php/archives/161/
以下仍是通过systemd方式实现GBase 8s数据库的自启动、自重启与关闭。
注意:自启动、自重启仅适用于单机,而不要用于集群环境
适用于操作系统: RHEL7/CENTOS7, 以及基于RHEL7内核的系统。

systemd需要的两个配置文件目录为

1,service 文件所在位置 /usr/lib/systemd/system/
2,service 的环境配置文件位置 /etc/sysconfig/

1, 在/usr/lib/systemd/system/目录下创建 gbasedbt.service文件

主要的参数:
Type配置为forking,以便可以调用Restart
如果不需要重启,Type配置为oneshot,且把Restart/RestartSec注释掉
特别注意必须配置EnvironmentFile环境变量文件

# /usr/lib/systemd/system/gbasedbt.service
# 注:以下中文注释用于理解
[Unit]
# Wants:需要的服务
# After:在指定的服务正常启动后才会启动
Description=GBase 8s Database Server
Documentation=file:/opt/gbase/release/en_us/0333
Wants=network-online.target
After=network.target network-online.target
 
[Service]
# Type:oneshot只有在该服务的主服务进程退出之后,systemd 才会认为该服务启动完成,才会开始启动后继单元。
#       forking守护进程(服务)在启动时会转入后台运行
# User:使用启动的用户
# Group:使用启动的用户组
# EnvironmentFile:使用的环境变量文件,以Key=Value的方式存储,需要注意的是 '$' 变量不扩展
# ExecStart:启动命令,需要绝对路径
# ExecStop:关闭命令,需要绝对路径
# Restart:always 只要不是通过systemctl stop来停止服务,任何情况下都必须要重启服务
# RestartSec:systemctl检测到异常,重启等待时长,单位是秒
#Type=oneshot
Type=forking
User=gbasedbt
Group=gbasedbt
RemainAfterExit=yes
EnvironmentFile=-/etc/sysconfig/gbasedbt_env
ExecStart=/opt/gbase/bin/oninit
ExecStop=/opt/gbase/bin/onmode -ky
Restart=always
RestartSec=60
 
[Install]
WantedBy=multi-user.target

说明:
[Unit] 区块:启动顺序与依赖关系
[Service] 区块:启动行为
[Install] 区块:定义如何安装这个配置文件,即怎么做到开机启动。

2, 在/etc/sysconfig目录下创建环境变量文件 gbasedbt_env

环境变量文件以Key=Value的方式存储,需要注意的是 ‘$’ 变量不扩展,需要先扩展为实际值
数据库将使用该文件中的环境启动数据库

# /etc/sysconfig/gbasedbt_env
# 以Key=Value的方式存储,需要注意的是 '$' 变量不扩展
GBASEDBTDIR=/opt/gbase
GBASEDBTSERVER=gbase01
ONCONFIG=onconfig.gbase01
# PATH应该将常用的PATH目录加入
PATH=/opt/gbase/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
# 以下环境变量按实际扩展  
# LD_LIBRARY_PATH加入常用的目录
LD_LIBRARY_PATH=/opt/gbase/lib:/opt/gbase/lib/cli:/opt/gbase/lib/esql:/opt/gbase/lib/incl:/usr/lib:/usr/lib64
DB_LOCALE=zh_CN.utf8
CLIENT_LOCALE=zh_CN.utf8
SERVER_LOCALE=zh_CN.utf8
GL_USEGLU=1
DBDATE=Y4MD-

注意:以上环境变量需要依据实际使用情况添加

3, 管理gbasedbt服务

systemd加入gbasedbt服务,并设置gbasedbtd服务随系统启动

# systemctl enable gbasedbt

启动gbasedbt服务(数据库应未启动)

# systemctl start gbasedbt

检查gbasedbtd状态

# systemctl status gbasedbt

关闭gbasedbt服务

# systemctl stop gbasedbt

关闭gbasedbt服务的自启动

# systemctl disable gbasedbt

如果数据库使用onmode -ky正常关闭,需要使用systemctl restart方式重启数据库

# systemctl restart gbasedbt

如果数据库不是使用systemctl stop或者正常关闭,如使用kill -9或者onclean -ky或者异常关闭时,将在RestartSec指定的时间后自动启动数据库。如下:

[root@192 ~]# systemctl status gbasedbt
● gbasedbt.service - GBase 8s Database Server
   Loaded: loaded (/usr/lib/systemd/system/gbasedbt.service; enabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: signal) since Wed 2024-07-31 16:56:58 CST; 47s ago
     Docs: file:/opt/gbase/release/en_us/0333
  Process: 2707 ExecStart=/opt/gbase/bin/oninit (code=exited, status=0/SUCCESS)
 Main PID: 2709 (code=killed, signal=KILL)

7月 31 16:56:58 192.168.80.151 systemd[1]: gbasedbt.service: Failed with result 'signal'.

标签:opt,systemd,系统启动,gbasedbt,gbase,systemctl,usr,8s,GBase
From: https://blog.csdn.net/liaosnet/article/details/141431484

相关文章

  • 定期备份kingbase数据库
    原文链接:https://blog.csdn.net/weixin_47387140/article/details/1285845371.书写备份数据脚本/bin/bash#date:0106#managed_by:mzhbakdir=/var/lib/kingbaseif[!-d$bakdir];thenmkdir-p$bakdirfiprocessing(){clearfor((i=0;$i<=100;i+=5))doecho-e"\e[6;9H......
  • kubeadm升级k8s之1.23.17->1.24.17
    查看当前版本[root@k8s-master31~]#kubectlgetnodes-owideNAMESTATUSROLESAGEVERSIONINTERNAL-IPEXTERNAL-IPOS-IMAGEKERNEL-VERSIONCONTAINER-RUNTIMEk8s-master31Ready......
  • k8s限制外部管理访问
    #允许控制节点iptables-AINPUT-smaster-node-ptcp--dport6443-jACCEPT#允许数据节点iptables-AINPUT-sdata-node-ptcp--dport6443-jACCEPT#允许k8s内部服务网段iptables-AINPUT-s10.40.0.0/16-ptcp--dport6443-jACCEPT#允许k8s内部POD网段iptab......
  • centos 7 部署k8s
    一、环境准备集群角色主机名操作系统IP地址内核Masterk8s-masterCentOSLinuxrelease7.9.2009(Core)172.16.99.713.10.0-957.el7.x86_64Nodek8s-node01CentOSLinuxrelease7.9.2009(Core)172.16.99.723.10.0-957.el7.x86_64Nodek8s-node02Cent......
  • Android系统启动流程概述
    Android手机先开机,init/Zygote/SystemServer,然后启动Framework,然后启动Launcher;【安装APP(PMS),】然后启动APP(AMS)。所有的Android应用进程都是有Zygote进程fork出来的.>Android手机开机流程,init/Zygote/SystemServer##Android手机开机流程: 1.启动电源以及系统启动,当电源按......
  • KingbaseES V8R6备份恢复案例之---sys_backup.conf配置异常初始化失败
    案例说明:KingbaseESV8R6数据库执行sys_backup.shinit初始化时,出现“ERROR:cannotconnecttheprimarynode...."错误,初始化失败。适用版本:KingbaseESV8R6一、问题现象如下所示,执行sys_backup.shinit时,出现以下错误”ERROR:cannotconnecttheprimarynode..."。[......
  • (转)高效率运维K8s 这些常用命令你得会
    原文:https://blog.csdn.net/qq_42568611/article/details/131219853高效率运维K8s这些常用命令你得会❝日常K8s运维工作中难免会连接K8s集群哐哐哐的输出命令来进行Kubernetes应用运维工作。今天就总结一些常用的kubectl命令及应用调试技巧。以便于日常查阅或提高效率!❞基本操......
  • k8s中apply资源文件和replace资源文件的区别
    v1.29.2版本的k8s中资源对象api-resource一共有75种,比如pod,serverice等等创建资源对象的时候,一般是写资源对象文件,里面主要字段是kind\apiVersion\metadata\spec\status在我们使用资源对象文件创建资源实例的时候经常用到kubectlapply-f resourcefilename.yamlkube......
  • 动手练习 K8s
    在上篇文章中,简单介绍了K8s的原理。单单通过文字,不足以帮助我们学习K8s。所以本文通过实际的例子,由浅到深带大家在本地动手走一遍K8s的操作流程,旨在加深对K8s的理解。我们将从最基础的container容器的定义出发,动手去跑pod、deployment、service、ingress、namesp......
  • 在K8S中,什么是kubernetes?
    Kubernetes是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。Kubernetes(简称K8s)是一个功能强大的工具,它的设计初衷是提高在多个主机上运行的容器化应用的部署、伸缩、更新和维护过程的效率和简易性[1]。Kubernetes诞生于Google内部多年的容器管理技术积累,并......