GBase 8s
运维管理
文章

【经验分享】如何设置GBase 8s开机自启动

发表于2026-05-18 10:53:26151次浏览1个评论

GBase 8s是南大通用自主研发、支持共享存储集群、两地三中心部署的、成熟稳定的百T金融级事务型国产数据库。GBase 8s适用于OLTP应用场景,包括金融、电信、政企、安全等行业的关键核心业务系统,在当前安全形势日益严峻的大背景下,GBase 8s已成为去IOE的主流国产数据库产品,能够在90%以上的场景中替代Oracle。

GBase 8s服务所有管理操作是由gbasedbt管理账户完成,如果服务器关机重新启动后,管理员要切换到gbasedbt账户去启动GBase 8s服务,默认是不会随服务器启动而自动启动的,往往负责运维的人员只负责启动服务器,不清楚如何启动8s数据库,会导致应用访问不了数据库导致应用报错。那么如何设置一开机就能自动启动8s数据库呢?经过一番查找和询问技术人员,用非常简单的命令就可以实现了,简单又方便,来看一看吧。

新增开机任务

使用 gbasedbt账户执行crontab -e命令,新增一条定时任务,自动运行启动8s命令。

请确保你是在 gbasedbt 用户 下执行的,而不是 root

  1. ​切换用户:​
    su - gbasedbt
    
  2. ​编辑任务:​
    crontab -e
    
  3. 输入内容(推荐带延时的版本):
    @reboot sleep 30; source /home/gbasedbt/profile.gbaseserver && oninit -vy
    
  4. 保存退出​(在 vi 中按 Esc,输入 :wq 回车)。

(解释:sleep 30 会让任务暂停 30 秒,给系统足够的时间加载网络和存储;其中 profile.gbaseserver为8s的环境变量文件名,此文件名目录可根据8s实际环境情况进行更改。)

命令解析:

  • @reboot​:这是 crontab 的特殊时间标记,表示“系统启动后立即执行一次”。
  • source ...​:这一步非常关键。因为 cron 任务执行时没有任何环境变量,直接执行 oninit 通常会报错(找不到命令或环境变量缺失)。通过先加载 profile.gbaseserver,补齐了数据库所需的环境变量。
  • &&:表示只有前面的 source 命令成功执行后,才执行后面的 oninit
  • sleep 30 会让任务延迟 30 秒执行,原因是@reboot` 执行得非常早,如果数据库依赖网络服务(如网卡启动、挂载 NFS 存储等)未准备就绪,@reboot 就开始启动数据库,可能会导致启动失败。为了确保万无一失,让它在开机后 等待 30 秒 再启动,确保GBase 8s数据库系统环境完全就绪。

测试开机重启

先使用gbasedbt账户关闭8s服务,然后将服务器reboot一下,重新启动后查看8s服务是否正常启动

关闭8s数据库服务

# su - gbasedbt
$ onstat -
$ onmode -ky

操作截图: image.png

测试开机重启

切换到root账户,关机重启服务器 操作截图: image.png

重新连接服务器,切换到gbasedbt账户下,查看8s服务状态是在线状态,说明开机自启动了。 image.png

真的好简单,赶快设置起来吧~

评论

登录后才可以发表评论
用户头像
柒柒天晴发表于 3个月前
学会了