Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2441877
  • 博文数量: 328
  • 博客积分: 4302
  • 博客等级: 上校
  • 技术积分: 5486
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-01 11:14
个人简介

悲剧,绝对的悲剧,悲剧中的悲剧。

文章分类

全部博文(328)

文章存档

2017年(6)

2016年(18)

2015年(28)

2014年(73)

2013年(62)

2012年(58)

2011年(55)

2010年(28)

分类: Oracle

2013-08-12 12:13:53

当运行archive命令的时候,数据库报错:
  1. SQL> alter system archive log current;
  2. alter system archive log current
  3. *
  4. ERROR at line 1:
  5. ORA-16038: log 1 sequence# 1 cannot be archived
  6. ORA-19809: limit exceeded for recovery files
  7. ORA-00312: online log 1 thread 1: '/u01/livedata/live/redo01.log'
这个错误的原因是recovery文件的大小超出限制了,解决方法有两个,一个是删除旧有的文件,另一个是扩大空间限制

1. 删除旧文件

这种方式是进入RMAN,把归档文件删掉一部分(或者全删)
  1. $ rman

  2. Recovery Manager: Release 11.2.0.3.0 - Production on Mon Aug 12 10:35:46 2013

  3. RMAN> connect target sys/<password>
  4. RMAN> delete archivelog all;

  5. 或者是
  6. [$ rman target /]
  7. [RMAN>DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-2';]

  8. RMAN> crosscheck archivelog all;

2. 扩大空间限制

首先找到archive文件的位置
  1. $ sqlplus / as sysdba

  2. SQL> show parameter background_dump_dest

  3. SQL> archive log list
  4. Database log mode Archive Mode
  5. Automatic archival Enabled
  6. Archive destination USE_DB_RECOVERY_FILE_DEST
  7. Oldest online log sequence 572
  8. Next log sequence to archive 572
  9. Current log sequence 580
可以看到归档日志的位置是DB_RECOVERY_FILE_DEST,精确路径也可以查到
  1. SQL> show parameter db_recover
  2. NAME TYPE VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. db_recovery_file_dest string /oradata2/flash_recovery_area
  5. db_recovery_file_dest_size big integer 10G
查看空间使用情况
  1. SQL> SELECT * FROM V$RECOVERY_FILE_DEST;

  2. NAME
  3. --------------------------------------------------------------------------------
  4. SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
  5. ----------- ---------- ----------------- ---------------
  6. /u01/testlog
  7.  4322230272 3996808192 0 28
然后就可以增加db_recovery_file_dest_size
  1. SQL> alter system set db_recovery_file_dest_size=20G;
  2. System altered.

  3. SQL> alter database open;
  4. Database altered.

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