ITPub博客

首页 > 数据库 > Oracle > FRA空间满

FRA空间满

原创 Oracle 作者:fiona8953 时间:2016-07-25 11:08:42 0 删除 编辑
FRA空间满:
1、备份Archivelog,释放空间。
2、手工清除Flashback log: alter database flashback off。

在数据库open阶段,rvwr进程需要加载闪回日志文件,由于找不到所以无法正常启动,而在关闭flashback后,rvwr进程被关闭,相应的闪回文件也被删除。
原因: 刚刚看到闪回日志占用空间太多,直接统计OS命令rm删除,导致启动时候报错
解决方案:目前oracle还没有针对flashlog的操作,而falshlog满了之后会自动覆盖之前的内容;手工清除办法就是alter database flashback off;

两种方法:
1、配置RMAN自动管理ARCHIVELOG。也可在RMAN中将数据备份到磁带上,然后将过期的ARCHIVELOG删除;
2、可以手工来处理,步骤如下
    1)将/oracle下的相关ARCHIVELOG日志文件移到别的文件系统下(保留一段时间的ARCHIVELOG日志即可,其他的可移走,用系统命令mv移走)。然后打包、压缩,备份到介质上,此时可将这些移出的文件删除。注意:别在原来的/oracle打包了,否则空间占满了就有些麻烦了。
    2)以oracle用户登录,执行rman target /。如有多个实例此时执行rman target 用户名/密码@实例名,进入rman
    3)在rman中执行
    RMAN>list archivelog all;            /*列出所有的归档日志文件
    RMAN>crosscheck archivelog all;      /*与物理归档日志文件保持同步,之前移走了一部分文件,因此执行此命令后会在/oracle目录下找不到的归档日志标记为expired
    RMAN>list expired archivelog all;    /*列出所有expired(过期)的归档日志文件,此时你就可看到移走的归档日志文件均被标记为expired
    RMAN>delete expired archivelog all;  /*在oracle中删除所有过期的expired文件
    RMAN>list archivelog all;            /*再列出所有的归档日志文件,就可发现移走的日志文件被删掉了
    RMAN>exit                            /*退出

SQL> Show parameter log_archive_dest;
log_archive_dest_10                  string      LOCATION=USE_DB_RECOVERY_FILE_DEST

select sum(PERCENT_SPACE_USED - PERCENT_SPACE_RECLAIMABLE) 
from V$FLASH_RECOVERY_AREA_USAGE;

show parameter db_recovery_file_dest
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/oracle/oradata/recovery
db_recovery_file_dest_size           big integer 100G

SQL> alter system set db_recovery_file_dest_size=200G scope=spfile;
SQL> shutdown immediate;
SQL> startup open;


---------------------------
1:login database as dba
2:run: show parameter db_recovery_file_dest_size,the size depends on the servers it may change from one to another.

    SQL> show parameter db_recovery_file_dest_size
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest_size           big integer 300G
3:increase the size(about 50g):
    SQL> alter database set db_recovery_file_dest_size=350g;
4:cd /u01/app/oracle/oradata/recovery
delete some old ,big dmp file.
5:check the left space of  /u01/app/oracle/oradata/recovery
6:login database as dba and reset the parameter 
  SQL> alter database set db_recovery_file_dest_size=300g;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26477398/viewspace-2122494/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Flashback
下一篇: Forcing Log Switches
请登录后发表评论 登录
全部评论

注册时间:2014-06-13

  • 博文量
    284
  • 访问量
    222484