在網(wǎng)上查了幾天的資料,嘗試綜合清除告警日志內(nèi)容及建外部表的方式來(lái)解決這一問(wèn)題。
一:備份并清除告警日志內(nèi)容
將每天的告警日志備份好,然后進(jìn)行清除。
1:備份報(bào)警日志
在$ORACLE_HOME/SID/bdump/ 目錄下,
按日期備份alert_ORACLE_你的實(shí)例名.LOG這個(gè)文件,如:alert_ORACLE_orcl_201408111639_bak.LOG。
2:清除日志內(nèi)容
打開(kāi)報(bào)警日志文件,用true > 文件名 可清除掉里面的內(nèi)容
具體示例:
假如,我現(xiàn)在第一次進(jìn)行該設(shè)置,我先把現(xiàn)有的告警日志進(jìn)行備份,如:
--備份文件名稱:今天16點(diǎn)24分前的告警日志信息
[oracle@rac2 bdump]$ cp alert_orcl2.log alert_orcl2_before_201408111624_bak.log
-清空?qǐng)?bào)警日志
[oracle@rac2 bdump]$ true > alert_orcl2.log
現(xiàn)在告警日志是空的。
切換下歸檔日志,檢查報(bào)警日志里是否出現(xiàn)了新內(nèi)容:
SQL> alter system switch logfile;System altered.
則現(xiàn)在alert_orcl2.log記錄的是2014年8月11日16點(diǎn)24分后至你下次對(duì)報(bào)警日志進(jìn)行備份,截取前的信息。
二:建外部表查看報(bào)警日志錯(cuò)誤
如果已建立了一個(gè)用戶,并賦相應(yīng)的權(quán)限,所以直接建立目錄對(duì)象并建立外部表就可以了。
1.建立目錄對(duì)象
SQL> conn test / 123
Connected.SQL> create directory bdump as '/oracle/u01/app/oracle/admin/db2/bdump';Directory created.
2.建立外部表
SQL> create table alert_log(text varchar2(400))organization external(type oracle_loaderdefault directory bdumpaccess parameters(records delimited by newline)location('alert_db2.log'));3.測(cè)試首先查看能否查到alert_db2.log的內(nèi)容
SQL> select * from alert_log where rownum < 10;TEXT--------------------------------------------------------------------------------Thu Jun 11 00:51:46 2009Starting ORACLE instance (normal)Cannot determine all dependent dynamic libraries for /proc/self/exeUnable to find dynamic library libocr10.so in search pathsRPATH = /ade/aime1_build2101/oracle/has/lib/:/ade/aime1_build2101/oracle/lib/:/ade/aime1_build2101/oracle/has/lib/:LD_LIBRARY_PATH is not set!The default library directories are /lib and /usr/libUnable to find dynamic library libocrb10.so in search pathsUnable to find dynamic library libocrutl10.so in search paths9 rows selected.
測(cè)試成功
然后我們測(cè)試查報(bào)警信息'ORA-%'
SQL> select * from alert_log where text like 'ORA-%';TEXT--------------------------------------------------------------------------------ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2.dbf'ORA-27037: unable to obtain file statusORA-205 signalled during: ALTER DATABASE MOUNT...ORA-00301: error in adding log file '/home/oracle/oracle/oradata/testdb/redo01.log' - file cannot be createdORA-27040: file create errorORA-1501 signalled during: CREATE DATABASE db2ORA-00200: control file could not be createdTEXT--------------------------------------------------------------------------------ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2.dbf'ORA-27038: created file already existsORA-1501 signalled during: CREATE DATABASE db2ORA-00200: control file could not be createdORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2.dbf'ORA-27038: created file already existsORA-1501 signalled during: CREATE DATABASE db2
--假如,你的報(bào)警日志文件只包含今天的信息(可以通過(guò)備份并清除告警日志內(nèi)容實(shí)現(xiàn)),則通過(guò)外部表可以查到當(dāng)天產(chǎn)生了哪些錯(cuò)誤。
新聞熱點(diǎn)
疑難解答
圖片精選