灌水唠嗑区
技术分享
文章
GBase 8s 在 UNIX 下关机前,怎么让数据库 "体面" 地停下来
发表于2026-09-16 11:15:42247次浏览1个评论
做运维的朋友应该都遇到过这种情况:服务器要重启了,直接关机,结果数据库没有正常停止,起来之后要做恢复,甚至出现数据文件不一致。GBase 8s 其实给了我们一个办法,就是把停库的操作写进 UNIX 的关闭脚本里,让系统每次关机前都自动、受控地把数据库停下来。
要做这件事,脚本里按下面几步来就可以:
第一步,告诉系统数据库装在哪。 把 GBASEDBTDIR 这个环境变量设置为数据库服务器安装目录的完整路径。系统只有知道安装位置,才能找到数据库的相关程序。
第二步,让系统能找到命令。 把 PATH 环境变量设置为包含 $GBASEDBTDIR/bin 这个目录。这样脚本里调用数据库命令时,系统才知道去哪找。
第三步,告诉数据库用哪份配置。 把 ONCONFIG 环境变量设置为当前实例对应的配置文件。一台机器上如果有多个实例,这一步尤其重要,不同的实例要对应各自的配置。
第四步,执行立即关闭。 运行 onmode -ky 这条命令,让数据库服务器立即关闭并脱机。这是 GBase 8s 常用的受控关闭方式。
几个实际中容易忽略的点:
- 如果机器上装了多个实例,那么每个实例都要重新设置对应的 ONCONFIG,再各自执行一次 onmode -ky,不能只关一个。
- 如果装了多个版本,而且装在不同目录,那 GBASEDBTDIR 也要针对每个版本重新设置,再重复前面的步骤。
- 注意执行顺序:关闭命令应该等所有客户端程序完成事务、退出之后才运行。所以要么在脚本里把停库放在最后,要么先停应用再关数据库,避免关库时还有客户端在写数据。
总的来说,这套做法并不复杂,就是把 "先停库、再关机" 这件事自动化。省得每次手工操作,也减少因为非正常关机带来的麻烦。如果你在管多实例的机器,建议重点检查脚本里有没有把每个实例都处理到。
评论
登录后才可以发表评论
GBase用户28017发表于 1个月前
还要“体面".哈哈。
热门帖子
- 12025-12-01浏览数:183859
- 22023-05-09浏览数:26535
- 42023-09-25浏览数:20220
- 52020-05-11浏览数:19000