[备忘.问题处理]ORA-00257 归档日志占满
1、查看归档日志文件存储路径及空间占用率
sqlplus> sys@orcl as sysdba
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE; --查看归档日志空间占用率
SQL> show parameter recover;
2、更改归档日志存储文件大小
SQL> shutdown abort --关闭进程
SQL> startup mount --装载数据库
SQL> select * from v$recovery_file_dest; --查询归档日志
SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=100g; --更改大小
SQL> alter database open; --开启数据库
3、登录RMAN删除归档日志文件
RMAN> connect target sys/<pwd>@<ip>:1521/<实例名>
RMAN> crosscheck archivelog all;
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1'; --删除截止到前一天的所有archivelog
RMAN> delete expired archivelog all; --删除过期的归档
这次遇到的问题,以及结果过程如下:
一、发现归档日志满了,执行“步骤3”的命令卡住无响应。
二、尝试了下,通过以下办法解决:
a)手工将归档日志目录下的文件移走
位置通常在:
D:\app\administrator\oradata\recovery_area\ORCL\ARCHIVELOG以防万一,我保留了时间最近的一个目录。
b)执行“步骤2”将归档日志存储大小改大
这么做的原因:期间关闭了数据库后发现启动不了(记得应该是因为归档日志占满了导致 <- 这有点坑啊)。好像也遇到 ORA-03113,ORA-01034
c)执行“步骤3”完成清理。手工强删归档文件不会直接生效,因为信息在oracle还是有记录,需要通过这一步进行清理
注意:改了归档日志文件大小后,记得要把数据库打开(alter database open)。