美文网首页
Oracle主从数据库清理归档日志

Oracle主从数据库清理归档日志

作者: 沁园Yann | 来源:发表于2021-12-22 15:59 被阅读0次

    一、手动清理归档日志

    1、查看磁盘空间:
    df -h
    
    2、查看归档日志空间使用情况
    select * from v$flash_recovery_area_usage; //返回使用百分百
    
    select * from v$recovery_file_dest;  //返回实际使用情况
    
    3、切换Oracle用户:
    su - oracle
    
    4、免密码进入 rman:
    rman target sys/pass
    
    5、删除7天前的归档日志:
    DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
    
    6、删除截止到前一天的所有archivelog:
    delete archivelog until time 'sysdate-1' ;
    
    7、查看在线日志状态:
    select group#,sequence#,status,archived from v$log;
    
    8、切换日志:
    alter system switch logfile;
    

    二、定时清理归档日志

    1、
    切换至oracle用户

    su - oracle
    

    2、进入Oracle安装目录下的app文件夹

    cd /usr/local/oracle/app
    

    3、新建目录并创建脚本文件(一定要在oracle用户下操作)

    mkdir arcclear
    
    cd arcclear
    
    vi arcclear.sh  # 会自动创建新文件
    

    arcclear.sh 脚本内容如下

    source ~/.bash_profile
    rman target / <<EOF
    delete noprompt archivelog until time "sysdate-6";
    exit;
    EOF
    

    4、给文件分配权限(一定要在oracle用户下操作)

    chmod  +x arcclear.sh
    

    5、给Oracle 用户创建计划任务(一定要在oracle用户下操作)

    crontab -e
    

    新增内容

    30 1 1 * * sh /usr/local/oracle/app/arcclear/arcclear.sh >> /usr/local/oracle/app/arcclear/arcclear.log   # 每月1号1点30份执行
    

    crontab 计划任务时间设置说明

    # For details see man 4 crontabs
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed
    

    6、重启 crontab 服务

    service crond restart
    

    相关文章

      网友评论

          本文标题:Oracle主从数据库清理归档日志

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