Heim > Datenbank > MySQL-Tutorial > ORA-03113:通信通道的文件结尾

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

WBOY
Freigeben: 2016-06-07 16:47:49
Original
1305 Leute haben es durchsucht

ORA-03113:通信通道的文件结尾 进程ID4781 查看alter.log 发现提示联机日志文件有问题 网上的方法看不是很懂,看到有很多错误 or

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错误处理

ORA-00600 [2662]错误解决

ORA-01078 和 LRM-00109 报错解决方法

ORA-00471 处理方法笔记

ORA-00314,redolog 损坏,或丢失处理方法

ORA-00257 归档日志过大导致无法存储的解决办法
 
SQL> show parameter db_recovery_file_dest
 NAME                                TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 db_recovery_file_dest                string      d:\app\qiao\flash_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      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

linux

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage