oracle归档文件的创建和删除

产生归档日志的条件:
 1.数据库必须运行在归档模式下,
 2.归档进程必须启动.


--------------++归档常用命令指南++----------------
查看当前数据库是否是归档模式:
 select name,log_mode from v$database;
查看当前数据库的归档进程是否启动:
 select archiver from v$instance;  --started,stoped
禁止自动归档:
 alter system archive log stop;
手动归档联机重做日志文件:
 alter system archive log current;
指定多个归档日志目标:
 alter system set log_archive_dest_1="location=C:\xx\归档目录名"  --本地磁盘
 alter system set log_archive_dest_2="service=192.168.1.111:/Oracle/归档目录名" --远端备用数据库
将归档位置设置为 mandatory 或 optional (在出现故障之后、重试之前定义时间):
 alter system set log_archive_dest_1="location=C:\xx归档目录名  mandatory reopen"  --发生故障后,经过300秒后必须重新尝试归档到目标(缺省300秒)
 alter system set log_archive_dest_2="service=192.168.1.111:/Oracle/归档目录名 mandatory reopen=600"  --发生故障后,经过600秒后必须重新尝试归档到目标
 alter system set log_archive_dest_3="location=C:\xx\目录名 optional" --即使联机重做日志文件尚未成功地归档到该目标,也可以重新使用(这是缺省设置).
控制归档到目标:
 alter system set log_archive_dest_state_2=defer;  --禁用归档目标
 alter system set log_archive_dest_state_3=enable;  --重新启动归档(默认)
获取归档日志信息:
 v$archived_log  --归档日志
 v$archive_dest  --归档目录
 v$log_history  --归档历史
 v$database   --数据库
 v$archive_processes  --归档进程
SQL>archive log list;

手动归档: alter system archive log start;
停止归档: alter system archive log stop;
切换归档: alter system archive log current;

--------------------------------------------------- 

实验: 

数据库非归档转化为归档模式:
  1.SQL>shutdown immediate;    --关闭DB
  2.找到pfile文件添加以下信息(先备份pfile): --E:\Oracle\product\10.2.0\db_1\database\initorcl.ora
   *.log_archive_start=true  --在例程启动时启动自动归档 true/false(自动/手动归档)
     --(动态参数)也可在DB mount时用 alter system archive log start; 来设置
   *.log_archive_max_processes=2  --停止或启动附加归档进程(最多10个)
      --(动态参数)也可用 alter system set log_archive_max_processes=2; 来设置
      --在事务处理负载重或活动较多的时期,可临时启动更多归档进程以避免归档瓶颈.
   *.log_archive_dest_1="LOCATION=E:\Oracle\product\10.2.0\test\archive1"
   *.log_archive_dest_2="LOCATION=E:\Oracle\product\10.2.0\test\archive2"
   *.log_archive_dest_3="LOCATION=E:\Oracle\product\10.2.0\test\archive3"
   *.log_archive_min_succeed_dest=2  --指定本地目标的最小数量
   *.log_archive_format=db01%s%t%r.arc  --指定归档文件名格式(%s:包括日志序列号;%t:包括线程号;)  
   
  3.SQL>startup monut;     --mount 数据库.
     SQL>archiver log list   --检查归档进程的状态
       SQL>alter system archive log start to 'c:\xx\xxx\归档目录名'; --手动启动归档进程
  4.SQL>alter database archiverlog;  --修改成归档模式
  5.SQL>alter database open;    --打开DB
   SQL>select name from v$archived_log;
   SQL>select desc_name,status from v$archived_log;
   SQL>col dest_name format a30
   SQL>archive log list;
   SQL>alter system switch logfile;
   SQL>alter system switch logfile;
   
  6.删除归档日志:
   (1).开始菜单--&gt运行--&gt cmd --&gt rman target/
   (2).RMAN>delete archivelog all completed before 'sysdata-7'; --删除7天前的失效的归档日志
   (3).RMAN>crosscheck archivelog all;
   (4).RMAN>delete expired archivelog all;
   
  
------------------------------------------------------
  
Oracle 正确删除归档并回收空间的方法:

Oracle归档日志经常满,表现为/oraarchive 这个文件空间占用100%.Oracle有相应的归档维护工具,可以正确的删除归档和FLASHBACK,不过,Oracle归档日志对于Oracle的数据恢复和备份非常重要,不到万不得已是不能删除归档日志。
删除归档日志的。
过程:
以Oracle用户身份登录到数据库服务器主机或通过网络连接
进入Oracle数据备份工具
rman target/
或rman target/@orcl
在命令窗口里面执行
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
说明:
SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。
同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库
DELETE ARCHIVELOG FROM TIME 'SYSDATE-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子项上做很多操作,实现更复杂的功能

3.简要介绍一下report obsolete命令
使用report obsolete命令报告过期备份、
RMAN> report obsolete;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21021875/viewspace-623236/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21021875/viewspace-623236/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值