aix7.1安裝12c執行root.sh沒法啓動ohasd服務案例


1、安裝環境
node

操做系統版本:IBM AIX 7100-03-05-1524sql

ORACLE版本:ORACLE DATABASE 12C 12.1.0.2.0-64BIT RAC數據庫

 

2、安裝報錯bash

該環境安裝的爲12c RAC,在節點一執行root.sh腳本時,出現以下信息:oracle

2018/03/29 17:11:43 CLSRSC-330: ADDing clusterware entries to file '/etc/inittab'
2018/03/29 17:13:49 CLSRSC-214: Failed to start the resource 'ohasd'
Failed to start the Clusterware. Last 20 lines of the alert log follow:  --再無信息輸出

ohasd服務沒法啓動,查看$ORACLE_HOME/cfgtoollogs/oui/目錄下的安裝日誌,並無發現任何有用的報錯信息,日誌信息以下:app

2018-03-29 17:11:48: Done updating /etc/inittab.tmp
2018-03-29 17:11:48: Saved /etc/inittab.crs
2018-03-29 17:11:48: Installed new /etc/inittab
2018-03-29 17:11:48: Executing /user/sbin/init g
2018-03-29 17:11:48: Executing cmd: /user/sbin/init g
2018-03-29 17:11:48: Executing cmd: /oracle/app/12.1.0/grid/bin/crsctl start has
2018-03-29 17:13:49: Command output:
> CRS-4124: Oracle High Availability Services startup failed. 
> CRS-4000: Command Start failed, or completed with errors.
>End Command output
2018-03-29 17:13:49: Executing  /etc/ohasd install
2018-03-29 17:13:49: Executing cmd: /etc/ohasd install
2018-03-29 17:13:49: Executing cmd: /oracle/app/12.1.0/grid/bin/clsecho -p has -f clsrsc -m 214
2018-03-29 17:13:49: Command output:
> CLSRSC-214: Failed to start the resource 'ohasd'
>End Command output
2018-03-29 17:13:49: Executing cmd: /oracle/app/12.1.0/grid/bin/clsecho -p has -f clsrsc -m 214
2018-03-29 17:13:49: Command output:
> CLSRSC-214: Failed to start the resource 'ohasd'
>End Command output
2018-03-29 17:13:49: CLSRSC-214: Failed to start the resource 'ohasd'
2018-03-29 17:13:49: ohasd failed to start
2018-03-29 17:13:49: Alert log is /oracle/app/12.1.0/grid/log/node1/alertnode1.log
2018-03-29 17:13:49: Failed to start service 'ohasd'
2018-03-29 17:13:49: Checking the status of ohasd
2018-03-29 17:13:49: Configured CRS Home: /oracle/app/12.1.0/grid
2018-03-29 17:13:49: Eexcuting cmd: /oracle/app/12.1.0/grid/bin/crsctl check has
2018-03-29 17:13:49: Checking the status of ohasd
2018-03-29 17:13:49: Eexcuting cmd: /oracle/app/12.1.0/grid/bin/crsctl check has
2018-03-29 17:13:49: Checking the status of ohasd

再查看告警日誌/oracle/app/12.1.0/grid/log/node1/alertnode1.log無任何的信息輸出,再接着查看/u/app/11.2.0/grid/log/node1/ohasd/ohasd.log等其它日誌,也都無信息輸出。ide

 

嘗試手動拉起ohasd進程,報錯,沒法拉起:工具

[root@node1 bin]# ps -ef|grep d.binui

root 1245784      1  0 21:33:04    - 0:00 /oracle/app/12.1.0/grid/bin/ohasd.bin rebootspa

root 1311392 16394110 0 21:37:31 pts/2 0:00 grep d.bin

[root@node1 bin]# ./oracle/app/12.1.0/grid/bin/crsctl start has

CRS-4124: Oracle High Availability Services startup failed.

CRS-4000: Command Start failed, or completed with errors.

 

嘗試經過腳本roothas.pl取消root.sh腳本所註冊的信息:

[root@node1 bin]# /oracle/app/12.1.0/grid/grid/crs/install/rootcrs.pl -deconfig  -verbose -force

再執行root.sh腳本,依舊沒法經過:

[root@node1 bin]# /oracle/app/12.1.0/grid/root.sh


3、報錯分析

由於各日誌都無有效的報錯信息輸出,能夠說是不報錯,因而猜測以下幾種緣由:

一、 oracle安裝包在下載和解壓縮過程當中存在損壞或丟失文件?

l  經過對比官網文件大小,和解壓縮過程的輸出記錄,該狀況的可能性較小。

212.1.0.2未在該操做系統(IBM AIX on POWER Systems (64-bit) 7.1)上未認證?

l  例如:11.2.0.2未認證RedHat 6.x系統,11.2.0.3未認證RedHat 7.x系統,11g及以前的版本可經過metelink文檔(ID 169706.1)查詢認證的操做系統版本,12c可經過metelink文檔(ID 587357.1 / ID 2226599.1中文)查詢,Oracle Database 12.1.0.2.0 已在 IBM AIX on POWER Systems (64-bit) 7.1 上已經過認證。

3、忽略了安裝檢查中的安裝要求選項,如系統包,內核參數配置?

l  在安裝過程當中,忽略了一些非必要的安裝要求項,因而對系統參數設置和系統包的安裝再覈查了一遍,並未發現問題,並且若是是由於這個緣由,應該是有報錯信息輸出的,因此該狀況的可能性也是極小的。

4、操做系統底層進程或設置阻塞ohasd服務的運行?

l  咱們都知道在oracle數據庫裏,常常出現會話阻塞的狀況,通常都是找出阻塞會話的源頭進行處理,在操做系統層,也會出現進程間通訊互相阻塞的狀況,基於這個,該種狀況的可能性是最大的。

 

4、猜測驗證

既然很大多是OS層進程間通訊互相阻塞致使的,那麼有什麼辦法去驗證呢?

OStruss是很是有用的工具,經過OS系統級別跟蹤一個進程的系統調用或信號產生的狀況,能快速定位並解決問題。

 

經過truss追蹤runcluvfy.sh檢查安裝過程的系統進程調用狀況:

truss –o truss_runcluvfy.out ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup -verbose

2163566:psargs:/bin/sh ./runcluvfy.sh stage -pre crsinst -n node1, node2 -fixup -verbose
Thu Mar 29 21:24:36 2018
2163566: 4588341:0.0000: kwaitpid(0x00000000, 0, 0, 0x00000000, 0x00000000) (sleeping...) 
#如下爲關鍵ohasd進程阻塞等待信息
1245784: 3998277: 0.0003:  _nsleep(0x0FFFFFFFFFFFF540, 0x0FFFFFFFFFFFF610) = 0
1245784: 3998277: 1.0003: kopen("/tmp/.oracle/opohasd", O+WRONLY|O_NONBLOCK) Err#6 ENXIO
1245784: 3998277: 0.0003:  _nsleep(0x0FFFFFFFFFFFF540, 0x0FFFFFFFFFFFF610) = 0
1245784: 3998277: 1.0003: kopen("/tmp/.oracle/opohasd", O+WRONLY|O_NONBLOCK) Err#6 ENXIO
1245784: 3998277: 0.0004:  _nsleep(0x0FFFFFFFFFFFF540, 0x0FFFFFFFFFFFF610) = 0
1245784: 3998277: 1.0004: kopen("/tmp/.oracle/opohasd", O+WRONLY|O_NONBLOCK) Err#6 ENXIO

根據truss追蹤到信息,而後在metelink上查詢相關信息,終於找到以下對應的文檔:OHASD FAILED TO START: A SPECIFIED FILE DOES NOT SUPPORT THE IOCTL SYSTEM CALL (文檔 ID 1537338.1)

image.png


而後查詢節點一和節點二/etc/inittab內容,果真存在該信息:

[root@node1 bin]# grep install /etc/inittab

install_assist:2:wait:/usr/sbin/install_assist </dev/console >/dev/console 2>&1

install_assist是系統的安裝助手,是交互式工具,即假如沒有響應,則會一直等待,那麼在該行後面的命令將不會被執行,也就是說rc2.d(默認運行級別爲2)下的服務將不會被啓動,這也就是沒法啓動ohasd服務的真兇。

 

5、問題解決

/etc/inittab裏面的install_assist的一行註釋掉或清理掉,重啓系統,而後從新執行root.sh,數據庫順利安裝。

[root@node1 bin]# grep install /etc/inittab

#install_assist:2:wait:/usr/sbin/install_assist </dev/console >/dev/console 2>&1

 

6、總結

由於操做系統是緊急安裝上線的(數據庫也要求緊急安裝上線),安裝系統完成以後沒有把 install_assist 禁用,ohasd進程在這進程的後面,因此一直在等待,沒有啓動。該案例可做爲參考,在AIX環境安裝數據庫時,先檢查/etc/inittab文件內容,先將install_assist 禁用。

相關文章
相關標籤/搜索