ora-00257:归档程序错误,在释放之前仅限于内部链接如何解决

本文介绍了当Oracle数据库归档日志空间不足时的两种解决方案:一是手动删除部分旧日志并利用RMAN进行控制文件维护;二是调整FLASH_RECOVERY_AREA的大小。文章通过具体步骤演示了如何操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简要介绍
首先数据库日志文件有两种:

联机日志文件和归档日志文件,联机日志文件会将之前的覆盖,不会做备份。

而归档日志文件会做备份,这样就造成了归档日志空间已满,解决方法:

如果真的是归档日志空间已满的话,把旧的归档日志导到其他磁盘,腾出磁盘空间。也可以添加新的归档目的盘。

解决方法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;
转自:http://zhidao.baidu.com/link?url=BZVRc665opCnuFxXDWhXPug3cLdtNePO6dtWxH5u0sZBsPz7VzeYLJ4ETFsPBYlD2Kk8_ujmOrx4J6OpnioDkK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值