一、環境描述
作業系統:RHEL7.6
資料庫:19.3.0.0 2節點RAC
二、問題描述
朋友說資料庫啟動,一個節點報如下錯誤:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iN1MmMyUmZzIDZ4UDM2gDM0MDOhZ2YwMTZ4UTOzMWZi9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
三、問題分析
其實這個問題玩過oracle的朋友基本都遇到過,但是這個問題在12c以上可能又有點不同。
一般遇到這種問題,我們的分析思路是這樣的:
先排查環境變量是否有問題,ORACLE_SID是否一緻。
檢查pfile是不是異常
在11gRAC的版本中,spfile的路徑是指定在$ORACLE_HOME/dbs/init.ora裡面的。
而在12cRAC以上版本中,$ORACLE_HOME/dbs/目錄中不再有spfile和pfile檔案了,如下所示:
但為什麼節點2啟動成功,節點1啟動失敗呢?
12cRAC以上版本中spfile的路徑資訊是配置到ASM中,我們可以通過srvctl config database -db db_name來擷取,如下所示:
是以此時資料庫startup讀取參數檔案的順序是:
ASM裡的rdbms spfile(因為asm也有spfile)->本地的spfile->本地的pfile。
是以問題也很清晰了,就是因為RDBMS無法通路ASM中的spfile,一般是因為$ORACLE_HOME/bin/oracle的權限問題:
四、問題解決
$ORACLE_HOME/bin/oracle二進制檔案必須擁有6751的權限。
su - grid
cd $ORACLE_HOME/bin
chmod 6751 oracle