Oracle 11g如何清理數(shù)據(jù)庫(kù)的歷史日志詳解
本文主要給大家介紹了關(guān)于Oracle 11g清理數(shù)據(jù)庫(kù)歷史日志的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹
1. 創(chuàng)建存放數(shù)據(jù)庫(kù)待刪除日志文件路徑
用于存放準(zhǔn)備刪除,這里假設(shè)放在/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. 查看不同數(shù)據(jù)庫(kù)日志文件所在路徑
$ sqlplus / as sysdba SQL> show parameter dest
找到audit_file_dest,background_dump_dest,user_dump_dest,core_dump_dest對(duì)應(yīng)的值
audit_file_dest路徑下存放的是數(shù)據(jù)庫(kù)審計(jì)信息文件
background_dump_dest路徑下存放的是數(shù)據(jù)庫(kù)的trace文件和alert日志文件
user_dump_dest路徑下存放的是sql trace之后session的trace文件
core_dump_dest路徑下存放的是應(yīng)用程序日志,除非數(shù)據(jù)庫(kù)出了問(wèn)題,否則基本上不會(huì)有什么信息
下文使用黑體的audit_file_dest,background_dump_dest,user_dump_dest,core_dump_dest代替真實(shí)路徑。
3. 數(shù)據(jù)庫(kù)審計(jì)信息文件清理
進(jìn)入audit_file_dest路徑下,將30天之前的文件移到準(zhǔn)備刪除的文件夾,執(zhí)行命令如下:
(1)執(zhí)行如下命令查看當(dāng)前所在路徑,確定是否無(wú)誤
$ cd audit_file_dest $ pwd
(2)執(zhí)行如下命令查看30天前的審計(jì)文件
$ find audit_file_dest -mtime +30 -name \*.aud
(3)執(zhí)行如下命令,將文件移至待刪除文件夾
$ find audit_file_dest -mtime +30 -name \*.aud -exec mv {} /home/oracle/delete/audit_file_dest \;
(4)查看審計(jì)目錄下30天前的審計(jì)文件以及待刪除文件夾下的文件
$ find audit_file_dest -mtime +30 -name \*.aud $ ls /home/oracle/delete/audit_file_dest
(5)等待2日,確保日志文件移走對(duì)Oracle數(shù)據(jù)庫(kù)運(yùn)行無(wú)影響之后,手工執(zhí)行刪除命令
$ cd /home/oracle/delete $ rm -rf audit_file_dest
4. 數(shù)據(jù)庫(kù)trace文件和alert日志清理
4.1. 清理trace文件
進(jìn)入background_dump_dest路徑下,將30天之前的文件移到準(zhǔn)備刪除的文件夾,執(zhí)行命令如下:
(1)執(zhí)行如下命令查看當(dāng)前所在路徑,確定是否無(wú)誤
$ cd background_dump_dest $ pwd
(2)執(zhí)行如下命令查看30天前的審計(jì)文件
$ find background_dump_dest -mtime +30 -name \*.tr*
(3)執(zhí)行如下命令,將文件移至待刪除文件夾
$ find background_dump_dest -mtime +30 -name \*.tr* -exec mv {} /home/oracle/delete/background_dump_dest \;
(4)查看審計(jì)目錄下30天前的審計(jì)文件以及待刪除文件夾下的文件
$ find background_dump_dest -mtime +30 -name \*.aud $ ls /home/oracle/delete/background_dump_dest
(5)等待2日,確保日志文件移走對(duì)Oracle數(shù)據(jù)庫(kù)運(yùn)行無(wú)影響之后,手工執(zhí)行刪除命令
$ cd /home/oracle/delete $ rm -rf background_dump_dest
4.2. 清理alert日志
alert日志,可以直接刪除alert日志(或echo清理),可自動(dòng)生成,無(wú)需關(guān)閉數(shù)據(jù)庫(kù)(前提最好是將原來(lái)的cp備份)
(1)進(jìn)入日志所在路徑
$ cd background_dump_dest
(2)cp備份
cp alert_$ORACLE_SID.log alert_$ORACLE_SID.log.bak (確保空間足夠)
(3)刪除原來(lái)alert日志文件
方法1:echo >alert_$ORACLE_SID.log
(這個(gè)方法清理后原來(lái)的alert文件還在)
方法2:rm alert_$ORACLE_SID.log
(直接刪除掉)
(4)測(cè)試方法2刪除的alert文件會(huì)自動(dòng)生成
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. 數(shù)據(jù)庫(kù)sql trace文件清理
數(shù)據(jù)庫(kù)默認(rèn)user_dump_dest和background_dump_dest路徑一致,如不一致,參考4.1的方法進(jìn)行操作即可。
6. 數(shù)據(jù)庫(kù)監(jiān)聽(tīng)日志清理
Oracle 11g的監(jiān)聽(tīng)日志和告警日志分別在$ORACLE_BASE/diag/tnslsnr/hostname/listener/trace和$ORACLE_BASE/diag/tnslsnr/hostname/listener/alert目錄下,前面的hostname根據(jù)實(shí)際主機(jī)名而定,以下對(duì)監(jiān)聽(tīng)日志和告警日志所在目錄簡(jiǎn)稱(chēng)為trace目錄和alert目錄。
trace目錄下產(chǎn)生的日志文件比較大,是主要清理的對(duì)象,而alert目錄下產(chǎn)生的文件比較小,基本不需要清除。在trace目錄下監(jiān)聽(tīng)日志是一個(gè)名為listener.log的文件,而在alert目錄下警告日志是一個(gè)名為log.xml的文件,這個(gè)日志每到11M左右就會(huì)分割成一個(gè)log_XXXX.xml的日志,逐漸累加。
刪除監(jiān)聽(tīng)日志的方法如下:
切換到oracle用戶
$ su oracle $ lsnrctl set log_status off $ mv listener.log listener.log.bak (備份一下監(jiān)聽(tīng)文件 ) $ lsnrctl set log_status on (這時(shí)候會(huì)自動(dòng)創(chuàng)建一個(gè)listener.log文件)
監(jiān)聽(tīng)日志啟動(dòng)后就會(huì)自動(dòng)創(chuàng)建一個(gè)全新的listener.log文件,備份好的文件可以刪除。
如果不執(zhí)行上述的命令直接刪除listener.log,系統(tǒng)是不會(huì)創(chuàng)建的。
警告日志可以用以下命令移動(dòng)或者刪除(先到指定目錄下,再執(zhí)行此命令)
find . -mtime +10 -exec mv {} /home/oracle/delete/listenr_log_dest \;
要看警告日志可以在oracle用戶下執(zhí)行adrci
$adrci
在adrci目錄下可以輸入help可以看幫助命令。輸入help show alert,可以看到show alert的詳細(xì)用法。
show alert
會(huì)提示讓你選擇日志的目錄或者退出
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命令類(lèi)似。
SHOW TRACEFILE
可以看到監(jiān)聽(tīng)日志文件
7. adrci命令使用
11G adrci(Automatic Diagnostic Repository Command Interpreter)清理 ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP目錄下的文件
PS:補(bǔ)充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目錄下的內(nèi)容,可以使用該方法。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持
相關(guān)文章
Oracle數(shù)據(jù)庫(kù)19C的安裝與配置指南(2022年最新版)
在Oracle數(shù)據(jù)庫(kù)的發(fā)展中,數(shù)據(jù)庫(kù)一直處于不斷升級(jí)狀態(tài),下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)19C的安裝與配置指南的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06在Oracle的函數(shù)中,返回表類(lèi)型的語(yǔ)句
在SQL Server中有表變量,可以在function中方便地返回,習(xí)慣SQL Server或者需要把腳本從SQL Server轉(zhuǎn)到Oracle中的朋友可以都會(huì)碰到這個(gè)問(wèn)題2012-10-10Oracle數(shù)據(jù)庫(kù)系統(tǒng)緊急故障處理方法
Oracle數(shù)據(jù)庫(kù)系統(tǒng)緊急故障處理方法...2007-03-03Oracle查詢優(yōu)化日期運(yùn)算實(shí)例詳解
這篇文章主要介紹了Oracle查詢優(yōu)化日期運(yùn)算實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05Oracle建表與創(chuàng)建序列詳細(xì)實(shí)例
在oracle中sequence就是所謂的序列號(hào),每次取的時(shí)候它會(huì)自動(dòng)增長(zhǎng),通常用在須要按序列號(hào)排序的地方,下面這篇文章主要給大家介紹了關(guān)于Oracle建表與創(chuàng)建序列的相關(guān)資料,需要的朋友可以參考下2023-06-06Oracle出現(xiàn)超出打開(kāi)游標(biāo)最大數(shù)的兩種解決方法
當(dāng)Oracle數(shù)據(jù)庫(kù)中打開(kāi)的游標(biāo)數(shù)超過(guò)了數(shù)據(jù)庫(kù)的最大游標(biāo)數(shù)限制時(shí),就會(huì)出現(xiàn)“超出打開(kāi)游標(biāo)最大數(shù)”的錯(cuò)誤,本文給大家介紹了幾種常見(jiàn)的解決方法,需要的朋友可以參考下2024-02-02Oracle怎么刪除數(shù)據(jù),Oracle數(shù)據(jù)刪除的三種方式
這篇文章主要介紹了Oracle中刪除數(shù)據(jù)的三種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02使用Oracle進(jìn)行數(shù)據(jù)庫(kù)備份與還原
這篇文章詳細(xì)介紹了使用Oracle進(jìn)行數(shù)據(jù)庫(kù)備份與還原,本文通過(guò)示例代碼講解的非常詳細(xì),有一定的參考價(jià)值,感興趣的同學(xué)可以參考閱讀2023-04-04Oracle sql批量插入多條數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了Oracle sql批量插入多條數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07