如果 onmode 实用程序无法关闭数据库服务器或您无法重启服务器,可使用 onclean 实用程序强制执行立即关闭数据库服务器。onclean 实用程序试图去清除共享内存和信号量并且停止数据库服务器的虚拟进程。
在 UNIX™ 和 Linux™ 上,必须以用户 root 或 gbasedbt 的身份执行 onclean 命令。在 Windows™ 上,必须以 GBasedbt-Admin 组成员的身份执行该命令。
元素 | 用途 |
---|---|
-k | 通过停止数据库服务器虚拟进程和尝试清除剩余信号量、共享内存片段(尽管它们仍在运行中)来关闭联机的服务器 |
-V | 显示简短的版本信息 |
-version | 显示所有的版本信息 |
-y | 不提示输入确认 |
只能在 onmode 实用程序无法关闭数据库服务器或您无法重启服务器的情况下,使用 onclean 实用程序去停止数据库服务器。数据库服务器可能由于不可控的方法关闭并且无法恢复,或者它被挂载。如果数据库服务器无法重启,它以前的实例却仍会连接共享内存片段。可以检查消息日志来查看数据库服务器是否正常关闭。onclean 实用程序停止所有的 oninit 进程并尝试移除所有的共享内存片段和在 $GBASEDBTDIR/etc/.conf.$GBASEDBTSERVER 文件中记录的信号量。
GBASEDBTDIR 、GBASEDBTSERVER 、GBASEDBTSQLHOSTS 和 ONCONFIG 环境变量必须设置可用的值以运行该实用程序。
onclean 命令在下例情况下使用:
使用 onclean 实用程序只能关闭本地数据库服务器;不能关闭远程数据库服务器。onclean 实用程序无法用于关闭一个整个高可用集群或远程数据库服务器。
onclean 实用程序在任何情况下可能不能清除数据库服务器使用的共享内存片段。onclean 实用程序会尝试只终止 oninit 进程。onclean 实用程序在以下情况下不会成功:
如果必要,您可以使用 onshutdown 脚本自动关闭数据库服务器,它会调用 onclean -ky 命令。