標籤:oracle archivelog
最近一段時間,有收到一台Oracle伺服器的串連警示, 剛剛開始還以為是Oracle的監聽被關閉導致,結果連上伺服器看下Oracle的監聽進程正常,自己串連一次發現有報ORA-00257錯,又去監控系統中在看下日誌再用sqlplus連上Oracle後查了下,知道是Oracle的歸檔日誌寫滿閃回區導致Oracle串連異常,查看歸檔日誌方法如下:
SQL> show parameter db_recovery_file_dest;#查看歸檔日誌的實體路徑及閃回區的大小SQL> select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable, number_of_files as "number" from v$flash_recovery_area_usage; #查詢閃回區利用率
用rman工具連上Oracle進去清理一些舊的曆史歸檔日誌:
[[email protected] ~]$ rman target /RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE ‘SYSDATE-30‘;…略…Do you really want to delete the above objects (enter YES or NO)? YES…略…RMAN> quit
在這裡是刪除30天之前的歸檔日誌,當然可以根據實際情況修改,在串連一次
在Oracle下歸檔日誌可以在其他線上日誌都丟失的情況下用來資料恢複,所以一般在生產環境上都有開啟,但是如果一些沒有用到的或者是曆史的歸檔日誌在沒有清理的情況下寫滿閃回區都會導致串連異常,當然在平時就需要注意清理Oracle的歸檔日誌清理,就順便寫了一個指令碼每天定時清理Oracle的歸檔日誌:
#!/bin/bash#remove_archivelog.shsu - oracle -c "rman target / <<EOFDELETE ARCHIVELOG ALL COMPLETED BEFORE ‘SYSDATE-30‘;YESexitEOF"
當然可以根據實際情況保留所需要的歸檔日誌時間
本文出自 “Jim的技術隨筆” 部落格,謝絕轉載!
Oracle歸檔日誌滿了導致Oracle串連(ORA-00257)報錯處理