Ao longo da minha experiência aprendi a resolver problemas comuns que acontecem em Banco de Dados da Oracle que podem provocar até mesmo a parada total do BD. Geralmente um usuário Linux é configurado somente para a instancia do BD. Acesse com o usuário. No sistema Linux utilizamos o comando top para verificar o consumo do processamento. Algumas etapas devem sempre ser verificadas. A primeira é verificar os recursos da máquina e verificar quanto de processamento o BD está consumindo dentro do Sistema Operacional.
Verificar processos:
top –d2 -c
Esse comando exibe o Process ID (PID) dos consumos, verifique o consumo mais elevado.
Se o processo em alto consumo for um processo Oracle, acesse o BD e utilizem a query abaixo para tentar identificar no banco o que está sendo executado neste processo.
select sql_text
from v$sql
Where hash_value =
(SELECT sql_hash_value
FROM v$session
WHERE paddr = (SELECT addr FROM v$process WHERE spid = PID_SO));
Onde PID_SO é o PID do processo no sistema operacional.
Outra possibilidade é verificar dentro da máquina Linux os espaços em disco utilizando o comando df.
$ df -h
Se o banco estiver parado será necessário dar um startup na instancia, porém é bom que o banco seja desligado antes.
Acessar o banco na instancia normal
sqlplus /nolog
Para acessar o banco como Administrador:
sqlplus '/as sysdba'
Para derrubar o banco (é necessário aguardar alguns minutos 1 a 2, as vezes 3 , varia conforme o tamanho do BD, nessa hora haja coração!):
shutdown immediate;
Se o BD não desligar com o comando acima o comando abaixo é utilizado em uma circunstância mais extrema:
shutdown abort;
Para reiniciar:
startup;
Outro problema que acontece é queda do listener do BD. O listener é responsável por "ouvir" as requisições solicitadas ao banco. Nesses casos o erro não permite nem o acesso ao banco. Então segue o comando para a máquina Linux.
Verificar o listener:
lsnrctl status
Se for o caso de parar:
lsnrctl stop
Se for o caso de levantar:
lsnrctl start
Outro procedimento é verificar se a variável Home do Oracle está configurada, o comando abaixo devera exibir a URI do Home e assim também é possível buscar por logs:
echo $ORACLE_HOME
/oracle/base/product/11gR1/db
Para verificar os arquivos de log do banco:
crosscheck archivelog all
para ver a instancia do banco:
echo $ORACLE_SID
Para acessar Recovery Manager:
rman target /
Segue abaixo uma sequencia de comandos utilizada em um banco local de testes onde foi adicionado o listener ao boot da máquina e também foram verificados os logs de erros do BD:
1001 cd /etc/sysconfig/
1002 vi oracle
1003 cat /etc/oratab
1004 set | grep ORA
1005 cd /oracle/base/product/10.2/network/
1006 ll
1007 cd log/
1008 ls
1009 less -N listener.log
1010 hostname
1011 hostname -f
1012 cat /etc/hosts
1013 cd ..
1014 ls
1015 cd admin/
1016 ls
1017 vi listener.ora
1018 vi /etc/init.d/boot.local
1019 vi /var/log/messages (como root)
1020 history
Verificar processos:
top –d2 -c
Esse comando exibe o Process ID (PID) dos consumos, verifique o consumo mais elevado.
Se o processo em alto consumo for um processo Oracle, acesse o BD e utilizem a query abaixo para tentar identificar no banco o que está sendo executado neste processo.
select sql_text
from v$sql
Where hash_value =
(SELECT sql_hash_value
FROM v$session
WHERE paddr = (SELECT addr FROM v$process WHERE spid = PID_SO));
Onde PID_SO é o PID do processo no sistema operacional.
Outra possibilidade é verificar dentro da máquina Linux os espaços em disco utilizando o comando df.
$ df -h
Se o banco estiver parado será necessário dar um startup na instancia, porém é bom que o banco seja desligado antes.
Acessar o banco na instancia normal
sqlplus /nolog
Para acessar o banco como Administrador:
sqlplus '/as sysdba'
Para derrubar o banco (é necessário aguardar alguns minutos 1 a 2, as vezes 3 , varia conforme o tamanho do BD, nessa hora haja coração!):
shutdown immediate;
Se o BD não desligar com o comando acima o comando abaixo é utilizado em uma circunstância mais extrema:
shutdown abort;
Para reiniciar:
startup;
Outro problema que acontece é queda do listener do BD. O listener é responsável por "ouvir" as requisições solicitadas ao banco. Nesses casos o erro não permite nem o acesso ao banco. Então segue o comando para a máquina Linux.
Verificar o listener:
lsnrctl status
Se for o caso de parar:
lsnrctl stop
Se for o caso de levantar:
lsnrctl start
Outro procedimento é verificar se a variável Home do Oracle está configurada, o comando abaixo devera exibir a URI do Home e assim também é possível buscar por logs:
echo $ORACLE_HOME
/oracle/base/product/11gR1/db
Para verificar os arquivos de log do banco:
crosscheck archivelog all
para ver a instancia do banco:
echo $ORACLE_SID
Para acessar Recovery Manager:
rman target /
Segue abaixo uma sequencia de comandos utilizada em um banco local de testes onde foi adicionado o listener ao boot da máquina e também foram verificados os logs de erros do BD:
1001 cd /etc/sysconfig/
1002 vi oracle
1003 cat /etc/oratab
1004 set | grep ORA
1005 cd /oracle/base/product/10.2/network/
1006 ll
1007 cd log/
1008 ls
1009 less -N listener.log
1010 hostname
1011 hostname -f
1012 cat /etc/hosts
1013 cd ..
1014 ls
1015 cd admin/
1016 ls
1017 vi listener.ora
1018 vi /etc/init.d/boot.local
1019 vi /var/log/messages (como root)
1020 history
Nenhum comentário:
Postar um comentário