今天跟往常一样,登陆PL/SQL,确登陆失败,出现一个错误“ORA-01034”和“ORA-27101”如图:

然后就就通过命令提示符去登陆Oracle,去查看怎么回事,然后问题进一步出现,错误“ORA-03113:通信通道的文件结尾 进程 ID:6320 回话 ID :191 序列号:3”。

问题根源

Oracle出现错误,于是去错误日志里去找问题根源:在 e:\app\kang\diag\rdbms\oracle\oracle\trace\文件夹下找到oracle_ora_6320.trc文件,打开显示错误日志:

  1. Trace filee:\app\kang\diag\rdbms\oracle\oracle\trace\oracle_ora_6320.trc
  2. Oracle Database 11gEnterprise Edition Release 11.2.0.1.0 - 64bit Production
  3. With thePartitioning, OLAP, Data Mining and Real Application Testing options
  4. Windows NT VersionV6.1 Service Pack 1
  5. CPU                 : 4 - type 8664, 2 PhysicalCores
  6. Process Affinity    : 0x0x0000000000000000
  7. Memory (Avail/Total):Ph:2805M/6087M, Ph+PgF:6761M/12173M
  8. Instance name: oracle
  9. Redo thread mountedby this instance: 1
  10. Oracle processnumber: 19
  11. Windows thread id:6320, image: ORACLE.EXE (SHAD)
  12. *** 2014-08-1608:18:55.461
  13. *** SESSIONID:(191.3) 2014-08-16 08:18:55.461
  14. *** CLIENT ID:()2014-08-16 08:18:55.461
  15. *** SERVICE NAME:()2014-08-16 08:18:55.461
  16. *** MODULENAME:(sqlplus.exe) 2014-08-16 08:18:55.461
  17. *** ACTION NAME:()2014-08-16 08:18:55.461
  18. ORA-19815: 警告:db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用 100.00%, 尚有 0 字节可用。
  19. ************************************************************************
  20. You have followingchoices to free up space from recovery area:
  21. 1. Consider changingRMAN RETENTION POLICY. If you are using Data Guard,
  22. then consider changing RMAN ARCHIVELOGDELETION POLICY.
  23. 2. Back up files totertiary device such as tape using RMAN
  24. BACKUP RECOVERY AREA command.
  25. 3. Add disk space andincrease db_recovery_file_dest_size parameter to
  26. reflect the new space.
  27. 4. Delete unnecessaryfiles using RMAN DELETE command. If an operating
  28. system command was used to delete files,then use RMAN CROSSCHECK and
  29. DELETE EXPIRED commands.
  30. ************************************************************************
  31. ORA-19809:超出了恢复文件数的限制
  32. ORA-19804: 无法回收33961984 字节磁盘空间 (从 4102029312 限制中)
  33. *** 2014-08-1608:18:55.502 4132 krsh.c
  34. ARCH: Error 19809Creating archive log file to'E:\APP\KANG\FLASH_RECOVERY_AREA\ORACLE\ARCHIVELOG\2014_08_16\O1_MF_1_159_%U_.ARC'
  35. *** 2014-08-1608:18:55.502 2747 krsi.c
  36. krsi_dst_fail: dest:1err:19809 force:0 blast:1
  37. DDE: Problem Key 'ORA312' was flood controlled (0x1) (no incident)
  38. ORA-00312: 联机日志 3 线程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG'
  39. ORA-16038: 日志 3sequence# 159 无法归档
  40. ORA-19809:超出了恢复文件数的限制
  41. ORA-00312: 联机日志 3 线程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG'
  42. *** 2014-08-1608:18:55.565
  43. USER (ospid: 6320):terminating the instance due to error 16038
Trace filee:\app\kang\diag\rdbms\oracle\oracle\trace\oracle_ora_6320.trc
Oracle Database 11gEnterprise Edition Release 11.2.0.1.0 - 64bit Production
With thePartitioning, OLAP, Data Mining and Real Application Testing options
Windows NT VersionV6.1 Service Pack 1
CPU : 4 - type 8664, 2 PhysicalCores
Process Affinity : 0x0x0000000000000000
Memory (Avail/Total):Ph:2805M/6087M, Ph+PgF:6761M/12173M
Instance name: oracle
Redo thread mountedby this instance: 1
Oracle processnumber: 19
Windows thread id:6320, image: ORACLE.EXE (SHAD) *** 2014-08-1608:18:55.461
*** SESSIONID:(191.3) 2014-08-16 08:18:55.461
*** CLIENT ID:()2014-08-16 08:18:55.461
*** SERVICE NAME:()2014-08-16 08:18:55.461
*** MODULENAME:(sqlplus.exe) 2014-08-16 08:18:55.461
*** ACTION NAME:()2014-08-16 08:18:55.461 ORA-19815: 警告:db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用 100.00%, 尚有 0 字节可用。
************************************************************************
You have followingchoices to free up space from recovery area:
1. Consider changingRMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOGDELETION POLICY.
2. Back up files totertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space andincrease db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessaryfiles using RMAN DELETE command. If an operating
system command was used to delete files,then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************
ORA-19809:超出了恢复文件数的限制
ORA-19804: 无法回收33961984 字节磁盘空间 (从 4102029312 限制中)
*** 2014-08-1608:18:55.502 4132 krsh.c
ARCH: Error 19809Creating archive log file to'E:\APP\KANG\FLASH_RECOVERY_AREA\ORACLE\ARCHIVELOG\2014_08_16\O1_MF_1_159_%U_.ARC'
*** 2014-08-1608:18:55.502 2747 krsi.c
krsi_dst_fail: dest:1err:19809 force:0 blast:1
DDE: Problem Key 'ORA312' was flood controlled (0x1) (no incident)
ORA-00312: 联机日志 3 线程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG'
ORA-16038: 日志 3sequence# 159 无法归档
ORA-19809:超出了恢复文件数的限制
ORA-00312: 联机日志 3 线程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG' *** 2014-08-1608:18:55.565
USER (ospid: 6320):terminating the instance due to error 16038

从这里我们发现了问题的根源:“

ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用100.00%, 尚有 0 字节可用。” 是db_recovery_file_dest_size也叫归档日志空间不足导致的,既然找到问题的根源,那解决起来也就容易了。

解决途径

空间小,那摆在我们面前办法就是,一个是将空间设置大点,另一个就是将多余的文件删除掉即可,那么我们就将这两个办法都使用一下。

通过命令窗口:

--------设置归档日志空间的大小

  1. sqlplus / as sysdba
  2. shutdown abort     ----关闭进程
  3. startup mount       ---- 装载数据库
  4. select * from v$recovery_file_dest; ---查询归档日志
  5. db_recovery_file_dest_size=10737418240; --设置归档日志空间为10G
  6. Exit ---到这里空间大小已经设置完成
sqlplus / as sysdba
shutdown abort ----关闭进程
startup mount ---- 装载数据库
select * from v$recovery_file_dest; ---查询归档日志
db_recovery_file_dest_size=10737418240; --设置归档日志空间为10G
Exit ---到这里空间大小已经设置完成

--------删除归档日志

  1. rmantarget /   -----进入rman工具窗口
  2. RMAN>crosscheckarchivelog all;  --运行这个命令可以把无效的expired的archivelog标出来。
  3. RMAN>deletenoprompt archivelog until time "sysdate -3";  -- -即删除3天前的归档日志
rmantarget /   -----进入rman工具窗口
RMAN>crosscheckarchivelog all; --运行这个命令可以把无效的expired的archivelog标出来。
RMAN>deletenoprompt archivelog until time "sysdate -3"; -- -即删除3天前的归档日志

到这里就彻底ok了。接下来重新打开数据库:正常使用。

在删除归档文件中有一点要注意,通过命令窗口显示显示归档文件都在E:\app\kang\flash_recovery_area\oracle\ARCHIVELOG  下,但是我们不能手工在操作系统中直接把这些文件删除掉,这是因为在controlfile中记录着每一个archivelog的相关信息,当我们在OS中删除这些文件后,我们的controlfile中仍然记录着这些archivelog的信息,因此在Oracle的OEM管理器中还会存在这些日志。因为当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了。所以还是要通过命令窗口去执行删除这些文件的命令。

后记

归档日志其实是为了方便我们在恢复数据库时使用的,但是有时候这些归档日志有时确实会给我们带来一点点的小麻烦,所以这些归档日志还是需要我们去注意的。

ORA-03113:通信通道的文件结尾解决的更多相关文章

  1. ORA-03113:通信通道的文件结尾 解决办法

    登录Oracle时出现错误:“ORA-03113:通信通道的文件结尾” 错误排查方法 Oracle出现错误,查看trace日志寻找问题根源:D:\oracle\diag\rdbms\orcl\orcl ...

  2. 提示ORA-03113:通信通道的文件结尾解决

    第一步: sqlplus / as sysdbashutdown abortstartup mountSQL> show parameter background_dump_dest; NAME ...

  3. Oracle 11.2.0.1的一个Bug,客户端报ORA-03113: 通信通道的文件结尾

    半小时前,一个项目反馈应用系统部分功能报错,ORA-03113: 通信通道的文件结尾.好像是个常见的错误. 异常信息:ORA-03113: 通信通道的文件结尾 进程 ID: 2392 会话 ID: 2 ...

  4. ORA-03113 通信通道的文件结尾(ORA-19804 ORA-16038-归档空间满的处理方法)

    1.数据库启动报错SQL> startupORACLE 例程已经启动. Total System Global Area 1887350784 bytesFixed Size 2176848 b ...

  5. Oracle 11.2.0.1的又一个隐藏在ORA-03113后的bug: 通信通道的文件结尾

    近期又一个项目反馈ORA-03113错误: 通信通道的文件结尾.(jdbc程序报出的错误是:无法从套接字读取更多的数据) 发送之前处理过类似问题的解决方法(http://www.cnblogs.com ...

  6. ORA-03113:通信通道的文件结尾

    问题: 用命令startup启动实例时,报错“ORA-03113:通信通道的文件结尾”. 解决: SQL> startup mount ORACLE 例程已经启动. Total System G ...

  7. ORA-03113:通信通道的文件结尾-完美解决方案

    ORA-03113:通信通道的文件结尾-完美解决方案   oracle 文档中对这个错误这样解释: ORA-03113 错误就是说连接到数据库的网络中断了.有些错误由于频繁出现.原因复杂而被 Orac ...

  8. Oracle错误——ORA-03113:通信通道的文件结尾

    请参考:http://blog.csdn.net/zwk626542417/article/details/39667999 今天跟往常一样,登陆PL/SQL,确登陆失败,出现一个错误“ORA-010 ...

  9. ORA-03113: 通信通道的文件结尾 进程 ID: 764 会话 ID: 125 序列号: 5

    昨天因为导入很久数据,最后一看是因为数据文件不够,后来就关机了.现在,开启数据库,总是报“ORA-03113: 通信通道的文件结尾” SQL> conn /as sysdba; 已连接到空闲例程 ...

随机推荐

  1. 升级centos内核到最新版本

    root权限执行: rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/ ...

  2. 【云计算】marathon集群如何升级?

    Upgrading to a Newer Version We generally recommend creating a backup of the ZooKeeper state before ...

  3. select count(*)和select count(1)的区别

    一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的 假如表沒有主键(Primary key), 那么count(1)比count(*)快, 如果有主键的話 ...

  4. 如何恢复低版本的FlashPlayer

    本人做页游开发时,游戏用户那边经常会遇到一些很奇怪的问题.比如: 1.用户进入游戏,只显示游戏部分界面,chrome浏览器是正常的,就IE死活不行. 2.进入游戏时白屏或者一直加载不上. 3.玩游戏时 ...

  5. 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)

    一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...

  6. linux /usr/bin/ld cannot find 解决

    问题: 在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息: /usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source ...

  7. ACM/ICPC 之 BFS+状态压缩(POJ1324(ZOJ1361))

    求一条蛇到(1,1)的最短路长,题目不简单,状态较多,需要考虑状态压缩,ZOJ的数据似乎比POj弱一些 POJ1324(ZOJ1361)-Holedox Moving 题意:一条已知初始状态的蛇,求其 ...

  8. [转] 理解 Thread.Sleep 函数

    原文链接:http://www.cnblogs.com/ILove/archive/2008/04/07/1140419.html 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时 ...

  9. [转]Android中Application类的用法

    原文链接:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application ...

  10. 数据结构顺序表删除所有特定元素x

    顺序表类定义: template<class T> class SeqList : { public: SeqList(int mSize); ~SeqList() { delete[] ...