原文地址:http://space.itpub.net/23062014/viewspace-718336
公司由于断电导致oracle 11g R2 asm(aix 6.1) 数据库不能启动,处理过程如下:
(我是数据库出现了问题,刻意重启数据库、操作系统,但是系统起来后发现crs资源管理命令都不能使用。)
aix1@grid[/oracle11/app/grid/11.2.0]$sqlplus/ as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 12 14:22:13 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service
检测 css 进程:
aix1@grid[/home/grid]$crsctlcheck css
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Check failed, or completed with errors.
aix1@grid[/home/grid]$ps-ef|grep cssd
grid 135192 225738 0 12:08:39 pts/2 0:00 grep cssd
检测has进程:
aix1@grid[/home/grid]$crsctlcheck has
CRS-4639: Could not contact Oracle High Availability Services
说明ohasd进程没有启动,启动ohasd进程:
# ./ohasd start
Starting ohasd:
CRS-4123: Oracle High Availability Services has been started.
(这里我和原文处理过程不大一样,这是故障服务器上面看见的:
[grid@linux ~]$ ps -ef | grep has
grid 3179 1 0 16:54 ? 00:00:01 /u01/app/grid/bin/ohasd.bin reboot
grid 3969 3376 0 18:13 pts/0 00:00:00 grep has
这是我的一台正常服务器上面看见的:
[grid@linux ~]$ ps -ef | grep has
root 3117 1 0 16:54 ? 00:00:00 /bin/sh /etc/init.d/init.ohasd run
grid 3179 1 0 16:54 ? 00:00:01 /u01/app/grid/bin/ohasd.bin reboot
grid 3969 3376 0 18:13 pts/0 00:00:00 grep has
所以我就以root用户运行下面命令后,就可以使用crs资源管理命令启动数据库了:
[root@linux ~]# /bin/sh /etc/init.d/init.ohasd run &
这就是我的处理过程。)
检查:
aix1@grid[/oracle11/app/grid/11.2.0]$crsctl stat resource -t -init
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA2.dg
ONLINE OFFLINE aix1
ora.LISTENER.lsnr
ONLINE OFFLINE aix1
ora.asm
ONLINE OFFLINE aix1
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE OFFLINE
ora.db11.db
1 ONLINE OFFLINE
ora.diskmon
1 ONLINE OFFLINE
启动数据库:
aix1@grid[/oracle11/app/grid/11.2.0]$su- oracle11
oracle11's Password:
aix1@oracle11[/dsg]$sqlplus/ as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 12 14:34:34 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1.3696E+10 bytes
Fixed Size 2219808 bytes
Variable Size 6878658784 bytes
Database Buffers 6777995264 bytes
Redo Buffers 37015552 bytes
Database mounted.
Database opened.
SQL>
ok 数据库启动。
接下就是要探讨为什么ohasd进程为什么在开机的时候没有自动启动?
原因是:安装grid 软件的lv不是自动挂载的。所以服务器在启动的时候是不能自动挂载grid所在lv,也就不能自动启动ohasd了。如果手动挂载lv,那么必须手动启动ohasd服务。
修改lv为自动挂载:
System Storage Management (Physical & Logical Storage)
-->File Systems
--->Add / Change / Show / Delete File Systems
-->Enhanced Journaled File Systems
-->Change / Show Characteristics of an Enhanced Journaled File System
选择要自动挂载点
Mount AUTOMATICALLY at system restart? yes ------由no改为yes即可
数据刚安装完成的时候,has进程是自动启动,用下面的命令设置自动启动;
aix1@grid[/home/grid]$crsctlenable has --启用自动启动
aix1@grid[/home/grid]$crsctldisable has --关闭自动启动
手动启动 has:
crsctl start has
crsctl stop has
查看has 的状态:
crsctl check has
ohasd 资源启动后,才能启动crs资源。
在11gR2中, ohasd包含了crsd、ocssd、evmd.
ohasd负责启动lower stack的集群资源, crsd负责启动上层的集群资源.