ORA-00257:archiver error.Connect internal only,until freed.
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