oracle清理trace、alert、aud、listener等日誌檔案

flywiththewind發表於2022-05-16

oracle清理trace、alert、aud、listener等日誌檔案



文章目錄

0、注意事項

1、資料庫各項日誌檔案路徑

2、手工方式清理日誌檔案

3、使用oracle自帶工具清理

0、注意事項

資料庫產生的執行日誌不是隨便可以清理的,特別是有故障或者長期分析一個妖孽的問題時,清理日誌之前一定要做好備份工作。


1、資料庫各項日誌檔案路徑

檢視oracle各類日誌的方法:如果是rac,asm例項下查詢方法一樣


1)檢視診斷日誌:


11g以及以上版本全新的診斷資訊架構,檢視v$diag_info資訊,展示日誌目錄:


show parameter diag;

select * from v$diag_info

輸出例子如下:

         1 ADR Base

/u01/app/oracle

         1 ADR Home

/u01/app/oracle/diag/rdbms/orcl11g/orcl11g

         1 Diag Trace

/u01/app/oracle/diag/rdbms/orcl11g/orcl11g/trace

         1 Diag Alert

/u01/app/oracle/diag/rdbms/orcl11g/orcl11g/alert

         1 Diag Incident

/u01/app/oracle/diag/rdbms/orcl11g/orcl11g/incident

         1 Diag Cdump

/u01/app/oracle/diag/rdbms/orcl11g/orcl11g/cdump

         1 Health Monitor

/u01/app/oracle/diag/rdbms/orcl11g/orcl11g/hm

         1 Default Trace File

/u01/app/oracle/diag/rdbms/orcl11g/orcl11g/trace/orcl11g_ora_61174.trc


11g以下檢視方式:


sqlplus / as sysdba

SYS@orcl1 > show parameter dump_dest;

NAME                                 TYPE        VALUE

background_dump_dest                 string      /u01/app/oracle/diag/rdbms/orcl11g/orcl11g/trace

core_dump_dest                       string      /u01/app/oracle/diag/rdbms/orcl11g/orcl11g/cdump

user_dump_dest                       string      /u01/app/oracle/diag/rdbms/orcl11g/orcl11g/trace


說明:

background_dump_dest  /* 存放資料庫後臺程式除錯資訊,與記錄影響例項、資料庫的trace檔案和alert日誌檔案,11gR1之後,預設忽略此引數設定,根據diagnostic_dest存放

diagnostic_dest       /* 11gR1之後,引入,後臺程式與alert告警日誌會根據ADR base目錄存放

user_dump_dest        /* 存放使用者程式除錯trace檔案,11gR1之後,引入新的診斷架構這個引數將被忽略,由diagnostic_dest控制trace檔案生成目錄

core_dump_dest        /* 存放Oracle核心轉儲檔案


2)檢視審計日誌:


SYS@orcl1 > show parameter audit_file_dest;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

audit_file_dest                      string      /u01/app/oracle/admin/orcl/adump

audit_file_dest 


路徑下存放的是資料庫審計資訊檔案,如果設定audit_trail為NONE,則預設此目錄只存放SYSDBA身份登陸審計資訊。


注意,asm例項下面看到的路徑可能不一樣,比如:

audit_file_dest                      string      /u01/app/12.2.0/grid/rdbms/audit


3)檢視監聽日誌位置:


[oracle@onetest ~]$ lsnrctl status 

Listener Parameter File   /u01/app/oracle/product/19.0.0/db_1/network/admin/listener.ora

Listener Log File         /u01/app/oracle/diag/tnslsnr/onetest/listener/alert/log.xml


注意,除了監聽xml日誌,還有listener.log日誌位於/u01/app/oracle/diag/tnslsnr/onetest/listener/trace目錄下


2、手工方式清理日誌檔案

情況1:清理單個較大日誌檔案,alert_sid.log、listener.log等


SQL> select * from v$diag_info where name='Diag Trace';


/u01/app/oracle/diag/rdbms/orcl/orcl/trace


[oracle@orclr01 trace]$cd /u01/app/oracle/diag/rdbms/orcl/orcl1/trace

[oracle@orclr01 trace]$ ls -lrt alert*

[oracle@orclr01 trace]$cp  alert_orcl1.log  /data/backlog/oralog/alert_orcl1.log -`date +"%Y%m%d"`

[oracle@orclr01 trace]$echo 0 > alert_orcl1.log

CPU空閒時操作:

cd /data/backlog/oralog 

gzip 剛才備份的alert日誌檔案

說明:透過echo的方式清理,可以保持檔案的屬性,不影響zabbix監控alert日誌。

1

情況2:清理上萬個小的日誌檔案,trc日誌、aud審計日誌等


asm例項下:

show parameter audit_file_dest

cd /u01/app/11.2.0/grid/rdbms/audit

清理前可選擇備份:

find . -mtime +30 -name \*.aud -exec mv {}  /oralog_bak \;

或者直接刪除:

find . -name "*.aud" -mtime +30 -type f | xargs rm -rf

其它型別的日誌檔案類似,替換為*.trc即可


如果開啟了資料庫審計日誌,那需要在資料庫中清理aud$審計表


3、使用oracle自帶工具清理

使用adrci清理trace和acident日誌


$ adrci

adrci> show home

adrci> set homepath diag/rdbms/orcl/orcl1

adrci> help purge     # 可根據清理多少分鐘前的資料,也可以show problem檢視日誌中錯誤資訊

adrci> purge -age 14400 -type incident #14400的單位是分鐘

adrci> purge -age 14400 -type trace


也可以在adrci中設定trace檔案保留的策略:


adrci> show control  #檢視可以設定的策略

adrci> help set control

set control (SHORTP_POLICY = 720) #720的單位是小時


12c以及以上版本部署purgeLogs工具

可能是oracle自己也知道從9i ~ 19c版本,日誌位置不斷變化,日誌也越來越多,翻不了了,官方出了專門清理日誌的工具。


MOS文件:purgeLogs: Cleanup traces, logs in one command (Doc ID 2081655.1)


工具使用參考:


Usage:

purgeLogs [-days <days> [-aud] [-lsnr]]   |

            [-orcl <days> [-aud] [-lsnr]] |

            [-tfa <days>] |

            [-osw <days>] |

            [-oda <days>] |

            [-extra '<folder>':<days> | [, '<folder>':<days>]]

            [-automigrate]

            [-dryrun]

purgeLogs OPTIONS

  -days <days> Purge orcl,tfa,osw,oak components logs & traces older then # days

  -orcl <days> Purge only GI/RDBMS logs & traces (Default 30 days)

  -tfa <days> Purge only TFA repository older then # days (Default 30 days)

  -osw <days> Purge only OSW archives older then # days (Default 30 days)

  -oda <days> Purge only OAK/DCS logs and trace older then # days (Default 30 days)

  -extra '<folder>':<days> Purge only files in user specified folders (Default 30 days)

  -aud Purge Audit logs based on '-orcl <days>' option

  -lsnr It will force the cleanup of listeners log independently by the age

  -dryrun It will show the purge commands w/o execute them

  -automigrate It will run the adrci schema migrate commands in case of DIA-49803

  -h Display this help and exit


Example:

  purgeLogs

  purgeLogs -days 20

  purgeLogs -orcl 50

  purgeLogs -orcl 50 -aud -lsnr

  purgeLogs -tfa 50

  purgeLogs -osw 20 -oda 10

  purgeLogs -orcl 20 -osw 20 -oda 10

  purgeLogs -orcl 20 -osw 20 -oda 10 -extra /tmp:10,/var/log:20

————————————————

版權宣告:本文為CSDN博主「獨孤清揚玩DB」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/u010033674/article/details/106238817


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26224914/viewspace-2894417/,如需轉載,請註明出處,否則將追究法律責任。

相關文章