Welcome 微信登录

首页 / 数据库 / MySQL / ORA-03113:通信通道的文件结尾

ORA-03113:通信通道的文件结尾 进程ID4781
 查看alter.log
 发现提示联机日志文件有问题
 网上的方法看不是很懂,看到有很多错误
 ora-16038:日志无法归档
 ora-00312
 ORA-19809: limit exceeded for recovery files
 ora-19804:无法回收。。。磁盘空间
 原来Oracle11g在默认情况下,归档日志是保存在闪存恢复区的,并且闪存恢复区的大小默认是2g,空间满了之后就没有办法再归档了。
 
启动数据库到mount状态,statup mount 更改recovery files空间大小,然后rman,删除过期的备份,指定备份策略,定期删除备份。推荐阅读:ORA-01172、ORA-01151错误处理 http://www.linuxidc.com/Linux/2013-06/86529.htmORA-00600 [2662]错误解决 http://www.linuxidc.com/Linux/2013-06/86528.htmORA-01078 和 LRM-00109 报错解决方法 http://www.linuxidc.com/Linux/2012-07/66044.htmORA-00471 处理方法笔记 http://www.linuxidc.com/Linux/2013-09/90017.htmORA-00314,redolog 损坏,或丢失处理方法 http://www.linuxidc.com/Linux/2013-09/90646.htmORA-00257 归档日志过大导致无法存储的解决办法 http://www.linuxidc.com/Linux/2013-09/90594.htm
 
SQL> show parameter db_recovery_file_dest
 NAME                               TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 db_recovery_file_dest                string      d:appqiaoflash_recovery
                                                  _area
 db_recovery_file_dest_size         big integer 2G
 
 解决办法,有3种:
 1.加大闪存恢复区。
 ALTER SYSTEM SET db_recovery_file_dest_size=50g scope=both;
 
2.归档路径设置到其它地方。
 alter system set log_archive_dest = 其他路径
 
3.删除或转移归档日志。
 打开RMAN
 rman target /
 RMAN>crosscheck archivelog all; -- 运行这个命令可以把无效的expired的archivelog标出来。
 RMAN>delete expired archivelog all;  -- 直接全部删除过期的归档日志。
 RMAN>delete noprompt archivelog until time "sysdate -3";  --删除系统当前日期3天前的归档,不经过提示、直接删除。或(DELETE ARCHIVELOG ALL COMPLETED BEFORE "SYSDATE-7")
 
指定retention的策略(RMAN 的备份保留策略),使得archivelog不至于这样增加
 命令格式:
 configure retention policy clear ---------------备份保留策略使用默认值
 configure retention policy to none------------不采用任何备份保留策略
configure retention policy to recover window of integer days------------基于时间的备份保留策略,保留几天前的备份文件
 configure retention policy to redundancy integer-------基于冗余备份的备份保留策略,对备份文件保留几个冗余备份
 REPORT OBSOLETE命令查看当前处于废弃状态的备份文件
 DELETE OBSOLET 命令可立刻删除备份保留策略 不需要的文件(废弃文件)。RMAN>configure retention policy to recovery window of 7 days; 保留七天内的所有备份。
 RMAN>configure retention policy to redundancy 3;                为每个数据文件保留3个冗余备份。
 SQL>alter system db_recovery_file_dest_size=4G scope=both;当然我们可以写一个简单的shell脚本,对归档日志进行管理
 
#!/bin/bash
 #confirm oracle runing environment
 . /home/oracle/.bash_profile
 ps -ef |grep dbw0_$ORACLE_SID | grep -v grep >> /dev/null
 if [ $? -eq 0 ];then
    rman target / log=/orabackup/delarch`date +%Y%m%d`.log  <<EOF
    crosscheck archivelog all;
    delete noprompt  expired archivelog all;
    backup as compressed backupset archivelog all format "/orabackup/cron-archlog_%U_%d_%T_%s_%p" delete input;
 exit;
 EOF
 fi
 
以上脚本对oracle归档进行了备份然后删除,根据自己需要修改,然后添加到crontab更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12MySQL 临时表与dstat mysql临时表监控插件开发ORA-27101 ORA-01034 错误解决相关资讯      ORA-03113 
  • 误删重做日志文件组导致启动数据库  (07/17/2015 11:53:45)
  • ORA-03113解决方法  (10/16/2014 18:58:34)
  • Oracle数据库关闭时出现ORA-03113  (02/17/2014 15:25:38)
  • Oracle启动报错ORA-03113解决  (04/03/2015 09:35:35)
  • Oracle错误——ORA-03113:通信通道  (09/29/2014 20:24:47)
  • Oracle 11g ORA-03113故障,重建控  (02/12/2014 14:29:09)
本文评论 查看全部评论 (0)
表情: 姓名: 字数