zoukankan      html  css  js  c++  java
  • Linux shell crontab expdp 定时任务逻辑备份 定时删除旧文件

    点击进入:Window bat expdp 定时任务逻辑备份 定时删除N天前的旧文件

    创建sh脚本

    [oracle@localhost ~]$ vi logicbackup.sh

    添加脚本内容

    #!/bin/sh
    # ##################################################################
    #             Powered by Ironfo
    # ##################################################################
    # Oracle Environment settings 
    ORACLE_BASE=/usr/local/oracle; export ORACLE_BASE
    ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;  export ORACLE_HOME 
    PATH=$ORACLE_HOME/bin:/usr/local/bin:/usr/ccs/bin:$PATH:/usr/sbin
    export PATH
    CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib ; export CLASSPATH
    backup_dir=$ORACLE_BASE/admin/orcl/dpdump
    #可以创建数据泵目录directory,这里指定默认的目录
    #SQL>CREATE DIRECTORY dump_backup_dir as '/u01/oradata/dump_backup_dir';
    #SQL>grant read,write on directory dump_backup_dir to user;  
    DMP_FILE=PH_$(date +%Y%m%d_%H%M%S).dmp
    LOG_FILE=PH_$(date +%Y%m%d_%H%M%S).log
    #
    #  Let's start with an export of the database 
    expdp user/pwd@orcl schemas=schema_name DUMPFILE=$DMP_FILE logfile=$LOG_FILE compression=all;
    #expdp user/pwd@orcl schemas=schema_name DIRECTORY=$dump_backup_dir DUMPFILE=$DMP_FILE logfile=$LOG_FILE compression=all parallel=3;
    # 这里的2个说明,用户名和密码换成自己的,我这里是备份表空间。
    # parallel 这个参数是控制并行度的,默认是1,但对于数据库比较大的时候,可以设置parallel,这样可以较少备份的
    #时间,但是设置并行会耗CPU 资源,如果CPU 资源比较紧张的话,就不要设了。
    #
    # Just to be safe (with space), we'll compress the export file
    # 压缩dmp 文件,较少对空间的占用
    #compress *.dmp
    
    #
    # Let's delete the backups and logs that are more than 1 days old
    # 删除2天前PH_开头的dmp文件
    # 
    cd $backup_dir
    find $backup_dir -mtime +2 -name "PH_*"  -exec rm -f {} ;
    # That's all

    :wq 保存并退出

    设置权限

    [oracle@localhost ~]$ chmod 777 ./logicbackup.sh 

    添加定时任务

    [oracle@localhost ~]$ crontab -e
    #每6小时执行一次 错误信息将输出到 tmp/expdp.log 文件中
    * */6 * * * /home/oracle/logicbackup.sh > /tmp/expdp.log 2>&1

    查看任务

    [oracle@localhost ~]$ crontab -l
    * */6 * * * /home/oracle/logicbackup.sh > /tmp/expdp.log 2>&1
    [oracle@localhost ~]$ 
    crontab -r 删除定时任务

    crontab 前面5个*参数的意义:
    0~59 表示分
    1~23 表示小时
    1~31 表示日
    1~12 表示月份
    0~6 表示星期(其中0表示星期日)

    Linux下crontab的使用

    ftp 自动上传数据库备份文件

  • 相关阅读:
    stack的基本使用方式
    洛谷 P2356 弹珠游戏
    关于字符串数组的一些操作
    递归分解因数
    筛法求素数模板
    世界顶级精英们的人生哲学!(转)
    Oracle 中重新编译无效的存储过程, 或函数、触发器等对象(转)
    由于没有安装音量控制程序,WINDOWS无法在任务栏上显示音量控制(转)
    Maximo(转)
    oracle 中nvl和sql server中isnull功能一样的
  • 原文地址:https://www.cnblogs.com/vipsoft/p/4989560.html
Copyright © 2011-2022 走看看