ADRCI ile listener log , trace gibi dosyaların silinmesi

16 May by Ahmet Duruöz

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

 

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir