ORA-00257歸檔日誌已滿解決
2016年4月3日 14:30
客戶環境:Linux+ RAC
用戶端帳號登入,報錯提示:ORA-00257: archiver error. Connect internal only, until freed
使用PUTTY串連伺服器
進入Oracle賬戶:
[root@hisrac2 ~]# su - oracle
[oracle@hisrac2 ~]$ sqlplus
SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 4月 3 15:06:57 2016
Copyright (c) 1982, 2007, Oracle. ALL Rights Reserved.
SQL>conn / as sysdba;
Connected.
SQL>Archive log list;
Database log mode Archive Mode
Automatic archive Enabled
Archive destination /u01/app/oracle/archivelog
Oldest online log sequence 1716
[oracle@hisrac2 ~]$ RMAN TARGET/
復原管理員: Release 11.2.0.1.0 - Production on 星期二 4月 5 15:23:09 2016
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
串連到目標資料庫: ORCL (DBID=1285975621)
--清除45天之前的歸檔日誌;
RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-45';
使用目標資料庫控制檔案替代恢複目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=30 裝置類型=DISK
db_unique_name 為 ORCL 的資料庫的歸檔日誌副本列表
=====================================================================
關鍵字 線程式列 S 時間下限
------- ---- ------- - ----------
173 1 142 A 31-3月 -16
名稱: \u01\app\oracle\archivelog\2016_04_02\O1_MF_1_142_CHYQF6FK_.ARC
174 1 143 A 01-4月 -16
名稱: \u01\app\oracle\archivelog\\2016_04_02\O1_MF_1_143_CHYQFH52_.ARC
175 1 144 A 01-4月 -16
名稱: \u01\app\oracle\archivelog\2016_04_02\O1_MF_1_144_CHYQH98G_.ARC
176 1 145 A 02-4月 -16
名稱: \u01\app\oracle\archivelog\2016_04_02\O1_MF_1_145_CHYQNRXX_.ARC
177 1 146 A 02-4月 -16
名稱:\u01\app\oracle\archivelog\016_04_02\O1_MF_1_146_CHYQNX6S_.ARC
178 1 147 A 02-4月 -16
名稱: \u01\app\oracle\archivelog\2016_04_02\O1_MF_1_147_CHYQRC6C_.ARC
………
是否確定要刪除以上對象 (輸入 YES 或 NO)?YES
已刪除的歸檔日誌
歸檔記錄檔名=\u01\app\oracle\archivelog\2016_04_02\O1_MF_1_142_CHYQF6FK_.ARC RECID=173 STAMP=908113836
已刪除的歸檔日誌
歸檔記錄檔名=\u01\app\oracle\archivelog\2016_04_02\O1_MF_1_143_CHYQFH52_.ARC RECID=174 STAMP=908113848
……….
XX 對象已刪除
RMAN>
用戶端帳號重新登入,正常。
處理總結:
遇到報錯提示:ORA-00257: archiver error. Connect internal only, until freed
--先查詢ARCHIVED LOG的使用率,結果超過99%時說明歸檔日誌已經滿了
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE where file_type='ARCHIVED LOG';
--(1).處理方法一:增大歸檔日誌路徑限額大小
--查看歸檔日誌路徑限額
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------- ------------ ------------------------------
db_recovery_file_dest string D:\app\Administrator\flash_recovery_area
db_recovery_file_dest_size big integer 4000M
--可以調整db_recovery_file_dest_size大小(10*1024*1024*1024),10GB
SQL> alter system set db_recovery_file_dest_size=10737418240;
--(2).處理方法一:刪除歸檔記錄檔
--RMAN登入交叉檢查
RMAN> crosscheck archivelog all;
--刪除到期歸檔日誌
RMAN> delete expired archivelog all;
--刪除指定時間以前的歸檔日誌...
RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
以下附件RMAN_DelArc.rar
個人製作了一個windows環境下的.bat的檔案,功能如下
(1).雙擊可刪除所有歸檔日誌;
(2).並產生一個記錄檔;
(3).每次執行會清空記錄檔內容,重新寫入組建記錄檔內容。