使用过程中发现oracle运行很慢(其实应该先关注空间问题),就准备关机重启一下,关不掉就强制关闭,然后启动就报错了。

1.SQL> startup

ORACLE instance started.

Total System Global Area 6614106112 bytes
Fixed Size                  2213896 bytes
Variable Size            3154118648 bytes
Database Buffers         3422552064 bytes
Redo Buffers               35221504 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 5982
Session ID: 96 Serial number: 3

网上去查看ORA-03113: end-of-file on communication channel这个错误,发现大家说的可能性很多,讲的也很全面,但自己的究竟是哪个呢。其实大家找寻问题,最重要的是要看日志。这里我们就去查看alert日志。

通过日志在alert日志中发现了问题的根源,alert中报错信息为

ORA-19815: WARNING: db_recovery_file_dest_size of 4070572032 bytes is 100.00% used, and has 0 remaining bytes available.

直接了当的反映了由于db_recovery_file_dest_size的空间已经被使用满了,所以导致无法启动。

解决起来就很容易了,先将数据库启动到mount状态(因为已经无法开启了嘛)

SQL>  startup mount

接下来,查看一下我们预先配置的db_recovery_file_dest_size究竟有多大。

SQL>  show parameter db_recovery_file_dest_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size           big integer 3882M

只有4个G不到,立刻查看了一下,其他几台生产环境的数据库参数。

SQL> show parameter db_recovery_file_dest_size;

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size      big integer 4000G

立刻震惊,好吧。真阔绰。4T。修改一下吧。

SQL> ALTER SYSTEM SET db_recovery_file_dest_size=4000G scope=both;

好了。接下来。就可以把库启动起来了。

针对这种空间问题有几种解决办法,以上是其中一种。

解决办法有三个,如下:
     1> 设置新的归档路径,操作语句为 SQL> alter system set log_archive_dest=new_location;
     2> 转储或删除闪回恢复区里的归档日志;
     3> 增大闪回恢复区,操作语句为 SQL> alter system set db_recovery_file_dest_size=new_size;
如下采用删除过旧归档备份进行处理。
4. RMAN方式登录,手动删除不需要的归档日志(eg:删除三天以前的归档记录)
[oracle@rac53 trace]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Wed Apr 20 15:49:22 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: HBANG (DBID=1821727253, not open)

RMAN>delete archivelog all completed before 'sysdate - 3';
......
Do you really want to delete the above objects (enter YES or NO)?YES
......
RMAN> quit
5. 重新打开数据库验证
SQL> alter database open;

Database altered.

ps:

alert日志具体的路径

/ORACLE_HOME/diag/rdbms/ora9i/ora9i/trace/alert_ora9i.log我们这边是9i版本,其他的稍微有些区别,具体是

Oracle 10G :/ORACLE_HOME/oracle/admin/oracle155/bdump

Oracle 11G:/ORACLE_HOME/diag/rdbms/ora11g/ora11g/alert

同时可以通过:SQL> select * from v$diag_info where name ='Diag Alert';

查询alert 文件位置

2.

最新文章

  1. 使用mutt+msmtp在Linux命令行界面下发邮件(续)
  2. ebtables hook
  3. MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法
  4. C中头文件在cpp文件中引用和.h文件引用
  5. IDEA中PlantUML的使用
  6. 关于ListView嵌套GridView中的onItemClickListener失效问题
  7. NHibernate从入门到精通系列
  8. CGI初识
  9. system.exit(0) vs system.exit(1)
  10. js仿百度文库文档上传页面的分类选择器_第二版
  11. vs2015下载及预览与发布
  12. 在MVC中添加拦截器实现登录后的权限验证
  13. KVM之五:KVM日常管理常用命令
  14. Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读
  15. 使用Dubbo的SPI扩展机制实现自定义LoadBalance——方法一 修改Dubbo源代码
  16. Zipkin Server Configuration Using Docker and MySQL[转]
  17. SpringBoot拦截器
  18. sql server 由于登入失败而无法启动服务
  19. Grep console 设置
  20. php 操作 oracle lob 数据

热门文章

  1. 分布式系列十三: nginx
  2. php nginx 负载均衡简单配置过程
  3. The Ethereum devp2p and discv4 protocol Part I
  4. 记一次较坑的eclipse安装AmaterasUML插件经历
  5. 定时-thinkphp
  6. (转)python 开发 sqlite 绝对完整
  7. vue-cli项目 build后请求本地static文件中的 json数据,路径不对,报错404处理方法
  8. 控制可编辑的Div 在添加图片,或者@某人的时候 光标移动到最后
  9. python数据类型之基础进阶
  10. OpenCV-Python-边缘检测