Oracle歸檔日志爆滿問題的處理方法
最近客戶單位的oracle數(shù)據(jù)庫出了問題,經(jīng)常出現(xiàn)無法連接,報(bào)錯(cuò)提示 ORA-00257: archiver error, Connect internal only, until freed.,手動(dòng)清除歸檔日志后可以恢復(fù)訪問,但是過不了幾天依舊會(huì)爆滿,每日生成的歸檔日志很大。經(jīng)過詳細(xì)排查發(fā)現(xiàn) sysaux 表空間使用率達(dá)到 99.9%,清理該表空間后日志恢復(fù)正常!
一、先清理歸檔日志使得數(shù)據(jù)庫能夠正常連接
[root@rac1 ~]# su - grid grid@+ASM1:/home/grid$ asmcmd lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 409600 127 0 127 0 N ARCH/ MOUNTED EXTERN N 512 4096 1048576 1662976 997139 0 997139 0 N DATA/ MOUNTED NORMAL N 512 4096 1048576 30720 29794 10240 9777 0 Y OCRDG/
上述結(jié)果可以看到表空間僅僅剩余 127
MB 可用。需要立刻釋放空間。
使用rman工具 執(zhí)行 刪除2天前的歸檔日志
delete archivelog until time "sysdate-2";
[root@rac1 ~]# su - oracle Password: oracle@orcl1:/home/oracle$rman target / Recovery Manager: Release 11.2.0.4.0 Production on Mon Oct 14 13:12:18 2024 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1556520972) RMAN> delete archivelog until time "sysdate-2";
二、排查問題
- 查看歸檔日志每天生成情況
發(fā)現(xiàn)每天都生成70~80G的日志數(shù)據(jù),正常應(yīng)該2-8G;
RMAN> exit Recovery Manager complete. oracle@orcl1:/home/oracle$sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Mon Oct 14 13:12:32 2024 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> SQL> SELECT TRUNC(FIRST_TIME) "TIME",SUM(BLOCK_SIZE * BLOCKS) / 1024 / 1024 / 1024 "SIZE(GB)"FROM V$ARCHIVED_LOG GROUP BY TRUNC(FIRST_TIME) order by TRUNC(FIRST_T); TIME SIZE(GB) ------------ ---------- 03-OCT-24 75.8037338 04-OCT-24 65.9294729 05-OCT-24 65.2526731 06-OCT-24 71.6385746 07-OCT-24 212.996218 08-OCT-24 138.052895 09-OCT-24 84.8484373 10-OCT-24 262.300638 11-OCT-24 74.3476553 12-OCT-24 70.9598064 10 rows selected.
查看數(shù)據(jù)庫表空間使用情況
發(fā)現(xiàn) SYSAUX 表空間使用率達(dá)到 99.84%
SQL> SELECT F.TABLESPACE_NAME TABLESPACE_NAME,ROUND(((D.SUMBYTES + D.EXTEND_BYTES) / 1024 / 1024 / 1024), 2) TOTAL_G, ROUND((F.SUMBYTES + D.EXTEND_BYTES) / 1024 / 1024 / 1024, 2) FREE_G, ROUND((D.SUMBYTES - F.SUMBYTES) / 1024 / 1024 / 1024, 2) USED_G, ROUND((D.SUMBYTES - F.SUMBYTES) * 100 / (D.SUMBYTES + D.EXTEND_BYTES), 2) USED_PERCENT FROM (SELECT TABLESPACE_NAME, SUM(BYTES) SUMBYTES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT TABLESPACE_NAME, SUM(AA.BYTES) SUMBYTES, SUM(AA.EXTEND_BYTES) EXTEND_BYTES FROM (SELECT NVL(CASE WHEN AUTOEXTENSIBLE = 'YES' THEN (CASE WHEN (MAXBYTES - BYTES) >= 0 THEN (MAXBYTES - BYTES) END) END, 0) EXTEND_BYTES, TABLESPACE_NAME, BYTES FROM DBA_DATA_FILES) AA GROUP BY TABLESPACE_NAME) D WHERE F.TABLESPACE_NAME = D.TABLESPACE_NAME ORDER BY USED_PERCENT DESC; TABLESPACE_NAME TOTAL_G FREE_G USED_G USED_PERCENT ------------------------------ ---------- ---------- ---------- ------------ USERS 759.75 57.51 702.24 92.43 SYSAUX 62 .10 61.90 99.84 SYSTEM 32 31.01 .99 3.09 UNDOTBS2 32 31.64 .36 1.12 UNDOTBS1 32 31.94 .06 .18
- 查找歸sysaux空間占用大于200mb的對(duì)象并生成刪除sql
查出的對(duì)象屬于 sys用戶 請(qǐng)使用此賬戶執(zhí)行如下sql語句的 'OPSQL’字段語句完成清理工作。
SQL> select distinct 'truncate table ' || segment_name || ';' as OPSQL, s.bytes / 1024 / 1024 MB from dba_segments s where s.segment_name like 'WRH$%' and segment_type in ('TABLE PARTITION', 'TABLE') and s.bytes / 1024 / 1024 > 200 order by s.bytes / 1024 / 1024 desc; OPSQL -------------------------------------------------------------------------------- MB ---------- truncate table WRH$_ACTIVE_SESSION_HISTORY; 12436 truncate table WRH$_EVENT_HISTOGRAM; 1984 truncate table WRH$_LATCH_MISSES_SUMMARY; 1763 OPSQL -------------------------------------------------------------------------------- MB ---------- truncate table WRH$_SYSSTAT; 1600 truncate table WRH$_SEG_STAT; 1280 truncate table WRH$_PARAMETER; 1152 OPSQL -------------------------------------------------------------------------------- MB ---------- truncate table WRH$_SYSTEM_EVENT; 978 truncate table WRH$_SQL_PLAN; 864 truncate table WRH$_DLM_MISC; 456 OPSQL -------------------------------------------------------------------------------- MB ---------- truncate table WRH$_MVPARAMETER; 400 truncate table WRH$_SERVICE_STAT; 312 truncate table WRH$_ROWCACHE_SUMMARY; 280 OPSQL -------------------------------------------------------------------------------- MB ---------- truncate table WRH$_SERVICE_WAIT_CLASS; 144 truncate table WRH$_SYSMETRIC_HISTORY; 144 truncate table WRH$_DB_CACHE_ADVICE; 120 OPSQL -------------------------------------------------------------------------------- MB ---------- truncate table WRH$_SQLTEXT; 104 16 rows selected. SQL>
三、處理問題
挑選較大的進(jìn)行清理。如下
SQL> truncate table WRH$_ACTIVE_SESSION_HISTORY; Table has bing truncated. SQL> truncate table WRH$_EVENT_HISTOGRAM; Table has bing truncated. SQL>
四、清理后效果
清理后可能導(dǎo)致客戶端掉線情況,重新登錄客戶端即可。
查看表空間使用情況 如下 SYSAUX
表空間使用率為 50%
多。
隔兩天后觀察歸檔日志生成情況如下,已經(jīng)不在暴增,客戶表示非常滿意!
以上就是Oracle歸檔日志爆滿問題的處理方法的詳細(xì)內(nèi)容,更多關(guān)于Oracle歸檔日志爆滿的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Oracle 臨時(shí)表空間SQL語句的實(shí)現(xiàn)
臨時(shí)表空間用來管理數(shù)據(jù)庫排序操作以及用于存儲(chǔ)臨時(shí)表、中間排序結(jié)果等臨時(shí)對(duì)象,本文主要介紹了Oracle 臨時(shí)表空間SQL語句的實(shí)現(xiàn),感興趣的可以了解一下2021-09-09Oracle11g r2 卸載干凈重裝的詳細(xì)教程(親測(cè)有效已重裝過)
Oracle 的安裝和卸載相較于其他 mysql 要麻煩些,小編特此分享一篇教程關(guān)于Oracle11g 徹底卸載干凈并重新安裝,有需要的朋友可以參考下本文2021-06-06oracle中utl_file包讀寫文件操作實(shí)例學(xué)習(xí)
在oracle中utl_file包提供了一些操作文本文件的函數(shù)和過程,接下來和大家一起學(xué)習(xí)他的基本操作,感興趣的你可以參考下哈希望可以幫助到你2013-03-03ORACLE數(shù)據(jù)庫對(duì)long類型字段進(jìn)行模糊匹配的解決思路
這篇文章主要介紹了ORACLE數(shù)據(jù)庫對(duì)long類型字段進(jìn)行模糊匹配的解決思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04oracle—SQL技巧之(一)連續(xù)記錄查詢sql案例測(cè)試
有這樣一個(gè)需求:需要查詢出某個(gè)客戶某一年那些天是有連續(xù)辦理過業(yè)務(wù),本文給予sql實(shí)現(xiàn)語句并測(cè)試,感興趣的朋友可以了解下2013-01-01Oracle 存儲(chǔ)過程總結(jié) 二、字符串處理相關(guān)函數(shù)
項(xiàng)目中有涉及存儲(chǔ)過程對(duì)字符串的處理,所以就將在網(wǎng)上查找到的資料匯總,做一個(gè)信息拼接式的總結(jié)。2009-07-07Oracle常用函數(shù)Trunc及Trunc函數(shù)用法講解
這篇文章主要介紹了Oracle常用函數(shù)Trunc及Trunc函數(shù)用法講解,需要的朋友可以參考下2017-11-11Oracle 實(shí)現(xiàn)類似SQL Server中自增字段的一個(gè)辦法
由于Oracle中沒有類似SQL Server中的自增字段,所以我們?nèi)绻胍ㄟ^設(shè)定類似ID性質(zhì)的唯一列的話,需要借助Oracle的sequence,先建立一個(gè)序列,然后在每次插入數(shù)據(jù)的時(shí)候,通過前觸發(fā)器來更新ID值,并將序列的序號(hào)加1,這樣的迂回方式來實(shí)現(xiàn)。2009-07-07