下午同事發(fā)來微信說在裝Oracle 11.2.0.4的RAC時(shí),GI已經(jīng)正常安裝了。但在安裝數(shù)據(jù)庫軟件的時(shí)候,圖形界面不顯示兩臺(tái)主機(jī)的主機(jī)名,沒辦法繼續(xù)往下安裝。由于不在一起,于是百度相應(yīng)的文章來看,但是相關(guān)的文章也不多。找到一篇https://blog.csdn.net/MFW333/article/details/71122990,說是inventory.xml文件中缺少了CRS = TRUE。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、科爾沁左翼網(wǎng)站維護(hù)、網(wǎng)站推廣。
于是轉(zhuǎn)給同事去檢查,反饋的結(jié)果是配置文件中是有這一項(xiàng)配置的:
那問題出在哪里了呢,看來不是百度一下就可以解決的。要來服務(wù)器信息,自己登錄上去看。其實(shí)一開始我覺得是/etc/hosts或hostname配置有錯(cuò)誤導(dǎo)致的,但是登錄上去之后發(fā)現(xiàn)配置都沒有問題。于是自己執(zhí)行./runInstaller實(shí)際看看,到了Grid Installation Options這一步時(shí)確是看不到主機(jī)的node name信息。由于匆忙沒有截圖,同學(xué)們可以自己腦補(bǔ)一下就可以了。
心想沒有node name信息,看看日志有沒有什么報(bào)錯(cuò)呢。但是很遺憾,沒有日志。沒有日志信息,就看不到報(bào)錯(cuò);沒有報(bào)錯(cuò),問題就很難排查。那就想,我直接點(diǎn)擊下一步看看會(huì)是什么效果呢,結(jié)果出來了我想要的報(bào)錯(cuò)信息:[INS-08109] Unexpected error occurred while validating inputs at state 'nodeSelectionPage'.
details里居然寫沒有多余的信息,讓聯(lián)系support或查詢手冊。support是沒有的,那先去MOS上查查相關(guān)文檔吧,還真有跟這個(gè)一模一樣的報(bào)錯(cuò)信息的文檔。INS-08109 Unexpected error occurred While Validating Inputs At State 'nodeSelectionPage' (文檔 ID 948382.1)。文檔里寫了7種原因會(huì)導(dǎo)致的這種問題,并給出了解決辦法
OUI calls $GRID_HOME/srvm/admin/getcrshome to get Grid Infrastructure home, if environment variable ORA_CRS_HOME is set to anything but GRID home, the error will be reported. In 11gR2, it's not supported to setup environment variable ORA_CRS_HOME.
The solution is to unset the environment variable and restart OUI.
unset ORA_CRS_HOME
OUI calls "crsctl query crs activersion" to get active version of clusterware. If it fails to read olr.loc (if grid and database are owned differently), the issue can happen. From strace/truss:
open("/etc/oracle/olr.loc", O_RDONLY) = -1 EACCES (Permission denied)
The solution is to ensure that 'oracle' user has read permission on olr.loc in /etc/oracle or /var/opt/oracle.
This problem will occur while installing 11.2.0.4 RAC RDBMS software in a 12c Grid Infrastructure environment.
The solution is to set ORACLE_HOME environment variable pointing to GRID_HOME before installing RDBMS software.
export ORACLE_HOME=
This problem will occur if database user does not exist on all nodes in the cluster. For example, 4-node cluster, trying to install a new RAC DB home on two nodes only so the new DB user is created on two nodes. The solution is to have the same DB user on all nodes.
If NLS_LANG is set to "Japanese_Japan.JA16SJIS" etc, the issue will happen as output of "crsctl query crs activeversion" garbles.
The solution is to unset NLS_LANG.
6. ORA_NLS10 environment variable is set
environment variable is not necessary for Oracle 11g/12c
7. Hostnames in /etc/hosts are incorrect
This error is generated when trying to add new nodes into the cluster if the entries for the hostnames
in /etc/hosts is incorrect.
看來看去,好像只有第二條比較符合我們當(dāng)前遇到的問題,于是去機(jī)器看olr.loc的權(quán)限情況
又執(zhí)行了命令crsctl query crs activeversion,也是可以執(zhí)行成功的。(這里其實(shí)mos的文章里寫錯(cuò)了,activeversion寫成了activersion。)
再執(zhí)行olsnode -n,也是可以識(shí)別到兩個(gè)節(jié)點(diǎn)
集群也是正常狀態(tài)
看起來也是有讀權(quán)限的。那問題怎么解決呢?又看了幾篇MOS上的文檔,又百度了一些貼子,感覺一般別人遇到的問題就已經(jīng)在上面7條里已經(jīng)列出來了。但我遇到的問題卻沒有列出來。難道又是BUG?想想應(yīng)該不可能,這么點(diǎn)小事就出BUG,那Oracle也不可能一下強(qiáng)大到現(xiàn)在。那問題到底出現(xiàn)在哪里呢?
其實(shí)這時(shí)我陷入到了思維定式里了,把一些我認(rèn)為不可能出問題的地方忽略掉了,恰恰這次出問題的,正是這個(gè)地方。
其實(shí)還是權(quán)限問題,只不過不只是olr.loc的權(quán)限問題,而是整個(gè)oracle用戶的權(quán)限問題??戳撕芏辔恼露颊f是權(quán)限問題,我就想,那我看看oracle用戶配置的uid和所屬組吧,當(dāng)我執(zhí)行完id oracle命令看到結(jié)果時(shí),瞬間明白了問題的根本原因,就是權(quán)限問題。
熟悉oracle的同學(xué)應(yīng)該一眼就能看出來,這個(gè)oracle用戶配置的所屬組是完全錯(cuò)的。這也就成了造成此次問題的關(guān)鍵。把oracle用戶刪掉重新創(chuàng)建,問題完美解決:
寫這篇博客,一個(gè)是給大家提供一個(gè)解決問題的思路,再一個(gè)就是提醒自己,不是“你以為的就是你以為的”,還是需要仔細(xì)的去驗(yàn)證分析。