2023年6月30日 星期五

ORA-16532: Oracle Data Guard broker configuration does not exist

Oracle 版本: 12.1.0.2

OS 版本: Linux 7.5


問題描述:

Primary 為 RAC 架構, Standby 端為 Single Instance ,使用 Data Guard Broker ,設定完 Data Guard Broker 後 show configuration 出現以下告警 :

DGMGRL>  show configuration


Configuration – ORCL_DG

  Protection Mode: MaxPerformance

  Members:

  ORLC_P - Primary database

    Warning: ORA-16532: Oracle Data Guard broker configuration does not exist 

    ORCL_S - Physical standby database


Fast-Start Failover:  Disabled


Configuration Status:

ERROR   (status updated 40 seconds ago)


問題分析:

ORA-16532: Oracle Data Guard broker configuration does not exist 這個訊息大多與 Data Guard Broker 的設定檔有關,也就是參數 dg_broker_config_file1 與 dg_broker_config_file2 所設定的 .dat 檔,這個檔案預設會設定在 $ORACLE_HOME/dbs 底下,在 RAC 架構下,必須要把此檔案設定在所有節點可共享的位置,例如 ASM ,否則就有可能會出現 DG Broker 找不到設定檔的訊息。


解決方法:

將參數 dg_broker_config_file1 與 dg_broker_config_file2 重新設定在 ASM ,並重新 disable configuration 與 enable configuration 之後此告警訊息消失。

SQL> alter system set dg_broker_config_file1='+DATAC1/ORCL/dr1ORCL.dat';

SQL> alter system set dg_broker_config_file2='+DATAC1/ORCL/dr2ORCL.dat';


DGMGRL> disable configuration;

DGMGRL> enable configuration;



2023年5月31日 星期三

ORA-12547 造成 RAC DB 無法啟動

Oracle 版本: 11.2.0.4 , RAC

OS 版本: Linux 5.8


問題描述:

RAC DB 無法啟動並出現錯誤 :

ORA-01078: failure in processing system parameters

ORA-01565: error in identifying file '+DATA/ORCL/spfileORCL.ora'

ORA-17503: ksfdopn:2 Failed to open file +DATA/ORCL/spfileORCL.ora

ORA-12547: TNS:lost contact


檢查 DB alert log 出現以下錯誤 :

ORA-15055: unable to connect to ASM instance

ORA-12547: TNS:lost contact


問題分析:

這個訊息表示 DB 的 spfile 放置在 ASM ,啟動時 DB 無法存取 ASM 導致無法讀取 spfile ,檢查 ASM Instance 狀態是正常的 :

# ps -ef|grep pmon

grid      2953     1  0 08:03 ?        00:00:00 asm_pmon_+ASM1

root      3115  3090  0 08:08 pts/1    00:00:00 grep pmon


# ./crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS                                        

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

               ONLINE  ONLINE       db11gr21                                                                       

ora.LISTENER.lsnr

               ONLINE  ONLINE       db11gr21                                                                      

ora.asm

               ONLINE  ONLINE       db11gr21                 Started  


解決方法:

連線時出現 ORA-12547 錯誤一般與權限有關, $GI_HOME/bin 以及 $ORACLE_HOME/bin 底下的oracle 執行檔的權限必須為 6751 ,並且 $GI_HOME/bin/oracle 的權限為 grid:oinstall ;而 $ORACLE_HOME/bin/oracle 的權限為 oracle:asmadmin 

$ ls -l $GRID_HOME/bin/oracle

-rwsr-s--x 1 grid oinstall 203974257 Mar 14 19:20 oracle


$ ls -l $ORACLE_HOME/bin/oracle

-rwsr-s--x 1 oracle asmadmin 232399431 Mar 14 19:20 oracle


這個問題很常發生在有設定 asmadmin 這個 group 的情況。



ORA-600 [spstp: ORACLE_HOME uid does not match euid]

Oracle 版本: 11.1.0.7

OS 版本: Linux 5.8


問題描述:

使用 sqlplus 連線時出現錯誤 ORA-12547 "TNS:lost contact" ,檢查 DB alert log 出現 ORA-00600 訊息:

ORA-00600: internal error code, arguments: [spstp: ORACLE_HOME uid does not match euid], [1001], [1003], [], [], [], [], [], [], [], [], []


問題分析:

這個訊息表示 oracle 執行檔的權限不對,檢查 $ORACLE_HOME/bin/oracle 的權限,發現為 755 :

$ ls -l $ORACLE_HOME/bin/oracle

-rwxr-xr-x 1 oracle oinstall 232399431 Mar 14 10:17 oracle


解決方法:

將 oracle 執行檔權限修正為 6751 :

$ chmod 6751 $ORACLE_HOME/bin/oracle

$ ls -l $ORACLE_HOME/bin/oracle

-rwsr-s--x 1 oracle oinstall 232399431 Mar 14 10:17 oracle