当前位置:  数据库>oracle

Linux/Unix shell 脚本清除归档日志文件

    来源: 互联网  发布时间:2017-05-20

    本文导语: 对于DEV以及UAT环境,有些时候,数据库需要处于归档模式,但并不需要备份数据库。因此,archive归档日志不停的增长导致磁盘空间被大量耗用。对于这种情形,可以使用一个shell脚本来定时自动清除这些归档日志。本文给出了清...

对于DEV以及UAT环境,有些时候,数据库需要处于归档模式,但并不需要备份数据库。因此,archive归档日志不停的增长导致磁盘空间被大量耗用。对于这种情形,可以使用一个shell脚本来定时自动清除这些归档日志。本文给出了清除归档日志的脚本。

1、清除归档日志shell脚本 

robin@SZDB:~/dba_scripts/custom/bin> more remove_arch_dump.sh
#!/bin/bash
# ------------------------------------------------------------+
#  FileName: remove_arch_dump.sh                            |
#  Desc:                                                    |
#        Remove old archived log and data pump file          |
#  Usage:                                                    |
#        ./remove_arch_dump.sh                                |
#                                                            |
#  Authror : Robinson                                        |
#  Blog    : http://blog.csdn.net/robinson-0612              |
# ------------------------------------------------------------+

filename=/etc/oratab

cat $filename | while read LINE
do
    case $LINE in
        #*)                ;;        #comment-line in oratab
        *)
        Oracle_SID=`echo $LINE | awk -F: '{print $1}' -`
        echo $ORACLE_SID
 
        # ---------------------------------
        # define archived log directory   
        # ---------------------------------
        dir=/u02/database/$ORACLE_SID/archive/
        echo $dir

        filelist=`ls -t $dir`
        echo $filelist
       
        # ----------------------------------------------------------
        # start to remove archived log and keep last 2 archived log
        # ----------------------------------------------------------
        count=0
        for filename in $filelist
        do
                echo $filename
                count=$(($count+1))
                if [ $count -gt 2 ]; then
                        echo $count
                        rm -vrf $dir$filename
                fi
        done
        ls -tr $dir
       
        # --------------------------------
        # define data pump dump directory
        # --------------------------------
        dir=/u02/database/$ORACLE_SID/BNR/dump/
        echo $dir

        filelist=`ls -t $dir`
        echo $filelist
       
        # ---------------------------------------------------------
        # start to remove data pump file and keep last 5 dump file
        # ---------------------------------------------------------
        count=0
        for filename in $filelist
        do
                echo $filename
                count=$(($count+1))
                if [ $count -gt 5 ]; then
                        echo $count
                        rm -vrf $dir$filename
                fi
        done
        ls -tr $dir

    ;;
    esac
done
exit

2、脚本说明

a、该脚本通过一个外部循环来读取oratab中定义的数据库的SID来寻找对应数据库的归档日志路径以及datapump dump路径。

b、使用了一个for循环来清除归档日志,且保留最后的2个归档日志文件。

c、接下来的另一个for循环则用来清除当前SID下对应的dump(Oracle datapump)目录下导出的dump文件。

d、同清除归档日志一样,设定了保留dump目录最近的5个文件。保留多少个最近的文件(dump的5,或者归档日志2)可以修改。

e、如果不需要清除dump路径,可以将dump部分注释掉。

f、根据需要将其部署到crontab。


    
 
 

您可能感兴趣的文章:

  • Hp Unix 或Linux下用tar归档,Aix Unix无法解归档,急!
  • Linux下Oracle归档日志自动清理脚本代码(sh)
  • 请问在 LINUX下如何编辑脚本(可以直接运行脚本访问WINDOW系统)
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • 关于arm linux下的别名配置脚本如何在进入用户时让shell执行的问题,如bashrc,profile,.bash_profile等脚本,寻求高手解答
  • Linux下如何编写脚本文件
  • 关于linux的脚本运行。。。求高人指点
  • linux重新启动后自动运行脚本程序
  • 谁能简单介绍一下LINUX上的各种语言脚本的功能.
  • linux shell脚本
  • 请问关于linux脚本的一个问题。
  • LINUX的系统管理脚本
  • Linux脚本
  • linux脚本中命令运行结果判断
  • 求助:linux脚本语言写SQL语句
  • window下通过ftp执行linux脚本?
  • 如何在Linux下使用脚本实现程序的自动重启!望各位详解!
  • 求linux下定时重启服务的脚本
  • linux shell脚本无法改变环境变量
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • 求助:Linux 脚本如何提取MAC地址
  • 请教斑竹,在linux下怎么执行位于其他机器上的脚本
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux僵尸(zombie)进程介绍及清除
  • 如何清除Linux命令的历史记录(清除不该保留的命令)
  • Linux/Centos/Ubuntu清除系统缓存释放内存命令介绍
  • linux tmp自动清除的恢复
  • linux下有没有清除字符串中空格的函数?
  • SUSE LINUX如何清除系统日志?
  • 如何清除linux 串口缓冲区
  • 如何清除Linux命令的历史记录
  • linux 清除 文件内容的命令
  • 清除linux历史记录
  • 如何清除Redhat Linux6.2中的历史记录?
  • 关于linux的脚本运行。。。求高人指点 iis7站长之家
  • linux虚拟机数据如何清除干净?
  • Linux新手,怎么清除configure之后生成的文件?
  • 我的linux sendmail邮件服务器的/var/spool/mqueue有很多文件,应该怎样清除没有发送出去的过时邮件呢
  • 救我!!!如何删除清除LINUX系统呢,谢谢
  • 请问在Linux中,当我输入crontab,不加任何参数,回车,会不会将cron文件中的内容清除?
  • 我用笔记本电脑装Linux,可是上面的字体很不清除怎么设置字体才能让他看起来舒服一点?
  • linux 下如何清除CMOS密码?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,