您好,登錄后才能下訂單哦!
一、安裝環(huán)境
操作系統(tǒng)版本:IBM AIX 7100-03-05-1524
ORACLE版本:ORACLE DATABASE 12C 12.1.0.2.0-64BIT RAC
二、安裝報錯
該環(huán)境安裝的為12c RAC,在節(jié)點一執(zhí)行root.sh腳本時,出現(xiàn)如下信息:
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/目錄下的安裝日志,并沒有發(fā)現(xiàn)任何有用的報錯信息,日志信息如下:
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等其它日志,也都無信息輸出。
嘗試手動拉起ohasd進程,報錯,無法拉起:
[root@node1 bin]# ps -ef|grep d.bin
root 1245784 1 0 21:33:04 - 0:00 /oracle/app/12.1.0/grid/bin/ohasd.bin reboot
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
再執(zhí)行root.sh腳本,依舊無法通過:
[root@node1 bin]# /oracle/app/12.1.0/grid/root.sh
三、報錯分析
因為各日志都無有效的報錯信息輸出,可以說是不報錯,于是猜想如下幾種原因:
1、 oracle安裝包在下載和解壓縮過程中存在損壞或丟失文件?
l 通過對比官網(wǎng)文件大小,和解壓縮過程的輸出記錄,該情況的可能性較小。
2、12.1.0.2未在該操作系統(tǒng)(IBM AIX on POWER Systems (64-bit) 7.1)上未認證?
l 例如:11.2.0.2未認證RedHat 6.x系統(tǒng),11.2.0.3未認證RedHat 7.x系統(tǒng),11g及之前的版本可通過metelink文檔(ID 169706.1)查詢認證的操作系統(tǒng)版本,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、忽略了安裝檢查中的安裝要求選項,如系統(tǒng)包,內(nèi)核參數(shù)配置?
l 在安裝過程中,忽略了一些非必要的安裝要求項,于是對系統(tǒng)參數(shù)設置和系統(tǒng)包的安裝再核查了一遍,并未發(fā)現(xiàn)問題,而且如果是因為這個原因,應該是有報錯信息輸出的,所以該情況的可能性也是極小的。
4、操作系統(tǒng)底層進程或設置阻塞ohasd服務的運行?
l 我們都知道在oracle數(shù)據(jù)庫里,經(jīng)常出現(xiàn)會話阻塞的情況,一般都是找出阻塞會話的源頭進行處理,在操作系統(tǒng)層,也會出現(xiàn)進程間通信互相阻塞的情況,基于這個,該種情況的可能性是最大的。
四、猜想驗證
既然很大可能是OS層進程間通信互相阻塞導致的,那么有什么辦法去驗證呢?
OS上truss是非常有用的工具,通過OS系統(tǒng)級別跟蹤一個進程的系統(tǒng)調(diào)用或信號產(chǎn)生的情況,能快速定位并解決問題。
通過truss追蹤runcluvfy.sh檢查安裝過程的系統(tǒng)進程調(diào)用情況:
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...) #以下為關(guān)鍵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
根據(jù)truss追蹤到信息,然后在metelink上查詢相關(guān)信息,終于找到如下對應的文檔:OHASD FAILED TO START: A SPECIFIED FILE DOES NOT SUPPORT THE IOCTL SYSTEM CALL (文檔 ID 1537338.1)
然后查詢節(jié)點一和節(jié)點二/etc/inittab內(nèi)容,果然存在該信息:
[root@node1 bin]# grep install /etc/inittab
install_assist:2:wait:/usr/sbin/install_assist </dev/console >/dev/console 2>&1
install_assist是系統(tǒng)的安裝助手,是交互式工具,即假如沒有響應,則會一直等待,那么在該行后面的命令將不會被執(zhí)行,也就是說rc2.d(默認運行級別為2)下的服務將不會被啟動,這也就是無法啟動ohasd服務的真兇。
五、問題解決
將/etc/inittab里面的install_assist的一行注釋掉或清理掉,重啟系統(tǒng),然后重新執(zhí)行root.sh,數(shù)據(jù)庫順利安裝。
[root@node1 bin]# grep install /etc/inittab
#install_assist:2:wait:/usr/sbin/install_assist </dev/console >/dev/console 2>&1
六、總結(jié)
因為操作系統(tǒng)是緊急安裝上線的(數(shù)據(jù)庫也要求緊急安裝上線),安裝系統(tǒng)完成之后沒有把 install_assist 禁用,ohasd進程在這進程的后面,所以一直在等待,沒有啟動。該案例可作為參考,在AIX環(huán)境安裝數(shù)據(jù)庫時,先檢查/etc/inittab文件內(nèi)容,先將install_assist 禁用。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。