美文网首页Linux成长库
第四步:oracle-归档日志的删除与整理

第四步:oracle-归档日志的删除与整理

作者: 泡菜爱上WaSabi | 来源:发表于2018-05-21 14:17 被阅读35次

业务增长发展迅猛,归档日志增长太快,磁盘承受不了,所以准备做个定时清理归档日志的定时任务

ORACLE 定时清理归档日志详细过程

1、RM方式清理归档日志

清理归档日志,可以人为的删除已经归档好的日志文件,然后再调用rman里面RMAN> crosscheck archivelog all;来去数据库里面删除归档记录;也可以通过ram调用delete命令来删除归档日志。

2、使用rman清理归档日志

RMAN清除方式会自动清除磁盘上的归档日志文件,同时会释放控制文件中对应的归档日志的归档信息。
可以基于不同的条件来清除归档日志,如基于SCN,基于SEQUENCE,基于TIME等方式。
对于上述的三种方式又可以配合from, until, between .. and .. 等等子句来限定范围,方式灵活多变。
下面的命令用于校验归档日志的有效性,列出无效的归档日志,以及以何种方式清除归档日志,列出几种常用的:

delete noprompt archivelog until time "to_date('XXXX-XX-XX','YYYY-MM-DD')";    ---> 清理到某天日期之前的归档
delete noprompt archivelog until time "to_date('2016-09-14 18:00:00','YYYY-MM-DD hh24:mi:ss')";   ---> 清理到具体时分秒之前的归档日志
cross check archivelog all;                           --->校验日志的可用性
list expired archivelog all;                         --->列出所有失效的归档日志
delete archivelog until sequence 16;                 --->删除log sequence为16及16之前的所有归档日志
delete archivelog all completed before 'sysdate-7';   --->删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志
delete archivelog all completed before 'sysdate - 1'; --->同上,1天以前的
delete archivelog from time 'sysdate-1';             --->注意这个命令,删除系统时间1天以内到现在的归档日志
delete noprompt archivelog all completed before 'sysdate';  --->该命令清除当前所有的归档日志
delete noprompt archivelog all completed before 'sysdate-0';  --->该命令清除当前所有的归档日志
delete noprompt archivelog all;                              --->同上一命令
3、实现清理一个小时前的归档日志
执行命令:delete force archivelog all completed before 'sysdate-1/24';
(1)查看当前时间
[oracle@hch_test_121_90 ~]$ date
Tue Oct 11 11:20:20 CST 2016
[oracle@hch_test_121_90 ~]$
 
(2)查看当前一个小时之前的归档日志,看到有一个o1_mf_1_2822_czrm1dj8_.arc,如下所示:
[oracle@hch_test_121_90 ~]$ ll /oracle/app/oracle/flash_recovery_area/POWERDES/archivelog/2016_10_11/ |more
total 3181880
-rw-r----- 1 oracle oinstall 41340416 Oct 11 10:19 o1_mf_1_2822_czrm1dj8_.arc
-rw-r----- 1 oracle oinstall 40434176 Oct 11 10:20 o1_mf_1_2823_czrm49l9_.arc
-rw-r----- 1 oracle oinstall 41180160 Oct 11 10:22 o1_mf_1_2824_czrm76nd_.arc
-rw-r----- 1 oracle oinstall 40340480 Oct 11 10:23 o1_mf_1_2825_czrm9xos_.arc
 
(3)开始执行删除命令,按计划删除这一条归档日志
RMAN> delete force archivelog all completed before 'sysdate-1/24';
 
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=11 device type=DISK
List of Archived Log Copies for database with db_unique_name POWERDES
=====================================================================
 
Key     Thrd Seq     S Low Time
------- ---- ------- - ---------
1396    1    2822    A 11-OCT-16
        Name: /oracle/app/oracle/flash_recovery_area/POWERDES/archivelog/2016_10_11/o1_mf_1_2822_czrm1dj8_.arc
 
 
Do you really want to delete the above objects (enter YES or NO)? YES  # 输入删除命令
deleted archived log
archived log file name=/oracle/app/oracle/flash_recovery_area/POWERDES/archivelog/2016_10_11/o1_mf_1_2822_czrm1dj8_.arc RECID=1396 STAMP=924949164
Deleted 1 objects
 
RMAN>

4、自动化脚本定时任务实现清理一个小时前的归档日志
(1)自动化脚本

[root@hch_test_121_90 ~]# more archivelog_clear.sh
#!/bin/sh
BACK_DIR=/oracle/clear_archlog/data
export DATE=`date +%F`
echo "      " >> $BACK_DIR/$DATE/rman_backup.log
echo `date '+%Y-%m-%d %H:%M:%S'` >> $BACK_DIR/$DATE/rman_backup.log
su - oracle -c "
mkdir -p $BACK_DIR/$DATE
rman log=$BACK_DIR/$DATE/rman_backup.log target / <<EOF
# delete force archivelog all completed before 'sysdate-1/24';  # 这里执行清除归档日志,如果不想手动输入YES,则可以添加noprompt参数
delete force noprompt archivelog all completed before 'sysdate-1/24';
exit;
EOF
"
echo "   " >> $BACK_DIR/$DATE/rman_backup.log

(2)crontab定时任务

[root@hch_test_121_90 ~]# crontab -l
10 */1 * * * sh /home/oracle/archivelog_clear.sh

(3)查看执行后的日志

[root@hch_test_121_90 ~]# more /oracle/clear_archlog/data/2016-10-11/rman_backup.log
 
Recovery Manager: Release 11.2.0.1.0 - Production on Tue Oct 11 11:28:04 2016
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
 
connected to target database: POWERDES (DBID=3458668465)
 
RMAN>
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=137 device type=DISK
List of Archived Log Copies for database with db_unique_name POWERDES
=====================================================================
 
Key     Thrd Seq     S Low Time
------- ---- ------- - ---------
1397    1    2823    A 11-OCT-16
        Name: /oracle/app/oracle/flash_recovery_area/POWERDES/archivelog/2016_10_11/o1_mf_1_2823_czrm49l9_.arc
 
1398    1    2824    A 11-OCT-16
        Name: /oracle/app/oracle/flash_recovery_area/POWERDES/archivelog/2016_10_11/o1_mf_1_2824_czrm76nd_.arc
 
1399    1    2825    A 11-OCT-16
        Name: /oracle/app/oracle/flash_recovery_area/POWERDES/archivelog/2016_10_11/o1_mf_1_2825_czrm9xos_.arc
 
1400    1    2826    A 11-OCT-16
        Name: /oracle/app/oracle/flash_recovery_area/POWERDES/archivelog/2016_10_11/o1_mf_1_2826_czrmdqqy_.arc
 
1401    1    2827    A 11-OCT-16
        Name: /oracle/app/oracle/flash_recovery_area/POWERDES/archivelog/2016_10_11/o1_mf_1_2827_czrmhksn_.arc
 
 
Do you really want to delete the above objects (enter YES or NO)? "exit;" is an invalid response - please re-enter.
 
Do you really want to delete the above objects (enter YES or NO)?
Error occurred getting response - assuming NO response
 
RMAN>
 
Recovery Manager complete.

相关文章

  • 第四步:oracle-归档日志的删除与整理

    业务增长发展迅猛,归档日志增长太快,磁盘承受不了,所以准备做个定时清理归档日志的定时任务 ORACLE 定时清理归...

  • 归档日志 oracle

    Oracle-归档日志详解(运行模式、分类) 一、Oracle日志分类 分三大类: Alert log files...

  • Oracle归档日志导致磁盘满

    报错现象 解决 登录数据库服务器,查看归档日志使用状态 查看数据库归档日志位置,以及最大容量 使用rman用户删除...

  • oracle删除归档

    oracle删除归档,可以使用rman删除归档,也可以使用rm直接删除! 1.使用rm删除归档: 删除所有归档:f...

  • 浅谈Oracle归档日志

    什么是归档日志 归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记...

  • Oracle归档日志操作

    查询日志的归档模式: 查询归档日志的信息: 查询正在使用的组所对应的日志文件: 查看归档信息:

  • Oracle数据库删除备份

    常规删除,删除过期备份: 直接删除所有归档日志文件,不管是不是已经备份数据库 自己删除备份,不管是不是超期 上面命...

  • Oracle归档日志

    显示归档日志信息 1,使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的...

  • RMAN中backup archivelog all 和plus

    备份归档日志方式: 单独备份归档日志:backup archivelog all 在执行备库时一起备份归档日志:b...

  • 归档模式

    1:归档日志文件 在线日志 ——用于崩溃/实例恢复/介质恢复 归档日志 ——用于介质恢复 2:确认数据...

网友评论

    本文标题:第四步:oracle-归档日志的删除与整理

    本文链接:https://www.haomeiwen.com/subject/dvsfjftx.html