oracle真實案例之閃回區儲存空間耗盡解決方案(ORA-19815解決方案)

來源:互聯網
上載者:User

這個是一個真實的oracleORA-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試圖

650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131229/20061Q430-0.jpg" />

可以發現可以回收的空間為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的圖

650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131229/20061VK0-1.jpg" />

解決ORA-19815的方法很多,我這個只是其中的一種,感謝oracle 的metalink

本文出自 “吟—技術交流” 部落格,請務必保留此出處http://dl528888.blog.51cto.com/2382721/895168

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.