浅谈Oracle RAC --GI的启动
之前的博客里我们提到过OHAS组件是集群启动的根守护进程。GI的启动必须首先启动 OHAS 组件。
但是并不是OHASD在没有前提条件的情况下一个命令就能启动的。GI的启动有两种途径,一种是伴随着OS的启动而自动启动GI,另外一种途径则是用crsctl start crs命令手动启动GI。但是不管哪一种途径启动GI,前提都需要有init.ohasd进程。
1.init.ohasd
init.ohasd是一个GI初始化脚本。在Linux环境中,它的路径是/etc/init.d/init.ohasd。这是一个shell脚本,会随着OS的启动而被拉起。在Linux5的时代,这个脚本是被定义在/etc/inittab中。
[root@node1 ~]#cat /etc/inittab|grep init.ohasd
h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null
而在Linux7里,随着OS的功能变更,init.ohasd则被systemd 以服务的形式启动。
[root@node1 ~]# cat /etc/systemd/system/oracle-ohasd.service
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
#
# Oracle OHASD startup
[Unit]
Description=Oracle High Availability Services
After=network-online.target remote-fs.target autofs.service
Wants=network-online.target remote-fs.target
[Service]
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null
ExecStop=/etc/init.d/init.ohasd stop >/dev/null 2