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)。

当Oracle数据库的归档日志空间占满时,可通过检查V$FLASH_RECOVERY_AREA_USAGE,调整DB_RECOVERY_FILE_DEST_SIZE,然后使用RMAN删除过期归档日志。在清理过程中,若文件系统中手动删除归档日志,需同步更新数据库信息。遇到问题时,可能需要关闭并重新打开数据库来解决问题。
370

被折叠的 条评论
为什么被折叠?



