Oracle数据库教程:磁盘空间不足导致日志不能归档


我的数据库不知什么原因无故挂起,今天启动数据库报如下错误:

SQL>alter database open;

alterdatabase open

*

ERROR atline 1:

ORA-16014:log 3 sequence# 99 not archived, no available destinations

ORA-00312:online log 3 thread 1: '+DGROUP1/oralife/redo03.log'

重做日志不能归档,查看日志文件:

  1. [Oracle@simpleit ~]$ cd admin/oralife/bdump/  
  2. [oracle@simpleit bdump]$ tail  -20 alert_oralife.log  
  3. Thu Dec  1 11:13:18 2011  
  4. Errors in file /home/oracle/admin/oralife/bdump/oralife_arc1_3465.trc:  
  5. ORA-19504: Message 19504 not found; No message file for product=RDBMS, facility=ORA; arguments: [+DGROUP1/oralife/1_99_762803211.dbf]  
  6. ORA-17502: Message 17502 not found; No message file for product=RDBMS, facility=ORA; arguments: [4] [+DGROUP1/oralife/1_99_762803211.dbf]  
  7. ORA-15041: diskgroup space exhausted  
  8. Thu Dec  1 11:13:18 2011  
  9. ARC1: Error 19504 Creating archive log file to '+DGROUP1/oralife/1_99_762803211.dbf'  
  10. ARC1: Failed to archive thread 1 sequence 99 (19504)  
  11. ARCH: Archival stopped, error occurred. Will continue retrying  
  12. Thu Dec  1 11:13:18 2011  
  13. ORACLE Instance oralife - Archival Error  
  14. Thu Dec  1 11:13:18 2011  
  15. ORA-16038: Message 16038 not found; No message file for product=RDBMS, facility=ORA; arguments: [3] [99]  
  16. ORA-19504: Message 19504 not found; No message file for product=RDBMS, facility=ORA  
  17. ORA-00312: Message 312 not found; No message file for product=RDBMS, facility=ORA; arguments: [3] [1] [+DGROUP1/oralife/redo03.log]  
  18. Thu Dec  1 11:13:18 2011  
  19. Errors in file /home/oracle/admin/oralife/bdump/oralife_arc1_3465.trc:  
  20. ORA-16038: Message 16038 not found; No message file for product=RDBMS, facility=ORA; arguments: [3] [99]  
  21. ORA-19504: Message 19504 not found; No message file for product=RDBMS, facility=ORA  
  22. ORA-00312: Message 312 not found; No message file for product=RDBMS, facility=ORA; arguments: [3] [1] [+DGROUP1/oralife/redo03.log]  

于是知道是asm空间不足的原因导致,这时可以登录rman删除无用的归档日志,来释放磁盘空间。这时便可以成功启动数据库。

  1. RMAN> run{  
  2. 2> delete archivelog until time 'sysdate-7';--删除7天前的无用的归档日志}   
  3.   
  4. RMAN> crosscheck archivelog all;  
  5.   
  6. RMAN> delete noprompt expired archivelog all;  
 
  1. [oracle@simpleit bdump]$ sqlplus / as sysdba  
  2.   
  3. SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 1 20:48:17 2011  
  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 - Production  
  10. With the Partitioning, OLAP and Data Mining options  
  11.   
  12. SQL> select status from v$instance;  
  13.   
  14. STATUS  
  15. ------------   
  16. MOUNTED  
  17.   
  18. SQL> alter database open;  
  19. alter database open  
  20. *  
  21. ERROR at line 1:  
  22. ORA-16014: log 3 sequence# 99 not archived, no available destinations  
  23. ORA-00312: online log 3 thread 1: '+DGROUP1/oralife/redo03.log'  
  24.   
  25.   
  26. SQL> shutdown immediate  
  27. ORA-01109: database not open  
  28.   
  29.   
  30. Database dismounted.  
  31. ORACLE instance shut down.  
  32. SQL> startup  
  33. ORACLE instance started.  
  34.   
  35. Total System Global Area  167772160 bytes  
  36. Fixed Size                  1218316 bytes  
  37. Variable Size              83888372 bytes  
  38. Database Buffers           79691776 bytes  
  39. Redo Buffers                2973696 bytes  
  40. Database mounted.  
  41. Database opened.  

相关内容