注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

常在心

淡泊明志,人生自在

 
 
 

日志

 
 

归档日志满后的清理  

2011-03-28 13:23:19|  分类: oracle管理 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
当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子项上做很多操作,实现更复杂的功能。
  评论这张
 
阅读(1014)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017