Oracle删除归档日志及添加定时任务
短信预约 -IT技能 免费直播动态提醒
一、删除归档日志
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删除归档日志内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341