Oracle11g清理資料庫歷史日誌
1. 建立存放資料庫待刪除日誌檔案路徑
用於存放準備刪除,這裡假設放在/home/oracle/delete路徑下
$ cd /home/oracle/delete
$ mkdir -p audit_file_dest background_dump_dest user_dump_dest core_dump_dest listenr_log_dest
2. 檢視不同資料庫日誌檔案所在路徑
$ sqlplus / as sysdba
SQL> show parameter dest
找到audit_file_dest,background_dump_dest,user_dump_dest,core_dump_dest對應的值
audit_file_dest路徑下存放的是資料庫審計資訊檔案
background_dump_dest路徑下存放的是資料庫的trace檔案和alert日誌檔案
user_dump_dest路徑下存放的是sql trace之後session的trace檔案
core_dump_dest路徑下存放的是應用程式日誌,除非資料庫出了問題,否則基本上不會有什麼資訊
下文使用黑體的audit_file_dest,background_dump_dest,user_dump_dest,core_dump_dest代替真實路徑。
3. 資料庫審計資訊檔案清理
進入audit_file_dest路徑下,將30天之前的檔案移到準備刪除的資料夾,執行命令如下:
(1)執行如下命令檢視當前所在路徑,確定是否無誤
$ cd audit_file_dest
$ pwd
(2)執行如下命令檢視30天前的審計檔案
$ find audit_file_dest -mtime +30 -name \*.aud
(3)執行如下命令,將檔案移至待刪除資料夾
$ find audit_file_dest -mtime +30 -name \*.aud -exec mv {} /home/oracle/delete/audit_file_dest \;
(4)檢視審計目錄下30天前的審計檔案以及待刪除資料夾下的檔案
$ find audit_file_dest -mtime +30 -name \*.aud
$ ls /home/oracle/delete/audit_file_dest
(5)等待2日,確保日誌檔案移走對Oracle資料庫執行無影響之後,手工執行刪除命令
$ cd /home/oracle/delete
$ rm -rf audit_file_dest
4. 資料庫trace檔案和alert日誌清理
4.1. 清理trace檔案
進入background_dump_dest路徑下,將30天之前的檔案移到準備刪除的資料夾,執行命令如下:
(1)執行如下命令檢視當前所在路徑,確定是否無誤
$ cd background_dump_dest
$ pwd
(2)執行如下命令檢視30天前的審計檔案
$ find background_dump_dest -mtime +30 -name \*.tr*
(3)執行如下命令,將檔案移至待刪除資料夾
$ find background_dump_dest -mtime +30 -name \*.tr* -exec mv {} /home/oracle/delete/background_dump_dest \;
(4)檢視審計目錄下30天前的審計檔案以及待刪除資料夾下的檔案
$ find background_dump_dest -mtime +30 -name \*.aud
$ ls /home/oracle/delete/background_dump_dest
(5)等待2日,確保日誌檔案移走對Oracle資料庫執行無影響之後,手工執行刪除命令
$ cd /home/oracle/delete
$ rm -rf background_dump_dest
4.2. 清理alert日誌
alert日誌,可以直接刪除alert日誌(或echo清理),可自動生成,無需關閉資料庫(前提最好是將原來的cp備份)
(1)進入日誌所在路徑
$ cd background_dump_dest
(2)cp備份
cp alert_$ORACLE_SID.log alert_$ORACLE_SID.log.bak (確保空間足夠)
(3)刪除原來alert日誌檔案
方法1:echo >alert_$ORACLE_SID.log (這個方法清理後原來的alert檔案還在)
方法2:rm alert_$ORACLE_SID.log (直接刪除掉)
(4)測試方法2刪除的alert檔案會自動生成
SQL> alter system switch logfile;
(5)看是否生成新的日誌檔案
SQL> show parameter dump
SQL> exit
$ cd /u01/app/oracle/diag/rdbms/db11g/db11g/trace
$ ls -lrt
可看到最新生成的alert日誌檔案
5. 資料庫sql trace檔案清理
資料庫預設user_dump_dest和background_dump_dest路徑一致,如不一致,參考4.1的方法進行操作即可。
6. 資料庫監聽日誌清理
Oracle 11g的監聽日誌和告警日誌分別在$ORACLE_BASE/diag/tnslsnr/hostname/listener/trace和$ORACLE_BASE/diag/tnslsnr/hostname/listener/alert目錄下,前面的hostname根據實際主機名而定,以下對監聽日誌和告警日誌所在目錄簡稱為trace目錄和alert目錄。
trace目錄下產生的日誌檔案比較大,是主要清理的物件,而alert目錄下產生的檔案比較小,基本不需要清除。在trace目錄下監聽日誌是一個名為listener.log的檔案,而在alert目錄下警告日誌是一個名為log.xml的檔案,這個日誌每到11M左右就會分割成一個log_XXXX.xml的日誌,逐漸累加。
刪除監聽日誌的方法如下:
切換到oracle使用者
$ su oracle
$ lsnrctl set log_status off
$ mv listener.log listener.log.bak (備份一下監聽檔案 )
$ lsnrctl set log_status on (這時候會自動建立一個listener.log檔案)
監聽日誌啟動後就會自動建立一個全新的listener.log檔案,備份好的檔案可以刪除。
如果不執行上述的命令直接刪除listener.log,系統是不會建立的。
警告日誌可以用以下命令移動或者刪除(先到指定目錄下,再執行此命令)
find . -mtime +10 -exec mv {} /home/oracle/delete/listenr_log_dest \;
要看警告日誌可以在oracle使用者下執行adrci
$adrci
在adrci目錄下可以輸入help可以看幫助命令。輸入help show alert,可以看到show alert的詳細用法。
show alert
會提示讓你選擇日誌的目錄或者退出
adrci> show alert
Choose the alert log from the following homes to view:
1: diag/rdbms/db1/db1
2: diag/tnslsnr/oracle/listener
Q: to quit
Please select option: 1
輸入1就看db1下的,輸入2就看listener目錄下的,輸入q就退出。
看完alert的日誌後輸入 :q退出,操作方法跟vi命令類似。
SHOW TRACEFILE
可以看到監聽日誌檔案
7. adrci命令使用
11G adrci(Automatic Diagnostic Repository Command Interpreter)清理 ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP目錄下的檔案
PS:補充11g還可用adrci清理: 具體步驟如下
$ adrci
ADRCI: Release 11.2.0.4.0 - Production on Fri Jun 2 18:31:34 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
adrci> show home
ADR Homes:
diag/tnslsnr/db/listener
diag/rdbms/cams/cams
adrci> set homepath diag/rdbms/cams/cams
adrci> help purge
Usage: PURGE [[-i <id1> | <id1> <id2>] |
[-age <mins> [-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]]]:
Purpose: Purge the diagnostic data in the current ADR home. If no
option is specified, the default purging policy will be used.
Options:
[-i id1 | id1 id2]: Users can input a single incident ID, or a
range of incidents to purge.
[-age <mins>]: Users can specify the purging policy either to all
the diagnostic data or the specified type. The data older than <mins>
ago will be purged
[-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]: Users can specify what type of
data to be purged.
Examples:
purge
purge -i 123 456
purge -age 60 -type incident
如果要清理 /u01/app/oracle/diag/rdbms/cams/cams目錄下的內容,可以使用該方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31394774/viewspace-2142507/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫MySQL一般查詢日誌或者慢查詢日誌歷史資料的清理資料庫MySql
- Sql Server2014資料庫清理日誌SQLServer資料庫
- Java日誌框架演化歷史Java框架
- 【LOG】Oracle資料庫清理日誌、跟蹤檔案利器Oracle資料庫
- ELK日誌定期清理 ES索引資料索引
- logrotate自動輪換切割壓縮和清理歷史日誌場景介紹logrotate
- 海豚排程清理:使用 API 輕鬆清理工作流歷史版本記錄,一鍵減少關係日誌和任務定義日誌表的資料量API
- hadoop配置歷史伺服器&&配置日誌聚集Hadoop伺服器
- 資料庫學習筆記1(資料管理歷史)資料庫筆記
- oracle資料庫mmnl日誌很大Oracle資料庫
- 批量匯入歷史檔案到日誌服務
- Spark歷史日誌伺服器開啟及配置Spark伺服器
- oracle11G歸檔日誌管理Oracle
- Oracle歸檔日誌清理Oracle
- docker 容器日誌清理方案Docker
- openGauss資料庫日誌管理指導資料庫
- 瀚高資料庫日誌挖掘方法資料庫
- 【Java雜記】日誌:Java日誌體系,從應用場景到發展歷史Java
- springboot+logback日誌非同步資料庫Spring Boot非同步資料庫
- SQLServer資料庫日誌太大處理方式SQLServer資料庫
- 資料庫altert日誌中的GTX提示資料庫
- 日誌檔案過大清理
- C/C++ Qt 資料庫與Chart實現歷史資料展示C++QT資料庫
- Fabric 1.0原始碼分析(21)Ledger #historydb(歷史資料庫)原始碼資料庫
- 走進資料的歷史
- JAVA日誌發展史Java
- IIS 日誌匯入到資料庫的方法資料庫
- 分析Oracle資料庫日誌檔案(三)EPOracle資料庫
- 分析Oracle資料庫日誌檔案(二)DOOracle資料庫
- 分析Oracle資料庫日誌檔案(一)HBOracle資料庫
- 如何使用MySQL資料庫來分析Apache日誌?MySql資料庫Apache
- oracle資料庫歸檔日誌量陡增分析Oracle資料庫
- Oralce資料庫關閉歸檔日誌並且刪除歸檔日誌資料庫
- zookeeper 清理snapshot及事務日誌
- 世界資料庫史資料庫
- 如何開關資料庫告警日誌及修改日誌級別資料庫
- Oracle11g redo log 建立、新增、刪除(重做日誌組,重做日誌檔案)Oracle
- 儲存所有歷史提交資料下遷移git倉庫Git
- 系統日誌及資料庫相關資訊收集資料庫