ADRCI ile listener log , trace gibi dosyaların silinmesi
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