Olá pessoal,
Tudo bem?
Há alguns dias me chamaram para tentar resolver um problema com o startup de uma instância RAC 19.17.
O ambiente é um cluster de dois nós, com segregração de usuários, sendo o usuário grid dono do Grid Infrastructure/Cluster e o usuário oracle dono do Banco de Dados.
Ao tentar inicializar a instância, recebíamos o erro abaixo:
[oracle@DROBDDBRL02 ~]$ srvctl start instance -db OBD_RAC -instance OBD2 PRCR-1013 : Failed to start resource ora.obd_rac.db PRCR-1064 : Failed to start resource ora.obd_rac.db on node drobddbrl02 CRS-5017: The resource action "ora.obd_rac.db start" encountered the following error: ORA-01078: failure in processing system parameters ORA-01565: error in identifying file '+OBD_DATA/OBD_RAC/spfileobd.ora' ORA-17503: ksfdopn:10 Failed to open file +OBD_DATA/OBD_RAC/spfileobd.ora ORA-01034: ORACLE not available ORA-27121: unable to determine size of shared memory segment Linux-x86_64 Error: 13: Permission denied Additional information: 8702 Additional information: 57 . For details refer to "(:CLSN00107:)" in "/oracle/app/grid/diag/crs/drobddbrl02/crs/trace/crsd_oraagent_oracle.trc". CRS-2674: Start of 'ora.obd_rac.db' on 'drobddbrl02' failed
Aparentemente o startup não está conseaguindo ler o SPFILE, certo?
Ao tentar fazer o start manual via SQL*Plus, obtemos o erro abaixo:
Total System Global Area 4294963272 bytes Fixed Size 8904776 bytes Variable Size 1308622848 bytes Database Buffers 2952790016 bytes Redo Buffers 24645632 bytes ORA-00205: error in identifying control file, check alert log for more info
Humm, a instância não está conseguindo ler o controlfile, por esse motivo, o MOUNT falhou.
OK, temos dois sintomas:
- SPFILE não é lido;
- Control File não é lido.
Isso nos leva a acreditar que seja um problema no ASM, já que os arquivos estão hospedados no ASM.
Vamos checar o ASM:
SQL> select name,state from v$asm_diskgroup; USERNAME OSUSER --------------- ---------- OBD_DATA MOUNTED OBD_FRA MOUNTED OBD_REDO1 MOUNTED OBD_REDO2 MOUNTED
OK, o ASM está funcionando normalmente.
Fui verificar se o binário oracle que fica no GRID_HOME estava com as permissões corretas:
No Node 1, onde a instância de DB funciona normalmente:
[root@DROBDDBRL01 ~]# ls -l $ORACLE_HOME/bin/oracle -rwsr-s--x 1 grid oinstall 427363064 Mar 8 04:33 /oracle/app/193/grid/bin/oracle
No Node 2, onde a instância de DB não está sendo inicializada:
[root@DROBDDBRL02 ~]# ls -l $ORACLE_HOME/bin/oracle -rwxrwxrwx 1 grid oinstall 427363064 Mar 8 04:33 /oracle/app/193/grid/bin/oracle
Bingo! Alguém alterou a permissão do binário para 777.
Vamos corrigir a permissão do binário, reiniciar o cluster e tentar novamente:
[root@DROBDDBRL02 ~]# chmod 6751 $ORACLE_HOME/bin/oracle
[root@DROBDDBRL02 ~]# ls -l $ORACLE_HOME/bin/oracle -rwsr-s--x 1 grid oinstall 427363064 Mar 8 04:33 /oracle/app/193/grid/bin/oracle
Reiniciamos o cluster:
[root@DROBDDBRL02 ~]# crsctl stop crs -f
[root@DROBDDBRL02 ~]# crsctl start crs
Problema resolvido.
[oracle@DROBDDBRL01 ~]$ srvctl status database -db OBD_RAC Instance OBD1 is running on node drobddbrl01 Instance OBD2 is running on node drobddbrl02
Apesar de não ter havido patch de GI, a nota abaixo explica sobre isso e a solução aplicada:
Database Not Started with ORA-00205 After Applying GI PSU (Doc ID 1487382.1)
Espero que seja útil.
Um abraço,
Vinicius
Related posts
Disclaimer
Minhas postagens refletem minhas próprias opiniões e não representam necessariamente as opiniões do meu empregador, a Accenture.