一例数据库无法启动分析

测试环境中的一台oracle服务器,在主机意外重启后无法启动,数据库版本为11gR2

SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.


Total System Global Area 1653518336 bytes
Fixed Size                  2213896 bytes
Variable Size            1258293240 bytes
Database Buffers          385875968 bytes
Redo Buffers                7135232 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 3048
Session ID: 125 Serial number: 5

查看报警日志,11gR2的路径如下

/home/oracle/app/diag/rdbms/orcl/orcl/alert    //xml格式文件

/home/oracle/app/diag/rdbms/orcl/orcl/trace   //trc文件


我这里查看的是xml文件

[oracle@odb01 alert]$ pwd
/home/oracle/app/diag/rdbms/orcl/orcl/alert
[oracle@odb01 alert]$ ls
log_1.xml  log_2.xml  log.xml

查看文件的末尾,看到如下的报错

<txt>Errors in file /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_3048.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 5218762752 bytes is 100.00% used, and has 0 remaining bytes available.

默认的归档日志目录已经满了

SQL> startup mount      
ORACLE instance started.


Total System Global Area 1653518336 bytes
Fixed Size                  2213896 bytes
Variable Size            1258293240 bytes
Database Buffers          385875968 bytes
Redo Buffers                7135232 bytes
Database mounted.

查看预先配置的db_recovery_file_dest_size有多大

SQL>  show parameter db_recovery_file_dest_size;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size           big integer 4977M

没用多久,5G空间就满了。

两种解决方法:

一种是增加db_recovery_file_dest_size 的大小

SQL> ALTER SYSTEM SET db_recovery_file_dest_size=10G;                                                   
System altered.

另一种是删除不需要的归档日志文件

使用rman删除日志

delete archivelog all completed before 'sysdate - 3';


但是,在正式的生产环境下,一般是使用独立的目录来存放归档日志,并有适合的备份策略

查看默认路径

SQL> show parameter db_recovery 


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /home/oracle/app/flash_recover
                                                 y_area
db_recovery_file_dest_size           big integer 10G

以下转载,原文地址:http://blog.csdn.net/u011364306/article/details/49276717

修改归档日志的路径,将归档日志放到其他不受限制的路径下来解决这个问题,可通过下面的SQL来修改归档日志的存放路径。

[sql]  view plain  copy
  1. --修改log_archive_dest_1值来重新制定路径  
  2. SQL> alter system set log_archive_dest_1='location=/u01/oracle/archive';  
  3.   
  4. System altered.  
这里特别要注意location参数,并且指定的目录要存在并且有Oracle的权限
重新启动数据库,查看归档路径是否修改成功

[sql]  view plain  copy
  1. --关闭  
  2. SQL> shutdown immediate  
  3. Database closed.  
  4. Database dismounted.  
  5. ORACLE instance shut down.  
  6. SQL> startup  
  7. ORACLE instance started.  
  8.   
  9. Total System Global Area  784998400 bytes  
  10. Fixed Size                  2257352 bytes  
  11. Variable Size             478154296 bytes  
  12. Database Buffers          301989888 bytes  
  13. Redo Buffers                2596864 bytes  
  14. Database mounted.  
  15.   
  16. Database opened.  
  17.   
  18. --再次查看,修改成功  
  19. SQL> archive log list  
  20. Database log mode              Archive Mode  
  21. Automatic archival             Enabled  
  22. Archive destination            /u01/oracle/archive  
  23. Oldest online log sequence     4  
  24. Next log sequence to archive   6  
  25. Current log sequence           6  
可以通过切换日志,查看归档路径下是否有归档日志产生来验证归档路径设置是否正确,可以通过下面的命令切换日志
[sql]  view plain  copy
  1. SQL> alter system switch logfile;  
  2.   
  3. System altered.  
  4.   
  5. SQL> exit  
  6. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production  
  7. With the Partitioning, OLAP, Data Mining and Real Application Testing options  
  8.   
  9. [oracle@cancer oracle]$ ll /u01/oracle/archive/  
  10. total 36540  
  11. -rw-r----- 1 oracle oinstall  9608704 Oct 20 14:39 1_6_893515662.dbf  
归档格式:

[sql]  view plain  copy
  1. SQL> show parameter log_archive_format  
  2.   
  3. NAME                                 TYPE        VALUE  
  4. ------------------------------------ ----------- ------------------------------  
  5. log_archive_format                   string      %t_%s_%r.dbf  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值