ORA-00257错误处理方法


今天登录Oracle又遇到了ORA-16020: less destinations available than specified by LOG_ARCHIVE_MIN_SUCCEED_DEST这个问题,具体解决如下:

1. 用sys用户登录

sql>sys/sys as sysdba

2. 看看archiv log所在位置

SQL> show parameter log_archive_dest;

NAME                                    TYPE        VALUE

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

log_archive_dest_10            string

log_archive_dest_state_1                  string

log_archive_dest_state_2                  string

3. 一般VALUE为空时,可以用archive log list;检查一下归档目录和log sequence

4. 检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到96.62

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

注:V$FLASH_RECOVERY_AREA_USAGE必须是10.2以上的版本才有此视图,低于此版本的这是select提示该视图或表不存在,因为我现在用的版本是9i的所有无法显示。

5. 计算flash recovery area已经占用的空间

SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;

如果在第四中你的oracle能正常执行该语句,那么你可以接着进行第五步操作,反之则就直接跳过第五步。

6. 找到recovery目录, show parameter recover

SQL> show parameter recover;

recovery_parallelism                  integer        0

也是是因为版本太低,所有查询结果没有显示归档位置用的值和存放的位置

7.根据我的oracle的情况,我试着执行了下alter database clear unarchived logfile group 1

SQL> alter database clear unarchived logfile group 1;

alter database open;

执行到这一步,我的问题解决了,原来是因为数据库里有不能归档的日志,也许对这个错误还有别的解决方法,所以以上我只是针对我遇到的情况来进行描述。

相关内容