欢迎投稿

今日深度:

Oracle删除归档日志及添加定时任务,

Oracle删除归档日志及添加定时任务,


目录
  • 一、删除归档日志
    • 1.切换用户
    • 2.使用RMAN工具
    • 3.连接本地数据库
    • 4.检查控制文件和实际物理文件的差别
    • 5.同步检查控制文件和实际物理文件的信息
    • 6.删除n天前的归档日志
    • 7.退出RMAN
  • 二、添加定时任务
    • 1.创建归档日志删除脚本
    • 2.授予脚本文件执行权限
    • 3.测试归档日志删除脚本
    • 4.添加定时任务
    • 5.查看定时任务
  • 总结

    一、删除归档日志

    1.切换用户

    # 切换至oracle用户
    su – oracle
    

    2.使用RMAN工具

    # 使用RMAN工具,删除失效的归档日志
    rman
    

    注:RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。

    3.连接本地数据库

    # 使用target命令连接本地数据库
    RMAN> connect target /
    

    4.检查控制文件和实际物理文件的差别

    执行crosscheck命令,检查控制文件和实际物理文件的差别,如果物理文件不存在于介质上,将标记为expired(失效/不可用),crosscheck之后,就可以删除这些失效的归档日志了(执行脚本后,删除的归档日志状态会变为“失效”)

    RMAN> crosscheck archivelog all;
    

    5.同步检查控制文件和实际物理文件的信息

    # 删除状态为expired(失效/不可用)的归档日志
    RMAN> delete expired archivelog all;
    

    6.删除n天前的归档日志

    # 删除 3 天前的归档日志:
    RMAN> delete archivelog all completed before 'sysdate-3';
    # 删除 1 天前
    RMAN> delete archivelog until time 'sysdate-1'
    

    区别:第一条带complete的语句,主要是删除已备份过的归档,没有备份的归档,不会被删除。而第二个语句, 则会删除掉归档,无论备份与否。

    7.退出RMAN

    # 退出RMAN
    RMAN> exit
    

    二、添加定时任务

    1.创建归档日志删除脚本

    archivelog_clear.sh

    #!/bin/bash
    BACK_DIR=/home/oracle/clear_archlog/data
    export DATE=`date +%F`
    mkdir -p $BACK_DIR/$DATE
    touch $BACK_DIR/$DATE/rman_backup.log
    echo "--------------------------------`date`-------------------------------"
    source ~/.bash_profile 
    # 记录日志rman_backup.log 可以后期检查是否执行成功
    rman target / >> $BACK_DIR/$DATE/rman_backup.log <<EOF             
    # 把无效的expired的archivelog标出来
    crosscheck archivelog all;
    # 直接全部删除过期的归档日志
    #delete noprompt expired archivelog all;
    # 直接删除7天前所有的归档日志
    delete noprompt archivelog all completed before 'sysdate-7';
    exit
    EOF
    echo -e "\n"
    echo "------------------------------ FINISHED ----------------------------"
    

    2.授予脚本文件执行权限

    #授予执行权限
    chmod +x archivelog_clear.sh
    

    3.测试归档日志删除脚本

    ./archivelog_clear.sh
    

    4.添加定时任务

    输入命令:crontab -e 编辑并且添加一行新的任务

    30 3 15 * *   /home/oracle/archivelog_clear.sh
    

    5.查看定时任务

    crontab -l
    

    总结

    到此这篇关于Oracle删除归档日志及添加定时任务的文章就介绍到这了,更多相关Oracle删除归档日志内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

    您可能感兴趣的文章:
    • Oracle控制文件丢失恢复归档模式方法
    • Oracle查询最近几天每小时归档日志产生数量的脚本写法
    • Oracle切换为归档模式的步骤及问题解决
    • oracle 如何关闭打开归档日志
    • Oracle联机日志文件与归档文件详细介绍

    www.htsjk.Com true http://www.htsjk.com/oracle/45427.html NewsArticle Oracle删除归档日志及添加定时任务, 目录 一、删除归档日志 1.切换用户 2.使用RMAN工具 3.连接本地数据库 4.检查控制文件和实际物理文件的差别 5.同步检查控制文件和实际物理文件的信...
    评论暂时关闭