程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORA-19809:超出了恢復文件數的限制

ORA-19809:超出了恢復文件數的限制

編輯:Oracle教程

ORA-19809: 超出了恢復文件數的限制

一、故障現象:
RMAN> backup database;
啟動 backup 於 05-10月-14
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=158 devtype=DISK
通道 ORA_DISK_1: 啟動全部數據文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數據文件
輸入數據文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
輸入數據文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\HW_WH01.DBF
輸入數據文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
輸入數據文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
輸入數據文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\GZ_DATA01.DBF
輸入數據文件 fno=00007 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SZ_DATA01.DBF
輸入數據文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 05-10月-14
MAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 12/08/2014 16:38:37 上) 失敗
ORA-19809: 超出了恢復文件數的限制
ORA-19804: 無法回收 52428800 字節磁盤空間 (從 2147483648 限制中)
繼續執行其它作業步驟, 將不重新運行失敗的作業
通道 ORA_DISK_1: 啟動全部數據文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數據文件
備份集中包括當前控制文件
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 05-10月-14
通道 ORA_DISK_1: 已完成段 1 於 05-10月-14
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2014_12_08\O1_MF_NCSNF_TAG20141208T163642_7G0XWHOH_.BKP 標記=TAG20141208T163642 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================

二、故障分析
在使用rman進行數據庫全備份時出現ORA-19809: 超出了恢復文件數的限制錯誤,查報錯說明如下:
ORA-19809: limit exceeded for recovery files
Cause: The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_
SIZE was exceeded.
Action: The error is accompanied by 19804. See message 19804 for further details.
在這裡我們可以看到,文檔明確指出了ORA-19809錯誤是伴隨著ORA-19804出現,接著我們看下ORA-19804的出現原因及解決方案:
ORA-19804: cannot reclaim string bytes disk space from string limit
Cause: Oracle cannot reclaim disk space of specified bytes from the DB_RECOVERY_FILE_DEST_SIZE limit.
Action: There are five possible solutions: 1) Take frequent backup of recovery area
using RMAN. 2) Consider changing RMAN retention policy. 3) Consider changing
RMAN archivelog deletion policy. 4) Add disk space and increase DB_
RECOVERY_FILE_DEST_SIZE. 5) Delete files from recovery area using RMAN.
以上已經明確給出導致這個錯誤的原因及五點解決方案
最簡單也是最常用的辦法就是擴大DB_RECOVERY_FILE_DEST_SIZE的設置
首先查看數據庫的當前設置:
SYS @ ORCL(159)> archive log list
數據庫日志模式 存檔模式
自動存檔 啟用
存檔終點 USE_DB_RECOVERY_FILE_DEST
最早的聯機日志序列 163
下一個存檔日志序列 165
當前日志序列 165
SYS @ ORCL(159)>

可以看到使用了數據庫默認的閃回區用來存儲歸檔,接下來我們看下閃回區的位置,大小及使用情況
SYS @ ORCL(159)> show parameter db_recovery_file_dest
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------------------------
db_recovery_file_dest string D:\oracle\product\10.2.0/flash_recovery_area
db_recovery_file_dest_size big integer 2G
SYS @ ORCL(159)> select NAME,SPACE_LIMIT/1024/1024 "total(MB)",SPACE_USED/1024/1024 "used(MB)"
from v$recovery_file_dest;
NAME total(MB) used(MB)
------------------------------------------------ ---------- ----------
D:\oracle\product\10.2.0/flash_recovery_area 3072 2078.77051
對於db_recovery_file_dest_size,系統默認設置為2G大小,當該空間不夠容納備份集則會導致上面見到的錯誤。

三、解決方案:
對於上面的錯誤我們擴大了db_recovery_file_dest_size仍出錯(由2G擴大至3G),可以看出即使擴容也是不夠做一次全備份的(後面能夠看到這個備份集得實際大小為2.05G)
1、擴大db_recovery_file_dest_size參數設置
alter system set db_recovery_file_dest_size=5G;
2、查看當前設置情況
show parameter db_recovery_file_dest
3、重新執行rman備份
RMAN> backup database;
......
RMAN> list backupset;
BS 關鍵字 類型 LV 大小 設備類型 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
14 Full 2.05G DISK 00:02:19 09-12月-14
BP 關鍵字: 14 狀態: AVAILABLE 已壓縮: NO 標記: TAG20141209T141548
段名:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2014_12_09\O1_MF_NNNDF_TAG20141209T141548_7G2ZC4L2_.BKP
備份集 14 中的數據文件列表
文件 LV 類型 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
1 Full 5170484 09-12月-14 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
2 Full 5170484 09-12月-14 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
3 Full 5170484 09-12月-14 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
4 Full 5170484 09-12月-14 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
5 Full 5170484 09-12月-14 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\HW_WH01.DBF
6 Full 5170484 09-12月-14 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\GZ_DATA01.DBF
7 Full 5170484 09-12月-14 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SZ_DATA01.DBF
BS 關鍵字 類型 LV 大小 設備類型 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
15 Full 6.83M DISK 00:00:02 09-12月-14
BP 關鍵字: 15 狀態: AVAILABLE 已壓縮: NO 標記: TAG20141209T141548
段名:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2014_12_09\O1_MF_NCSNF_TAG20141209T141548_7G2ZHQFO_.BKP
包括的控制文件: Ckp SCN: 5170574 Ckp 時間: 09-12月-14
包含的 SPFILE: 修改時間: 09-12月-14
至此問題已成功解決。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved