oracle10g遇到ORA-00257归档程序错误,在释放之前仅限于内部连接

一、简要介绍 
首先数据库日志文件有两种: 
 
联机日志文件和归档日志文件,联机日志文件会将之前的覆盖,不会做备份。 
 
而归档日志文件会做备份,这样就造成了归档日志空间已满,解决方法: 
 
如果真的是归档日志空间已满的话,把旧的归档日志导到其他磁盘,腾出磁盘空间。也可以添加新的归档目的盘。 
 
解决方法1: 
先手工删除D:\oracle\product\10.2.0\flash_recovery_area里面的日志,然后用户用rman进入把归档日志删除 
1)#rman target/ 
2)rman>crosscheck archivelog all; 
3)rman>delete expired archivelog all; 
4)rman>exit 
 
解决方法2:改变了FLASH_RECOVERY_AREA的大小 
sql>alter system set db_recovery_file_dest_size=8G scope=both; 
sql>show parameter db_recovery_file_dest_size 
 
二、详细过程介绍 
1.连接 
$sqlplus /as sysdba 
  
SQL*Plus: Release10.2.0.1.0 - Production on Mon Jan 17 10:00:24 2011 
  
Copyright (c) 1982, 2005, Oracle. All rights reserved. 
Connected to: 
Oracle Database10gRelease10.2.0.1.0 - 64bit Production 
2.查看正在归档的状态 
SQL>select * from v$log; 
  
发现ARC状态为NO,表示系统没法自动做归档。 
 
3.查看归档日志所在位置 
SQL>show parameter recover; 
 
SQL> exit 
$ exit 
4.进入日志存入目录 
# cd 
# ls 
.TTauthority          cdrom                 proc 
.Xauthority           configassist.log      sbin 
.dt                   dev                   smit.log 
.dtprofile            etc                   smit.script 
.java                 home                  smit.transaction 
.mh_profile           lib                   sqlnet.log 
.sh_history           lost+found            tftpboot 
.vi_history           lpp                   tmp 
.wmrc                 mnt                   u 
Mail                  nmo42_aix5L_64.tar.gz unix 
TT_DB                 nsr                   usr 
audit                 opt                   var 
bin                   oradata 
# cd oradata 
# ls 
flash_recovery_area misdata 
lost+found          orabak 
# cd flash_recovery_area 
# ls 
MISDATA 
# cd  MISDATA 
# ls 
archivelog autobackup onlinelog 
# cd  archivelog 
# ls 
2011_01_01 2011_01_04 2011_01_07 2011_01_10 2011_01_13 201 
2011_01_02 2011_01_05 2011_01_08 2011_01_11 2011_01_14 201 
2011_01_03 2011_01_06 2011_01_09 2011_01_12 2011_01_15 202 
# 
5.查看FLASH_RECOVERY_AREA空间使用情况 
# cd oradata 
# ls 
 
6.查看flash recovery area已经占用的空间 
  
SQL>select * from v$flash_recovery_area_usage; 
  
7.转移或清除对应的归档日志,删除一些不用的日期目录的文件,注意保留最后几个文件 
注意:在删除归档日志后必须用RMAN维护控制文件,否则空间显示仍然不释放。 
在rman里删除过期日志 
$rman target / 
Recovery Manager: Release11.2.0.1.0 - Production on Wed Feb 24 08:13:00 2010 
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 
connected to target database: **** 
RMAN>crosscheck archivelog all;                     检查一些无用的archivelog 
RMAN>delete expired archivelog all;                 删除过期archivelog 
8.登录oracle增大闪回区大小 
SQL>alter system set db_recovery_file_dest_size=8G scope=both; 
  
SQL>select * from V$FLASH_RECOVERY_AREA_USAGE;
posted on 2013-06-26 17:57  叶子的分享  阅读(1262)  评论(0编辑  收藏  举报