ORACLE rman備份之ORA-19809 ORA-19804
作業系統:REDHAT linux 5.6
資料庫版本:11.2.0.3
channel ORA_DISK_1: starting piece 1 at 07-MAR-16
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/07/2016 11:36:24
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 67108864 bytes disk space from 4322230272 limit
continuing other job steps, job failed will not be re-run
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 07-MAR-16
channel ORA_DISK_1: finished piece 1 at 07-MAR-16
piece handle=/opt/ora_install/fast_recovery_area/CSWG/backupset/2016_03_07/o1_mf_ncsnf_TAG20160307T112117_cfsxssb7_.bkp tag=TAG20160307T112117 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/07/2016 11:36:24
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 67108864 bytes disk space from 4322230272 limit
這個問題較明顯,問題原因就是資料庫的RMAN備份路徑指定到了閃回區,經過與系統負責人溝通發現RMAN備份指令碼沒有指定備份路徑,所以備份就寫到閃回區了。
透過下面命令查詢當前資料庫的閃回區目錄,可以發現閃回區目錄下,Oracle允許存放的檔案空間確實很小,是預設的4G
SQL> show parameter db_recovery_file;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /opt/ora_install/fast_recovery_area
db_recovery_file_dest_size big integer 4122M
檢視閃回區目錄存放的檔案資訊,可以發現,閃回目錄下只有一個1MB的備份集,並沒有達到4G,透過SQLPLUS查詢也能印證。
[oracle][/opt/ora_install/fast_recovery_area/CSWG/backupset/2016_03_04]$ls -al
total 0
drwxr-x--- 2 oracle oinstall 256 Mar 04 00:14 .
drwxr-x--- 4 oracle oinstall 256 Mar 07 11:21 ..
-rw-r----- 1 oracle oinstall 1114112 Mar 04 00:14 o1_mf_ncsnf_TAG20160304T000004_cfjrq8r2_.bkp
SQL> select * from v$recovery_file_dest;
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
------------------------------------------- ----------- ---------- ----------------- ---------------
/opt/ora_install/fast_recovery_area 4322230272 2211840
這一點比較有意思,如果閃回區滿,透過rm -rf刪除閃回區目錄下的檔案,ORACLE資料庫還是會不停的告警閃回目錄滿,其實需要我們到rman工作臺執行刪除備份集及歸檔同步catalog庫記錄資訊。
[oracle][/opt/ora_install/fast_recovery_area/CSWG/backupset/2016_03_04]$rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Mar 8 09:33:11 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database:**** (DBID=3404523328)
RMAN> crosscheck archivelog all ;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=2280 device type=DISK
validation failed for archived log
archived log file name=/opt/ora_log/1_167_905310595.dbf RECID=3 STAMP=905401082
validation failed for archived log
archived log file name=/opt/ora_log/1_168_905310595.dbf RECID=1 STAMP=905401081
validation failed for archived log
.
.
.
validation succeeded for archived log
archived log file name=/opt/ora_log/1_642_905310595.dbf RECID=476 STAMP=905937113
Crosschecked 476 objects
RMAN> delete archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=2280 device type=DISK
List of Archived Log Copies for database with db_unique_name CSWG
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - ---------
3 1 167 X 02-MAR-16
Name: /opt/ora_log/1_167_905310595.dbf
Do you really want to delete the above objects (enter YES or NO)? yes
deleted archived log
archived log file name=/opt/ora_log/1_167_905310595.dbf RECID=3 STAMP=905401082
deleted archived log
.
.
.
deleted archived log
archived log file name=/opt/ora_log/1_643_905310595.dbf RECID=477 STAMP=905938535
Deleted 477 objects
RMAN> exit
Recovery Manager complete.
還有一個解決方法,就是調大閃回區的空間限制,增加db_recovery_file_dest_size,需要注意的是需要重啟資料庫。
SQL> startup mount;
.
.
SQL> alter system set db_recovery_file_dest_size=20G;
System altered.
SQL> alter database open;
Database altered.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2051204/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- rman 備份中ORA-19809、ORA-19804問題解決
- oracle之rman備份Oracle
- Oracle備份之RMAN工具(四)Oracle
- Oracle備份之RMAN工具(三)Oracle
- Oracle備份之RMAN工具(二)Oracle
- Oracle備份之RMAN工具(一)Oracle
- 揭祕ORACLE備份之----RMAN之二(備份方式)Oracle
- 揭秘ORACLE備份之----RMAN之五(CATALOG)Oracle
- 探索ORACLE之RMAN_05備份策略Oracle
- Oracle RMAN 增量備份Oracle
- oracle rman備份命令Oracle
- 【轉】Oracle rman備份Oracle
- RMAN備份時出現ORA-19809: limit exceeded for recovery filesMIT
- 揭祕ORACLE備份之----RMAN之五(CATALOG)Oracle
- Oracle 備份恢復篇之RMAN catalogOracle
- Oracle 11g RMAN備份-增量備份Oracle
- 揭祕ORACLE備份之----RMAN之四(塊跟蹤)Oracle
- Oracle RMAN備份實戰Oracle
- Oracle OCP(60):RMAN 備份Oracle
- oracle RMAN備份指令碼Oracle指令碼
- RMAN備份與恢復之加密備份加密
- ORACLE rman備份之ORA-00230Oracle
- Oracle資料庫備份與恢復之RMANOracle資料庫
- Oracle資料庫RMAN小結之備份部分Oracle資料庫
- Oracle 11g RMAN備份-備份標籤Oracle
- RMAN筆記之備份集和備份片筆記
- [Oracle] rman備份指令碼(2)Oracle指令碼
- ORACLE RMAN備份及還原Oracle
- oracle rman備份指令碼收集Oracle指令碼
- Oracle裡邏輯備份、物理備份、Rman備份的區別Oracle
- Oracle備份及備份策略及基於Linux下 Oracle 備份策略(RMAN)OracleLinux
- RMAN加密備份之口令加密加密
- RMAN備份之備份多個備份集到帶庫(三)
- RMAN備份之備份多個備份集到帶庫(二)
- RMAN備份之備份多個備份集到帶庫(一)
- Oracle 11g RMAN備份-一致備份Oracle
- 揭祕ORACLE備份之----RMAN之一(引數配置)Oracle
- RMAN備份、恢復實驗室 之 備份篇 【rman: can't open target】