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
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博客 ” ,链接:http://blog.itpub.net/26477398/viewspace-2122494/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26477398/viewspace-2122494/