Oracle清理trace、alert、aud、listener.log檔案

你好我是李白發表於2020-01-16

Oracle清理資料庫以各種日誌檔案

1. (optional)可以建立備份目錄,提前備份需要清理日誌

mkdir /log_bak_date

2. 資料庫各項日誌檔案路徑

sqlplus / as sysdba
SYS@honor1 > show parameter dump_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest                 string      /u01/app/oracle/diag/rdbms/honor/honor1/trace
core_dump_dest                       string      /u01/app/oracle/diag/rdbms/honor/honor1/cdump
user_dump_dest                       string      /u01/app/oracle/diag/rdbms/honor/honor1/trace
11gR1之後引入全新的診斷資訊架構:
SYS@honor1 > show parameter diag;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest                      string      /u01/app/oracle
SYS@honor1 > show parameter audit_file_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/honor/adump
audit_file_dest       /* 路徑下存放的是資料庫審計資訊檔案,如果未設定audit_trail為OS,則預設此目錄只存放SYS登陸審計資訊。
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核心轉儲檔案

3. 資料庫審計資訊檔案清理

find /u01/app/oracle/admin/honor/adump -mtime +30 -name \*.aud
/* 可選擇如下命令備份審計檔案:
find /u01/app/oracle/admin/honor/adump -mtime +30 -name \*.aud -exec mv {} /log_bak_date \;
/* 檢視審計目錄下30天前的審計檔案
find audit_file_dest -mtime +30 -name \*.aud
/* 確保審計日誌無需保留,可選擇刪除
cd /log_bak_date
rm -rf *.aud
/* 資料庫中審計一般可以選擇直接truncate掉aud$

4. 資料庫trace檔案

/* 清理trace檔案
進入background_dump_dest路徑下,將30天之前的檔案移到準備刪除的資料夾,執行命令如下:
find /opt/oracle/diag/rdbms/orcl/czh19c/trace -mtime +30 -name \*.tr*
/* (可選)可選擇將檔案備份
$ find /opt/oracle/diag/rdbms/orcl/czh19c/trace -mtime +30 -name \*.tr* -exec mv {} /log_bak_date/background_dump_dest \;
/* 確保日誌無用處之後,手工執行刪除命令
cd /log_bak_date/background_dump_dest
rm -rf *.tr*

5.清理資料庫alert日誌

/* alert有兩種辦法可以清理
/* /* cp備份
cd /u01/app/oracle/diag/rdbms/honor/honor1/trace
cp alert_$ORACLE_SID.log /log_bak_date/alert_$ORACLE_SID.log.bak (確保空間足夠)
/* 清理辦法
  方法1:echo 0 >alert_$ORACLE_SID.log (清空內容)
  方法2:rm alert_$ORACLE_SID.log  (直接刪除掉)

6. 資料庫sql trace檔案清理

資料庫預設user_dump_dest和background_dump_dest路徑一致,如不一致,參照4中清理trace檔案步驟清理

7. 資料庫監聽日誌清理

/* Oracle 11g的監聽日誌和告警日誌分別在,RAC日誌在grid使用者的$ORACLE_BASE下:
$ORACLE_BASE/diag/tnslsnr/hostname/listener/trace(文字監聽日誌)
$ORACLE_BASE/diag/tnslsnr/hostname/listener/alert(xml監聽日誌)
/* 刪除監聽日誌的方法如下:
/* 切換到oracle使用者(如果為RAC,切換到grid使用者)
$ su oracle
$ lsnrctl 
LSNRCTL> set log_status off
$ mv listener.log listener.log.bak  /*(備份一下監聽檔案或者刪除監聽日誌檔案)
$ mv listener.xml listener.xml.bak
LSNRCTL> set log_status on          /*(這時候會自動建立一個listener.log檔案)
/* 11g可以使用ADRCI工具檢視告警日誌
/* 要看警告日誌可以在oracle使用者下執行adrci
$ adrci
adrci> show alert  /* 可根據提示檢視資料庫或者監聽日誌內容。
$ adrci
adrci> SHOW TRACEFILE  /* 可以看到所有的trace以及alert日誌檔案
/* 使用adrci清理trace檔案
$ adrci
adrci> show home
adrci> set homepath diag/rdbms/honor/honor1
adrci> help purge     /* 可根據清理多少分鐘前的資料,也可以show problem檢視日誌中錯誤資訊


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

相關文章