ITPub博客

首页 > 数据库 > Oracle > ORA-16014错误解决(归档区满)

ORA-16014错误解决(归档区满)

Oracle 作者:hexel 时间:2013-11-12 17:37:12 0 删除 编辑

好久前维护的一个测试库,今天一看停留在mount状态了:

SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-16014: 日志 3 sequence# 117 未归档, 没有可用的目的地

ORA-00312: 联机日志 3 线程 1:

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLJJYF2\REDO03.LOG'

数据库在归档模式下,由于rman脚本计划任务运行出问题,未能把过期的归档文件清除,造成USE_DB_RECOVERY_FILE_DEST区域被用完

SQL>  select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

------------ ------------------ ------------------------- ---------------

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                98.86                         0              44

BACKUPPIECE                 .39                         0               1

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

已选择6行。

在这种情况下,可以通过增大db_recovery_file_dest_size解决,也可以删除备份集文件和归档文件:

RMAN> delete noprompt obsolete;

RMAN 保留策略将应用于该命令

将 RMAN 保留策略设置为冗余 1

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=151 devtype=DISK

未找到已废弃的备份

RMAN>  crosscheck backupset;

使用通道 ORA_DISK_1

交叉校验备份片段: 找到为 'AVAILABLE'

备份段 handle=E:\HX\BACKUP\LEVEL0_4BOJTU25_1_1.BKP recid=134 stamp=826210385

交叉校验备份片段: 找到为 'AVAILABLE'

备份段 handle=E:\HX\BACKUP\LEVEL0_4COJTU4E_1_1.BKP recid=135 stamp=826210459

交叉校验备份片段: 找到为 'AVAILABLE'

备份段 handle=E:\HX\BACKUP\LEVEL0_4DOJTU60_1_1.BKP recid=136 stamp=826210516

交叉校验备份片段: 找到为 'AVAILABLE'

………………………………………………………………………………………………………………

已交叉检验的 32 对象

没有冗余和无效的备份集,说明在rman删除之前,归档文件就把空间用完了。

SQL> select distinct  CHECKPOINT_CHANGE#  from v$datafile_header;

CHECKPOINT_CHANGE#

------------------

13414847

SQL> select  distinct CHECKPOINT_CHANGE# from v$datafile;

CHECKPOINT_CHANGE#

------------------

13414847

1. 可以选择手动删除归档文件,然后再用rman清除信息:

RMAN> crosscheck archivelog all;

RMAN> delete noprompt expired archivelog all;

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

------------ ------------------ ------------------------- ---------------

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                13.46                         0               6

BACKUPPIECE                 .39                         0               1

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

已选择6行。

接着启动数据库:

SQL> alter database open;

数据库已更改。

2. 如果手动修改db_recovery_file_dest_size,则如下操作:

SQL> alter system set db_recovery_file_dest_size=5G;

SQL> alter database open;

数据库已更改。

接着,再做一次rman全备吧。

教训:归档模式下一定要注意监控恢复区的使用情况,避免不必要的麻烦

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28813259/viewspace-776424/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-04-18

  • 博文量
    11
  • 访问量
    67719