oracle真实案例之闪回区存储空间耗尽解决方法(ORA-19815解决方法)

简介:

这个是一个真实的oracle(ORA-19815解决方法)的案例,希望对大家有帮助。

今天朋友公司的平台出现了登陆缓慢、查询数据慢问题,并且通过spotlight监控oracle也出现登陆不成功现象,通过查看系统的内存、进程等,没有发现问题,最后找到了我,我先查看了一下平台的内存、进程,也没有发现问题,最后查看oracle的告警日志,发现问题如下:

 
 
  1. ARC0: Failed to archive thread 1 sequence 53 (19809)  
  2. Sun Jun 10 23:12:12 2012  
  3. Errors in file /home/oracle/admin/BGTP/bdump/bgtp_arc1_3906.trc:  
  4. ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.  
  5. Sun Jun 10 23:12:12 2012  
  6. ************************************************************************  
  7. You have following choices to free up space from flash recovery area:  
  8. 1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,  
  9.    then consider changing RMAN ARCHIVELOG DELETION POLICY.  
  10. 2. Back up files to tertiary device such as tape using RMAN  
  11.    BACKUP RECOVERY AREA command.  
  12. 3. Add disk space and increase db_recovery_file_dest_size parameter to  
  13.    reflect the new space.  
  14. 4. Delete unnecessary files using RMAN DELETE command. If an operating  
  15.    system command was used to delete files, then use RMAN CROSSCHECK and  
  16.    DELETE EXPIRED commands.  
  17. ************************************************************************  
是ORA-19815问题,通过metalink查询,是闪回区空间耗尽,解决的方法我使用增大闪回区的存储空间,来解决此问题
现在先查看一下v$recovery_file_dest试图

可以发现可以回收的空间为0,在查看闪回区的使用率

 


 
 
  1. SQL> select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable, number_of_files as "number" from v$flash_recovery_area_usage;   
  2.  
  3. FILE_TYPE      USED RECLAIMABLE number  
  4. ------------ ---------- ----------- ----------  
  5. CONTROLFILE       0       0      0  
  6. ONLINELOG         0       0      0  
  7. ARCHIVELOG    98.65       0     51  
  8. BACKUPPIECE       0       0      0  
  9. IMAGECOPY         0       0      0  
  10. FLASHBACKLOG          0       0      0  
  11.  
  12. 6 rows selected.  
发现已经使用了98.65%了
下面为解决此问题的方法
登陆数据库

 
 
  1. [oracle@master ~]$ sqlplus / as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 10 22:41:54 2012  
  4.  
  5. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
  6.  
  7.  
  8. Connected to:  
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production  
  10. With the Partitioning, OLAP and Data Mining options  
先查看当前的闪回区大小

 
 
  1. SQL> show parameter db_recovery_file_dest  
  2.  
  3. NAME                     TYPE    VALUE  
  4. ------------------------------------ ----------- ------------------------------  
  5. db_recovery_file_dest            string  /home/oracle/flash_recovery_ar  
  6.                          ea  
  7. db_recovery_file_dest_size       big integer 2G  
  8. SQL> archive log list;  
  9. Database log mode          Archive Mode  
  10. Automatic archival         Enabled  
  11. Archive destination        USE_DB_RECOVERY_FILE_DEST  
  12. Oldest online log sequence     53  
  13. Next log sequence to archive   53  
  14. Current log sequence           55  
可以看得闪回区的大小为2g,所以我把他扩展为10g

 
 
  1. SQL> alter system set db_recovery_file_dest_size=10G scope=both;  
  2.  
  3. System altered.  
然后在查看闪回区的使用情况

 
 
  1. SQL>  select * from v$recovery_file_dest;  
  2.  
  3. NAME                      SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES  
  4. ---------------------------------------- ------------ ---------- ----------------- ---------------  
  5. /home/oracle/flash_recovery_area      10737418240 2383963648         0      57  
  6.  
  7. SQL>  show parameter db_recovery_file_dest  
  8.  
  9. NAME                     TYPE    VALUE  
  10. ------------------------------------ ----------- ------------------------------  
  11. db_recovery_file_dest            string  /home/oracle/flash_recovery_ar  
  12.                          ea  
  13. db_recovery_file_dest_size       big integer 10G  
在查看一下闪回区的使用率

 
 
  1. SQL> select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable, number_of_files as "number" from v$flash_recovery_area_usage;   
  2.  
  3. FILE_TYPE      USED RECLAIMABLE number  
  4. ------------ ---------- ----------- ----------  
  5. CONTROLFILE       0       0      0  
  6. ONLINELOG         0       0      0  
  7. ARCHIVELOG     22.2       0     57  
  8. BACKUPPIECE       0       0      0  
  9. IMAGECOPY         0       0      0  
  10. FLASHBACKLOG          0       0      0  
  11.  
  12. 6 rows selected.  
从之前的98.65%降到了22.2%,在查看一下告警日志

 
 
  1. db_recovery_file_dest_size of 10240 MB is 20.14% used. This is a  
  2. user-specified limit on the amount of space that will be used by this  
  3. database for recovery-related files, and does not reflect the amount of  
  4. space available in the underlying filesystem or ASM diskgroup.  
  5. Sun Jun 10 23:12:12 2012  
  6. ALTER SYSTEM SET db_recovery_file_dest_size='10G' SCOPE=BOTH;  
  7. Sun Jun 10 23:12:15 2012  
  8. Archiver process freed from errors. No longer stopped  
  9. Sun Jun 10 23:12:15 2012  
  10. Thread 1 advanced to log sequence 56  
  11.   Current log# 1 seq# 56 mem# 0: /home/oracle/oradata/BGTP/redo01.log  
  12. Thread 1 advanced to log sequence 57  
  13.   Current log# 2 seq# 57 mem# 0: /home/oracle/oradata/BGTP/redo02.log  
  14. Sun Jun 10 23:12:27 2012  
  15. Thread 1 cannot allocate new log, sequence 58  
  16. Checkpoint not complete  
  17.   Current log# 2 seq# 57 mem# 0: /home/oracle/oradata/BGTP/redo02.log  
  18. Thread 1 advanced to log sequence 58  
  19.   Current log# 3 seq# 58 mem# 0: /home/oracle/oradata/BGTP/redo03.log  
  20. Sun Jun 10 23:12:52 2012  
  21. Thread 1 advanced to log sequence 59  
  22.   Current log# 1 seq# 59 mem# 0: /home/oracle/oradata/BGTP/redo01.log  
  23. Sun Jun 10 23:12:52 2012  
  24. Trying to expand controlfile section 11 for Oracle Managed Files  
  25. Expanded controlfile section 11 from 56 to 112 records  
  26. Requested to grow by 56 records; added 2 blocks of records  
已经不在重复的报ORA-19815错误了,现在闪回区空间使用爆满问题已经解决。
然后我的spotlight监控也已经可以监控oracle了,下面是spotlight监控oracle的图

解决ORA-19815的方法很多,我这个只是其中的一种,感谢oracle 的metalink




 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/895168,如需转载请自行联系原作者

相关文章
|
6月前
|
SQL Oracle 关系型数据库
不小心删除表或数据后,如何利用Oracle的闪回进行恢复
不小心删除表或数据后,如何利用Oracle的闪回进行恢复
|
6月前
|
Java
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Action的实现类
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Action的实现类
|
29天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—异常断电导致Oracle数据库数据丢失的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxfg用户的数据。 Oracle数据库恢复方案: 检测数据库故障;尝试挂起并修复数据库;解析数据文件。
|
1月前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
6月前
|
Oracle 关系型数据库 数据库
Oracle数据库协议适配器错误解决方法
Oracle数据库协议适配器错误解决方法
609 2
|
6月前
|
存储 Oracle 关系型数据库
服务器数据恢复—RAID5上层SAP+oracle数据恢复案例
**服务器存储数据恢复环境:** 某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。 **服务器存储故障&分析:** 该RAID5阵列中一块硬盘出现故障离线,热备盘自动激活替换故障硬盘,热备盘同步数据的过程中该raid5阵列中又有一块硬盘出现故障,RAID5阵列瘫痪,上层LUN无法正常访问。 因为本案例中存储控制器的磁盘检查策略严格,一旦某些磁盘性能不稳定,该型号存储控制器就将该块磁盘识别为坏盘,并将该块磁盘踢出RAID。一旦RAID中掉线的盘数到超过RAID级别允许掉盘的最大数量,该RAID将不可用,
服务器数据恢复—RAID5上层SAP+oracle数据恢复案例
|
6月前
|
SQL Oracle 关系型数据库
ORACLE错误码及解决方法
ORACLE错误码及解决方法
283 0
|
6月前
|
Oracle 关系型数据库 数据库
Oracle闪回:时光倒流,数据重现的魔法
【4月更文挑战第19天】Oracle数据库的闪回功能如同时光机,借助撤销段保存数据旧版,实现数据丢失或误改后的恢复。包括闪回查询、闪回表、闪回删除和闪回数据库等,适用于不同场景。使用时注意撤销段空间、保留时间和定期备份。虽非万能,但在数据保护体系中扮演重要角色。