中国教育在线 中国教育网 加入收藏 设为首页

Oracle删除归档日志实例

http://itpx.eol.cn  来源:  作者:  2010-08-12    

  当Oracle 归档日志满了后,将无法正常登入Oracle,需要删除一部分归档日志才能正常登入Oracle。

  一、首先删除归档日志物理文件,归档日志一般都是位于archive目录下,AIX系统下文件格式为“1_17884_667758186.dbf”,建议操作前先对数据库进行备份,删除时至少保留最近几天的日志用于数据库恢复。

  二、把归档日志的物理文件删除后,我们就可以正常登入Oracle了,但是还没完全把归档日志删除干净,Oracle的controlfile中仍然记录着这些archivelog的信息,在Oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,接下去我们要做的就是这个工作。

  我们利用RMAN进行删除操作,操作步骤如下:(WIN客户端系统为例)

  1.指定数据库实例

  C:\Documents and Settings\Administrator>SET Oracle_SID =orcl

  2.连接数据库

  C:\Documents and Settings\Administrator>RMAN TARGET SYS/sysadmin@orcl

  3.查看归档日志的状态

  RMAN> list archivelog all;

  4.手工删除归档日志文件

  RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

  说明:

  SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。

  同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库

  DELETE ARCHIVELOG from TIME 'SYSDATE-7'; 删除从7天前到现在的全部日志,慎用

  UNIX/LINUX下也可以通过FIND找到7天前的归档数据,使用EXEC子操作删除

  find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;

  这样做仍然会在RMAN里留下未管理的归档文件

  仍需要在RMAN里执行下面2条命令

  crosscheck archivelog all;

  delete expired archivelog all;

  所以还不如上面的方法好用,不过用FIND的好处就是,可以在条件上,和EXEC子项上做很多操作,实现更复杂的功能。

推荐给好友    我要收藏    我要纠错    分享到

免责声明:

① 凡本站注明“稿件来源:中国教育在线”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明“稿件来源:中国教育在线”,违者本站将依法追究责任。

② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。

内容推荐
eol.cn简介 | 联系方式 | 网站声明 | 京ICP证140769号 | 京ICP备12045350号 | 京公网安备 11010802020236号
版权所有 北京中教双元科技集团有限公司 EOL Corporation
Mail to: webmaster@eol.cn