NÃO ME RESPONSABILIZO CASO VC. FAÇA BESTEIRA.
ESTE ARTIGO COMO TODO OS OUTROS É PARA SERVIR DE BASE.
ACREDITE AJUDA EM MUITO.
Socorro desespero 100% do / consumido.
1.)
rm -rf /u01/app/oracle/diag/tnslsnr/<< SEU BANCO >>/listener/trace/listener*.log
rm -rf /u01/app/oracle/diag/tnslsnr/<< SEU BANCO >>/listener/alert/*.xml
Se conseguir copiar os arquivos para futura consulta seria muito bom né.. cp linux lembra.
Com isso seu banco consegue pegar o folego.
2.)
COMO ESTA A UNDO ?
SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb FROM dba_data_files WHERE tablespace_name = 'UNDOTBS1';
DESCOBRIU QUE A UNDO ESTA AUTOEXTEND OU SEJA CRESCENDO A VONTADE VAMOS TRAVAR ISSO.
ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL21C/<< SEU BANCO >>/undotbs01.dbf' AUTOEXTEND OFF;
VAMOS BOTAR UM LIMITE PARA ELA.... ( ISSO É COISA PARA ESTUDAR COM CALMA MAS... VAI LÁ )
ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL21C/<< SEU BANCO >>/undotbs01.dbf' RESIZE 10810M; -- 10Gb.
COM ISSO O ESPAÇO DA UNDO VAI REDUZIR MAIS TALVES VOCE NECESSITE CRIAR MAIS UM ARQUIVO NESSA TABLESPACE....
LEMBRE-SE ESTAMOS LUTANDO PARA O BANCO NAO PARAR....
Ao instalar um servidor Oracle Database (padrao alfa oracle) algumas tables space vao para o diretorio padrao de instalacao
Exemplo :
/u01/app/oracle/oradata/<< VER. >>/<<< SEUBANCO >>>/undotbs01.dbf
Devemos considerar
adrci
show homes
show control
purge -age 60
purge -age 60 -type ALERT
Ref : https://www.oracle.com/technetwork/pt/articles/database-performance/automatic-diagnostic-repository-2417674-ptb.html
cd /u01/app/oracle/diag/tnslsnr/<<< BANCO >>>/listener/trace
rm << no(s) arquirvos da pasta
5.4G /u01/app/oracle/product/11.2.0.4/db_1/log/diag/tnslsnr/<<< BANCO >>>/listener/trace
7.1G /u01/app/oracle/product/11.2.0.4/db_1/log/diag/tnslsnr/<<< BANCO >>>/listener/alert
13G /u01/app/oracle/product/11.2.0.4/db_1/log/diag/tnslsnr/<<< BANCO >>>/listener
Falta de espaço em disco ?
Seus problema acabaram....
Falando serio vamos trabalhar com o crescimento do log do Listener, que sofre crescimento constante de todas as conexões realizadas no banco de dados.
Local do Listener:
$ORACLE_HOME/network/log/listener.log
/u01/app/oracle/product/11.2.0.4/db_1/log/diag/tnslsnr/<<BANCO>>/listener/trace
Antes de limpá-lo, vamos desabilitar a sua alimentação do log.
# lsnrctl
Vamos agora colocar o status do log para Off
LSNRCTL> set log_status off
Agora podemos apagar o arquivo ou apenas colocá-lo em um outro diretório, e fazer a devida limpeza no mesmo. Agora vamos habilitar o status do log, para que volte a funcionar normalmente, vale lembrar que se apagar o arquivo o mesmo será recriado com o tamanho zerado.
Vamos voltar para o status ON do log
LSNRCTL> set log_status On
Bem fácil esse procedimento, que pode economizar vários gigas em disco.
VAMOS AO SEGUNDO PASSO
Vamos criar um script para limpar os alertas superiores a 5 dias.
Crie o script no diretorio de seu gosto ex :
vi /home/oracle/Scripts/limpa_oracle_alert.sh
# Dentro do script eu optei por primeiro fazer uma copia no repositorio de backup.
# Depois elimino os arquivos
find /u01/app/oracle/product/11.2.0.4/db_1/log/diag/tnslsnr/<< BANCO >>/listener/alert/ -type f -mtime +5 -exec cp {} /backup/alert \;
find /u01/app/oracle/product/11.2.0.4/db_1/log/diag/tnslsnr/<< BANCO >>/listener/alert/ -type f -mtime +5 -exec rm -rf {} \;
# sai salvando ne...
:qw
Tranformando o sh em executavel
chmod +x /home/oracle/Scripts/limpa_oracle_alert.sh
Agora e so colocar no crontab
crontab -e
su root
service crond restar
exit
vai tomar cafe com cara de sabe tudo.....
Espero que tenham gostado!
Abraços.