ADR Command Interpreter (ADRCI) ile veritabanı , grid , listener için oluşturulan log , trace , incident , cdump gibi dosyaların belirli bir günden önceki oluşanları silmek mümkündür. Tek tek dizinler dosyaları manuel silmek yerine adrci ile bu işlemi çok kolay bir şekilde yapabilirsiniz.
ADRCI kullanımı için Oracle Base , set edilmiş olmalıdır. Bu aracın kullanımı ile ilgili detaylı bilgiyi ADR Command Interpreter (ADRCI) kullanımı başlıklı makalede bulabilirsiniz.
Aşağıdaki şekilde adrci aracını başlatabiliriz.
-bash-4.3$ . oraenv
ORACLE_SID = [+ASM1] ? +ASM1
The Oracle base remains unchanged with value /u01/app/oracle
-bash-4.3$ adrci
ADRCI: Release 11.2.0.4.0 - Production on Tue May 16 16:19:40 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
Sonrasında mevcut home’ları listeleyerek hangi home için işlem yapacağımıza karar vermemiz gerekiyor. Örnekte listener alert dosyalarının silinmesi için gerekli adımlar gösterilmiştir.
Mevcut home’ların listelenmesi :
adrci> show homes
ADR Homes:
diag/asm/+asm/+ASM1
diag/clients/user_oracle/host_2585172500_11
diag/clients/user_oracle/host_2585172500_80
diag/diagtool/user_oracle/host_2585172500_11
diag/rdbms/orcltest/ORCLTEST1
diag/rdbms/audit/AUDIT1
diag/rdbms/orcl/ORCL1
diag/tnslsnr/oradb1/listener
Çalışılacak home’un set edilmesi :
adrci> set home diag/tnslsnr/oradb1/listener
Set edilen home daki TRACE ve ALERT dosyalarından 3600 dakika (1 gün) önceden oluşanların silinmesi :
adrci> purge -age 3600 -type TRACE
adrci> purge -age 3600 -type ALERT
Aynı komut ile aşağıdaki dosya tiplerinin silinmesi mümkündür :
- ALERT – ./alert dizinindeki dosyalar
- INCIDENT — ./incident/incdir_<incid> dizinindeki dosyalar
- TRACE — ./trace dizinindeki dosyalar
- CDUMP — ./cdump dizinindeki dosyalar
- UTSCDMP — ./trace/cdmp_<timestamp> dizinleri
- STAGE — ./stage dizinindeki dosyalar
- SWEEP — ./sweep dizinindeki dosyalar
- HM — ./hm dizinindeki dosyalar ve HM şemasındaki metadata bilgileri
- IPS — ./incpkg dizinindeki dosyalar ve IPS şemasındaki metadata bilgileri
Tüm dosyaları temizlemek için aşağıdaki komut kullanılabilir.
adrci> purge -age 10080
Bu işlemleri otomatik olarak da adrci aracının yapması sağlanabilir.
İlgili home set edildikten sonra mevcut politikaların değiştirilmesi gerekmektedir.
adrci> set home diag/tnslsnr/oradb1/listener
adrci> show control
ADR Home = /u01/app/oracle/diag/tnslsnr/oradb1/listener:
*************************************************************************
ADRID SHORTP_POLICY LONGP_POLICY LAST_MOD_TIME LAST_AUTOPRG_TIME LAST_MANUPRG_TIME ADRDIR_VERSION ADRSCHM_VERSION ADRSCHMV_SUMMARY ADRALERT_VERSION CREATE_TIME
-------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- ----------------------------------------
3953762085 720 8760 2016-06-08 10:47:22.071463 +03:00 2017-05-16 16:20:48.104055 +03:00 1 2 80 1 2016-06-08 10:47:22.071463 +03:00
1 rows fetched
Yukarıdaki çıktıdaki LAST_AUTOPRG_TIME alanının boş olması otomatik olarak hiç temizleme yapılmadığını gösterir. Incident ve health monitor uyarıları için SHORTP_POLICY , trace ve core dump dosyaları için LONGP_POLICY değerleri değiştirilmelidir. Buradaki değerler saat cinsinden olup, mevcut değerlere göre çok uzun bir süre silmeyeceği görülmektedir. Bu değerleri daha makul yapmak gerekiyor. Örneğin bir hafta öncesi , silinebilir.
SHORTP_POLICY ve LONGP_POLICY değerlerinin set edilmesi :
adrci> set control (SHORTP_POLICY = 168)
adrci> set control (LONGP_POLICY = 168)
adrci> show control
ADR Home = /u01/app/oracle/diag/tnslsnr/oradb1/listener:
*************************************************************************
ADRID SHORTP_POLICY LONGP_POLICY LAST_MOD_TIME LAST_AUTOPRG_TIME LAST_MANUPRG_TIME ADRDIR_VERSION ADRSCHM_VERSION ADRSCHMV_SUMMARY ADRALERT_VERSION CREATE_TIME
-------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- ----------------------------------------
3953762085 168 168 2017-05-16 16:58:40.865587 +03:00 2017-05-16 16:20:48.104055 +03:00 1 2 80 1 2016-06-08 10:47:22.071463 +03:00
1 rows fetched
Bu değişikliği tek tek yapmak yerine aşağıdaki gibi bir script ile tek toplu halde yapmak mümkündür.
adrci_set_policy.sh
#!/bin/sh
for ADRHOME in `adrci exec="show home"`
do
if [ $ADRHOME = "ADR" -o $ADRHOME = "Homes:" ]
then
continue;
fi
echo $ADRHOME
adrci <<EOF
set home $ADRHOME
set control (SHORTP_POLICY = 168)
set control (LONGP_POLICY = 168)
purge
exit
EOF
done