This post is also available in:
Você reconfigura o Oracle Restart após uma mudança de IP ou hostname, executa o roothas.pl como root, e recebe isso:
Oracle Clusterware infrastructure error in OCRCONFIG (OS PID 26695): CLSD/ADR initialization failed with return value -1
DIA-49802: missing read, write, or execute permission on specified ADR home directory [/u01/app/oracle/diag/crs/orclnode02/crs/log]
DIA-49801: actual permissions [rwxrwx---], expected minimum permissions [rwxrwxrwx] for effective user [oracle]
DIA-48188: user missing read, write, or exec permission on specified directory
Linux-x86_64 Error: 13: Permission deniedO script para, o Oracle Restart não sobe. O problema está no owner dos diretórios do ADR — não nas permissões em si.
Por que acontece
Durante a reconfiguração do Oracle Restart, o roothas.pl é executado como root. Nesse processo, ele recria ou acessa estruturas dentro de $ORACLE_BASE/diag/crs/, e em algumas situações — especialmente após um roothas.pl -deconfig seguido de reconfiguração — o owner de subdiretórios do ADR muda de oracle:oinstall para root:root.
O erro DIA-49802 indica que o usuário oracle (que executa o processo CRS internamente) não consegue acessar o diretório ADR. A mensagem sobre permissões rwxrwxrwx pode induzir ao erro: a tentação é fazer chmod 777, mas isso não resolve — o problema é de owner, não de modo.
💡 O ADR exige acesso para múltiplos usuários do stack Oracle. O
chmod 777não corrige o owner e ainda cria risco desnecessário de segurança. Não faça isso.
Diagnóstico
Antes de executar qualquer correção, confirme que o problema é realmente de owner:
cd $ORACLE_BASE/diag/crs/$(hostname)/crs
ls -laExemplo de output com o problema presente (owner root nos subdiretórios):
drwxr-x--- 2 root oinstall 4096 Mar 16 04:45 alert
drwxr-x--- 2 root oinstall 4096 Mar 16 04:45 cdump
drwxr-x--- 2 root oinstall 4096 Mar 16 04:45 incident
drwxr-x--- 2 root oinstall 4096 Mar 16 04:45 log
drwxr-x--- 2 root oinstall 4096 Mar 16 04:45 trace
...Se o owner for root nos subdiretórios listados acima, o diagnóstico está confirmado. Siga para a solução.
Solução
⚠️ Execute os comandos abaixo como
root. Confirme o owner dos diretórios comls -laantes de prosseguir.
cd $ORACLE_BASE/diag/crs/$(hostname)/crs
chown -R oracle:oinstall alert
chown -R oracle:oinstall cdump
chown -R oracle:oinstall incident
chown -R oracle:oinstall incpkg
chown -R oracle:oinstall lck
chown -R oracle:oinstall log
chown -R oracle:oinstall metadata
chown -R oracle:oinstall metadata_dgif
chown -R oracle:oinstall metadata_pv
chown -R oracle:oinstall stage
chown -R oracle:oinstall sweep
chown -R oracle:oinstall trace⚠️ Se o seu ambiente usa um grupo diferente para o Oracle Grid Infrastructure (ex.:
asmadmin), substituaoinstallpelo grupo correto. Verifique com:id oracle
Após corrigir o owner, execute o roothas.pl novamente:
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/crs/install/roothas.plOutput esperado após correção:
2024/03/16 05:31:32 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2024/03/16 05:32:17 CLSRSC-327: Successfully configured Oracle Restart for a standalone serverValidação
Confirme que o Oracle Restart subiu corretamente:
crsctl status res -tTodos os recursos devem aparecer com status ONLINE.
Checklist rápido
ls -la $ORACLE_BASE/diag/crs/$(hostname)/crs
chown -R oracle:oinstall $ORACLE_BASE/diag/crs/$(hostname)/crs/*
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/crs/install/roothas.pl
crsctl status res -tReferências
- Oracle Documentation: Oracle Restart Administration and Deployment Guide
- Oracle Documentation: ADR — Automatic Diagnostic Repository
