歸檔日志激增的危害是巨大的,,最嚴重的結果就是數(shù)據(jù)庫無法正常工作,,導致整個系統(tǒng)無法正常工作,其次就算數(shù)據(jù)庫可以正常工作,,但激增的歸檔會對磁盤產(chǎn)生大量消耗,導致性能下降,。 select to_char(first_time,'mmdd hh24'),count(*) from v$log_history group by to_char(first_time,'mmdd hh24') order by 1;
col program for a30 col machine for a30 select a.sid,a.logon_time,a.username,a.program,a.machine,a.status,round(b.value/1024/1024) mb from v$session a,(select * from (select * from v$sesstat where statistic# = (select statistic# from v$statname where name='redo size') order by value desc) where rownum<=100) b where a.sid=b.sid;
3.截取歸檔日志激增時候的AWR報告,,在sql統(tǒng)計中仔細排查dml類型sql,并查詢嫌疑的sql的執(zhí)行計劃,、統(tǒng)計信息等(@?/rdbms/admin/awrsqrpi),,還可以找出嫌疑sql所對應的表信息是否有異常。還可以對應之前正常時候其sql的統(tǒng)計信息進行對比,。
select sql_id,sql_text from v$open_cursor where sid=xxx;
5.查看異常表的信息: select avg_row_len from dba_tables where table_name=upper('table_name'); /*表的長度(字節(jié))*/ select index_name from dba_indexes where table_name=upper('table_name'); /*其擁有的索引,,索引越多,,歸檔越多*/
6.挖掘歸檔內(nèi)容: exec dbms_logmnr.ADD_LOGFILE('/datavg/archive/1_11111.dbf'); exec DBMS_LOGMNR.START_LOGMNR; select substr(sql_redo,1,30),count(*) from v$logmnr_contents group by substr(sql_redo,1,30) ;
通過以上的步驟,異常的sql,、異常的會話,、異常的表,和實施人員或者開發(fā)人員共同探討一下,,基本可以確定是什么問題導致,,然后修正即可。 |
|