ORA
一個(gè)詭異的案例:ORA-12547: TNS:lost contact導(dǎo)致數(shù)據(jù)庫(kù)無(wú)法啟動(dòng),甚至sqlplus都無(wú)法登錄,讓我們一一來(lái)解開(kāi)這個(gè)案例的真面目。
某客戶(hù)出現(xiàn)數(shù)據(jù)庫(kù)無(wú)法啟動(dòng)的情況,申請(qǐng)?jiān)坪投髂珔f(xié)助分析和處置。
云和恩墨工程師快速響應(yīng),組織相關(guān)人員進(jìn)行故障診斷分析、指出故障原因,提出解決措施并處置,快速恢復(fù)了業(yè)務(wù)。
以下是詳細(xì)的故障分析診斷過(guò)程,以及詳細(xì)的解決方案描述。2.1. 故障現(xiàn)象
數(shù)據(jù)庫(kù)無(wú)法啟動(dòng),數(shù)據(jù)庫(kù)監(jiān)聽(tīng)狀態(tài)異常。
發(fā)現(xiàn)數(shù)據(jù)庫(kù)的asm實(shí)例也出現(xiàn)異常。2.2. 故障根源
去分析asm的alert日志
ASM實(shí)例異常。
Ora.asm的資源是offline狀態(tài)。
嘗試關(guān)閉has,然后重新啟動(dòng)has,再看看asm是否可以啟動(dòng):
has啟動(dòng)失敗,查看asm agent日志:
Asm啟動(dòng)過(guò)程中報(bào)InstConnection:connect:excp OCIException OCI error 12547之后啟動(dòng)失敗。
我們發(fā)現(xiàn)sqlplus / as sysdba登錄也會(huì)出現(xiàn)TNS 12547的報(bào)錯(cuò)
通過(guò)truss 去跟蹤sqlplus:
發(fā)現(xiàn)在讀寫(xiě)sqlnet.log 時(shí)候報(bào)錯(cuò),懷疑是oracle本身有問(wèn)題,查詢(xún)metalink證實(shí)了這個(gè)想法:Troubleshooting ORA-12547 TNS: Lost Contact [ID 555565.1]。
然后嘗試去relink。
relink的日志出現(xiàn)ksh: /dev/null: 0403-005 Cannot create the specified file.的報(bào)錯(cuò)。根據(jù)IBM官方文章:https://www.ibm.com/support/pages/file-access-permissions-do-not-allow-specified-action:
執(zhí)行chmod 660 /dev/null,sqlplus / as sysdba不再顯示ORA-12547: TNS:lost contact的錯(cuò)誤。2.3. 故障處置
嘗試重新啟動(dòng)has,ASM實(shí)例正常啟動(dòng),但是數(shù)據(jù)庫(kù)實(shí)例無(wú)法啟動(dòng)。
手工啟動(dòng)數(shù)據(jù)庫(kù)。又出現(xiàn)CRS-5016: Process "/oracle/grid/bin/setasmgidwrap等錯(cuò)誤:
解決辦法:
執(zhí)行sqlplus sys as sysdba登錄。
執(zhí)行startup,手動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)
根本原因是由于/dev/null權(quán)限的問(wèn)題,
解決辦法:
原文閱讀:https://www.modb.pro/db/26889?YYF
下一篇:oracle數(shù)據(jù)庫(kù)中表誤操作恢復(fù)(delete、truncate、drop)