我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中仍然记录着这些archivelog文件的相关信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除 archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了,这时候我们要做手工的清除的话,下面我经过实验,可以尝试这种方法:

1、进入rman

[root@db1 ~]# su - oracle
[oracle@db1 ~]$ /u01/app/oracle/product/10.2.0/db/bin/rman

一般都设置了环境变量,所以可以直接执行 rman 命令,如下:

[oracle@db1 ~]$ rman
Recovery Manager: Release 11.2.0.1.0 - Production on Fri Sep 25 16:18:03 2020
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. RMAN>

2、connect target /

RMAN> connect target /
connected to target database: ORA11G (DBID=4206582437)

RMAN>

3、crosscheck archivelog all;

crosscheck archivelog all:验证的是DB的归档日志即log_archive_dest参数指定位置的文件,当手工删除了归档日志以后,Rman备份会检测到日志缺失,从而无法进一步继续执行Rman备份,所以此时需要手工执行crosscheck过程,查看所有的归档日志文件是否都是正常的然后再来执行Rman备份。

4、delete expired archivelog all;

这时候我们再去OEM中就看不到这些日志文件了,如果你的从来没有做过这个动作的话,我们可以比较这个动作前的controlfile和动作后的controlfile的文件大小。

Oracle 正确删除归档并回收空间的方法

一个 Oracle 归档日志经常满,表现为 /archivelog 这个文件空间占用 100%。大家总是抱怨 Oracle 为何没有归档维护工具,很多人直接删除了事,其实错了,Oracle有归档维护工具,而且很智能,可以正确的删除归档和 FlashBack。

不过切记:Oracle归档日志对于Oracle的数据恢复和备份非常重要,不到万不得已不要删除归档日志。

删除归档日志的过程,如下:

1、以 oracle 用户身份登录

以 oracle 用户身份登录到数据库服务器主机或者通过网络连接。

2、进入Oracle数据备份工具

[oracle@db ~]# rman
RMAN> rman target /

或者

/u01/app/oracle/product/10.2.0/db/bin/rman target/

或者

/u01/app/oracle/product/10.2.0/db/bin/rman target/@DTHXRAC1

3、在RMAN命令窗口里操作

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

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

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

RMAN> DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';

Unix/Linux 下也可以通过 find 命令找到7天前的归档数据,使用 exec 子操作删除,如下:

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

这样做仍然会在 RMAN 里留下未管理的归档文件,它的作用还是相当于直接用操作系统命令将归档日志文件直接删除,而 Oracle 控制文件并不知道,因此仍需要在 RMAN 里执行下面两条命令:

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

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

简单介绍一下 report obsolete 命令

使用 report obsolete 命令报告过期备份:

RMAN> report obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of obsolete backups and copies
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set 125 01-NOV-04
Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804
Backup Set 131 04-NOV-04
Backup Piece 131 04-NOV-04 /data1/oracle/orabak/full_AVATAR2_20041104_131
....
Backup Set 173 06-DEC-04
Backup Piece 173 06-DEC-04 /data1/oracle/orabak/full_AVATAR2_20041206_173
Backup Set 179 11-DEC-04
Backup Piece 179 11-DEC-04 /data1/oracle/orabak/arch544588206.arc
..... Backup Piece 189 17-DEC-04 /data1/oracle/orabak/arch545106606.arc
Backup Set 190 17-DEC-04
Backup Piece 190 17-DEC-04 /data1/oracle/orabak/arch545106665.arc
Backup Set 191 20-DEC-04
Backup Piece 191 20-DEC-04 /data1/oracle/orabak/arch_AVATAR2_20041220_194
Archive Log 2973 20-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2985.dbf
Archive Log 2971 20-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2984.dbf
.....
Archive Log 2705 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2717.dbf
Archive Log 2704 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2716.dbf
Archive Log 2703 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2715.dbf
Archive Log 2702 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2714.dbf

使用 delete obsolete 命令删除过期备份

RMAN> delete obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
using channel ORA_DISK_1 Deleting the following obsolete backups and copies:
Type Key Completion Time Filename/Handle -------------------- ------ ------------------ --------------------
Backup Set 125 01-NOV-04
Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804
....
Archive Log 2704 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2716.dbf
Archive Log 2703 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2715.dbf
Archive Log 2702 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2714.dbf
Do you really want to delete the above objects (enter YES or NO)? yes
deleted backup piece
backup piece handle=/data1/oracle/orabak/full_AVATAR2_20041206_173 recid=173 stamp=544156241
.....
deleted archive log
archive log filename=/opt/oracle/oradata/avatar2/archive/1_2715.dbf recid=2703 stamp=545108268
deleted archive log
archive log filename=/opt/oracle/oradata/avatar2/archive/1_2714.dbf recid=2702 stamp=545107659
Deleted 286 objects RMAN> crosscheck archivelog all;
allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=9 devtype=DISK
validation succeeded for archived log
archive log filename=/archivelog1/1_615_737652750.dbf recid=928 stamp=750848535
validation succeeded for archived log
archive log filename=/archivelog1/1_616_737652750.dbf recid=930 stamp=750851615
Crosschecked 2 objects

Oracle 正确删除归档日志的方法的更多相关文章

  1. (转) ORACLE 正确删除归档日志的方法

    ORACLE 正确删除归档日志的方法 我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中 ...

  2. oracle 正确删除归档日志,并清除 V$ARCHIVED_LOG 数据

    1. 连接 RMAN 管理 rman target / 2. 查看归档日志列表 RMAN> crosscheck archivelog all; 3. 删除所有归档日志 RMAN> DEL ...

  3. 当ORACLE归档日志满后如何正确删除归档日志

    当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入ORACLE. 一.首先删除归档日志物理文件,归档日志一般都是位于archive目录下,AIX系统下文件格 ...

  4. Oracle 11g 删除归档日志

    工作环境ORACLE 11g 归档日志满了,手动删除出现 ora 异常. 注:工作环境是linux redhat 5 执行命令如下: 1. 进入rman 2. connect target / 3. ...

  5. oracle从备份归档日志的方法集中回收

    oracle从备份集中抓出归档日志方法 在大连医院遇到这个问题,数据库为归档状态,但归档完成后rman通过crontab自己主动备走归档日志并删除存在系统上的归档日志文件.在RealSync程序停止一 ...

  6. ORACLE归档日志满了之后,如何删除归档日志

    当ORACLE归档日志满后如何正确删除归档日志 版权声明:本文为博主原创文章,未经博主允许不得转载. 当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入OR ...

  7. Windows平台使用RMAN命令自动删除Oracle过期归档日志的方法

    自动删除Oracle过期归档日志的思路如下: 1.编写自动执行的bat脚本文件: 2.Windows设置定期执行计划 OracleArchLogClear.bat D:/Oracle/product/ ...

  8. dataguard主库删除归档日志后从库恢复的方法

    ------------------方法1在主库上使用备份的进行恢复丢失的归档日志-------------------------1.发现主库备份后删除了归档,但是这些归档从库还没应用,也没有传到从 ...

  9. oracle删除归档日志

    查看归档模式: SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive ...

随机推荐

  1. JVM—01

    目录 1.1 JVM系统架构图 2.1 类加载器 2.1.1 双亲委派机制 2.1.2 沙箱安全机制 3.1 Native 4.1 PC寄存器 1.1 JVM系统架构图 JVM是什么? JVM是Jav ...

  2. ASP导出数据到excel遇到的一些问题

    一直用动易平台的ASP做新闻发布网站,直到现在才接触导出数据到Excel的问题,目的在于公司要统计各部门的投稿量,要做这么个东西,实现起来是挺简单的,但是第一次做,还是费了一些功夫的,特此记录一下 主 ...

  3. 从两表连接看Oracle sql优化器的效果

    select emp.*,dept.* from tb_emp03 emp,tb_dept03 dept where emp.deptno=dept.id -- 不加hint SQL> sele ...

  4. MyBatis源码流程分析

    mybatis核心流程三大阶段 Mybatis的初始化  建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提 ...

  5. Java 根据两个经纬度,得到两点距离

    private static final double EARTH_RADIUS = 6371000;//赤道半径(单位m)private static final double INTEGR_NUM ...

  6. 6.AVCodecContext和AVCodec

    AVCodecContext  AVCodecContext 结构表示程序运行的当前 Codec 使用的上下文,着重于所有 Codec 共有的属性(并且是在程序运行时才能确定其值)和关联其他结构的字段 ...

  7. 基于 ramfs 的 OTA

    背景 默认的 OTA 方案是基于 recovery 系统完成的.某个产品考虑产品形态和 flash 容量之后,计划去掉 recovery 系统(不考虑掉电安全),这就需要 OTA 方案能支持在只有单个 ...

  8. Mysql主从分离与双机热备超详细配置

    一.概述 本例是在Windows环境,基于一台已经安装好的Mysql57,在本机安装第二台Mysql57服务. 读完本篇内容,你可以了解到Mysql的主从分离与双机热备的知识,以及配置期间问题的解决方 ...

  9. pip更新命令

    python -m pip install --upgrade pip 更新时如果报错'NoneType' object has no attribute 'bytes', 解决办法:easy_ins ...

  10. SpringBoot 配置的加载

    SpringBoot 配置的加载 SpringBoot配置及环境变量的加载提供许多便利的方式,接下来一起来学习一下吧! 本章内容的源码按实战过程采用小步提交,可以按提交的节点一步一步来学习,仓库地址: ...