Chinaunix首页 | 论坛 | 博客
  • 博客访问: 437293
  • 博文数量: 55
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1584
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-04 15:15
个人简介

热衷技术,热爱交流

文章分类

全部博文(55)

文章存档

2014年(7)

2013年(48)

分类: Oracle

2013-11-12 17:21:33

好久前维护的一个测试库,今天一看停留在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全备吧。

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

阅读(8535) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

jackson1985742013-11-20 11:18:22

好文章,之前碰到过这种情况,兄弟总结的很详细~