Oracle 11g RAC中,发现oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形。即便如此,并不影响数据库的使用,因为 oc4j 是用于WLM 的一个资源, WLM在 11.2.0.2 才可用。GSD则是用于支持dbca,srvctl,oem等的交互工具。本文描述将这两个服务切换到online。
1、环境
[root@linux2 ~]# cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m
[root@linux2 bin]# ./crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.1.0]
2、oc4j与所有的gsd处于offline
[grid@linux2 ~]$ crs_stat -t | grep OFFLINE
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora.linux1.gsd application OFFLINE OFFLINE
ora.linux2.gsd application OFFLINE OFFLINE
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
3、启动oc4j服务
#使用srvctl 来启动oc4j服务
[grid@linux2 ~]$ srvctl start oc4j
OC4J could not be started
PRCR-1079 : Failed to start resource ora.oc4j
CRS-2501: Resource 'ora.oc4j' is disabled #提示该服务处于disable状态
#尝试使用crsctl来启动,依然失败
[grid@linux2 ~]$ crsctl start res ora.oc4j -init
CRS-2613: Could not find resource 'ora.oc4j'.
CRS-4000: Command Start failed, or completed with errors.
#下面先将状态置为enable状态
[grid@linux2 ~]$ srvctl enable oc4j
#再次启动成功
[grid@linux2 ~]$ srvctl start oc4j
[grid@linux2 ~]$ crs_stat -t | grep oc4j
ora.oc4j ora.oc4j.type ONLINE ONLINE linux2
4、启动gsd服务
#查看节点linux1上所有的资源状态,可以看到输出的信息表明GSD也被disable了
[grid@linux2 ~]$ srvctl status nodeapps -n linux1
-n <node_name> option has been deprecated.
VIP linux1-vip is enabled
VIP linux1-vip is running on node: linux1
Network is enabled
Network is running on node: linux1
GSD is disabled
GSD is not running on node: linux1
ONS is enabled
ONS daemon is running on node: linux1
eONS is enabled
eONS daemon is running on node: linux1
#下面查看节点linux2上所有的资源状态,也可以看到输出的信息表明GSD也被disable了
[grid@linux2 ~]$ srvctl status nodeapps -n linux2
-n <node_name> option has been deprecated.
VIP linux2-vip is enabled
VIP linux2-vip is running on node: linux2
Network is enabled
Network is running on node: linux2
GSD is disabled
GSD is not running on node: linux2
ONS is enabled
ONS daemon is running on node: linux2
eONS is enabled
eONS daemon is running on node: linux2
#将所有的服务置于enable状态
[grid@linux2 ~]$ srvctl enable nodeapps
PRKO-2415 : VIP is already enabled on node(s): linux1,linux2
PRKO-2416 : Network resource is already enabled.
PRKO-2417 : ONS is already enabled on node(s): linux1,linux2
PRKO-2418 : eONS is already enabled on node(s): linux1,linux2
#再次查看GSD的状态已经变成enable了
[grid@linux2 ~]$ srvctl status nodeapps
VIP linux1-vip is enabled
VIP linux1-vip is running on node: linux1
VIP linux2-vip is enabled
VIP linux2-vip is running on node: linux2
Network is enabled
Network is running on node: linux1
Network is running on node: linux2
GSD is enabled
GSD is not running on node: linux1
GSD is not running on node: linux2
ONS is enabled
ONS daemon is running on node: linux1
ONS daemon is running on node: linux2
eONS is enabled
eONS daemon is running on node: linux1
eONS daemon is running on node: linux2
[grid@linux2 ~]$ crs_stat -t | grep OFFLINE
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora.linux1.gsd application OFFLINE OFFLINE
ora.linux2.gsd application OFFLINE OFFLINE
#启动GSD服务
[grid@linux2 ~]$ srvctl start nodeapps
PRKO-2421 : Network resource is already started on node(s): linux1,linux2
PRKO-2420 : VIP is already started on node(s): linux1,linux2
PRKO-2420 : VIP is already started on node(s): linux1,linux2
PRKO-2422 : ONS is already started on node(s): linux1,linux2
PRKO-2423 : eONS is already started on node(s): linux1,linux2
#验证GSD服务
[grid@linux2 ~]$ crs_stat -t | grep OFFLINE
[grid@linux2 ~]$ crs_stat -t | grep gsd
ora.gsd ora.gsd.type ONLINE ONLINE linux1
ora.linux1.gsd application ONLINE ONLINE linux1
ora.linux2.gsd application ONLINE ONLINE linux2
#Author : Robinson
5、关于GSD
The Global Services Daemon (GSD) runs on each node with one GSD process per node.
The GSD coordinates with the cluster manager to receive requests from clients such as the DBCA, EM,
and the SRVCTL utility to execute administrative job tasks such as instance startup or shutdown.
The GSD is not an Oracle instance background process and is therefore not started with the Oracle instance.
GSD与rac的管理工具dbca srvctl oem进行交互,用来完成实例的启动关闭等管理任务。
为了保证这些管理工具运行正常必须在所有的节点上先启动 gsd。
一个GSD进程支持在一个节点的多个rac.gsd进程,位于$ORACLE_HOME/bin目录下。
其log文件为$oracle_home /srvm/log/gsdaemon.log。
例如:
假设使用oem工具来启动一个实例,oem把该任务传递给相应的智能引擎,该智能引擎生成一个包含SRVCTL命令的脚本文件,
GSD进程读取该脚本文件并且执行该脚本,最后GSD把执行结果返回给智能引擎,近而智能引擎返回给OEM。
又例如假设使用srvctl工具关闭所有的实例,GSD进程接受来自SRVCTL工具发出的请求,并
在本地节点上执行该请求,然后把执行结果返回给SRVCTL会话。
oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html