ORA-00257:archiver error.Connect internal only,until freed.

ORA-00257:archiver error.Connect internal only,until freed.

image-20230915142639041

1、报错原因

归档满了

2、解决方法

1.查看归档路径
archive log list;

Arcive destination      USE_DB_RECOVERY_FILE_DEST

此参数代表归档存放路径,本地存放为/opt/oracle…,asm为+archdg

当为以上参数时,代表存放到数据闪回区

2.查看闪回区设置
show parameter recover;

db_recovery_file_dest  #表示存放路径
db_recovery_file_dest_size  #表示可以使用的空间大小


3.设置闪回区大小
alter system set db_recovery_file_dest_size=100G scope=both;


4.查看归档空间使用情况
select * from v$flash_recovery_area_usage;

查看闪回区是否开启

select flashback_on from v$database;

开启闪回

SQL>shutdown immediate;

SQL>startup mount;

SQL>alter database archivelog;

SQL> alter database flashback on;

关闭闪回

SQL>shutdown immediate;

SQL>startup mount;

SQL> alter database flashback off;

5.删除归档日志
su - oracle
set ORACLE_ID=orcl
rman target /

#查看已经存在的归档
list archivelog all;
crosscheck archivelog all;

#删除
delete archivelog all completed before 'sysdate-1';  #删除一天以前的
delete archivelog all completed before 'trunc(sysdate-1)+2/24';

#检查是否删除
list archivelog all;

#本地文件删除归档
cd /opt/oracle/archlog
find ./ -mtime +7 -name "*.dbf" -exec rm -f {} ;  

6.查看预警日志是否还有报错
cd $ORACLE_BASE/diag/rdbms/orcl/trace/
tail -100f al*.log