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)稱為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命令類似。
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下一條SQL語(yǔ)句的優(yōu)化過(guò)程(比較詳細(xì))
很簡(jiǎn)單的一次調(diào)整,語(yǔ)句加了適當(dāng)?shù)乃饕笮阅芫陀写蠓奶嵘.?dāng)時(shí)看到這條語(yǔ)句的時(shí)候,第一感覺(jué)就是執(zhí)行效率肯定低下。語(yǔ)句的功能是求某一客戶當(dāng)天產(chǎn)品的總銷(xiāo)量。2010-04-04
如何在Oracle數(shù)據(jù)庫(kù)中更新CLOB字段
在Oracle數(shù)據(jù)庫(kù)中,Blob和Clob分別是兩種用來(lái)存儲(chǔ)大數(shù)據(jù)的字段類型,下面這篇文章主要給大家介紹了關(guān)于如何在Oracle數(shù)據(jù)庫(kù)中更新CLOB字段的相關(guān)資料,需要的朋友可以參考下2024-05-05
Oracle中多表關(guān)聯(lián)批量插入批量更新與批量刪除操作
這篇文章主要介紹了Oracle中多表關(guān)聯(lián)批量插入,批量更新與批量刪除操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
Oracle 實(shí)現(xiàn)將查詢結(jié)果保存到文本txt中
這篇文章主要介紹了Oracle 實(shí)現(xiàn)將查詢結(jié)果保存到文本txt中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
ORACLE時(shí)間函數(shù)(SYSDATE)深入理解
有些朋友對(duì)ORACLE時(shí)間函數(shù)理解不是很透徹,接下來(lái)講詳細(xì)介紹,希望可以幫助到你們2012-12-12
Oracle數(shù)據(jù)庫(kù)ORA-12560錯(cuò)誤問(wèn)題的解決辦法
這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)ORA-12560錯(cuò)誤解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
詳解Oracle如何將txt文件中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)
這篇文章主要介紹了Oracle如何將txt文件中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),文中通過(guò)代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-03-03

