暂无图片
oracle删除归档日志
我来答
分享
NIU
2019-06-19
oracle删除归档日志

自己利用crontab设置定期清理数据库归档日志的任务,脚本执行不起作用,能否帮忙给看看

#!/usr/bin/ksh

DATETIME=`date +"%d-%m-%Y"`

su - oracle -c "touch /arch1/del_arch.log"

echo "-----------------------------Start Time-----------------------------" >> /arch1/del_arch.log;

date >> /arch1/del_arch.log 

echo "--------------------------------------------------------------------" >> /arch1/del_arch.log;


su - oracle -c "rman target /  msglog '/arch1/del_arch.log' append"  <<EOF

run{

sql 'alter system switch logfile';

crosscheck archivelog all;

delete noprompt archivelog all completed before 'sysdate-1';

#delete noprompt archivelog until time "to_date('2018-06-05 08:00:00','yyyy-mm-dd hh24:mi:ss')";

}


EOF

echo "------------------------------End Time------------------------------" >> /arch1/del_arch.log;

date >> /arch1/del_arch.log

echo "--------------------------------------------------------------------" >> /arch1/del_arch.log;

mv /arch1/del_arch.log /arch1/del_arch_$DATETIME.log



我来答
添加附件
收藏
分享
问题补充
10条回答
默认
最新
燕鑫

不是有日志嘛?什么叫不起作用呢?是脚本正常执行了但是什么都没删,还是脚本本身就没执行成功?不管怎么样,日志都有迹可循。这个脚本我测了,没问题。

暂无图片 评论
暂无图片 有用 0
NIU

脚本在aix系统上执行成功但是没有删除,只保留半个小时的,切到归档路径下,查看没有起到作用

暂无图片 评论
暂无图片 有用 0
NIU

crosscheck archivelog list;查看到很多的faild日志,然后delete expired archivelog all;删除,需要进行选择,怎样让他忽略选择强制执行delete expired archivelog  all; 是在delete后面加参数“force”?


暂无图片 评论
暂无图片 有用 0
燕鑫

第一个问题:去看/arch1/del_arch.log里面日志记录
第二个问题:脚本里都给你示范了——>delete noprompt,这个说白了就是有提示时自动选择默认选择,至于强制删除又是另一回事。

暂无图片 评论
暂无图片 有用 0
NIU

tmp_e29ae5d0813daff48a388437357f783b5817416f66508f63.jpg

暂无图片 评论
暂无图片 有用 0
NIU

tmp_cb290599ad4befd1176e12717b4a32dd9230d263bdba4f65.jpg

暂无图片 评论
暂无图片 有用 0
燕鑫

你好好确定一下,你一天前的归档还在么?用ls -l把时间列出来,到数据库中把sysdate查出来。

暂无图片 评论
暂无图片 有用 0
燕鑫

比如说,现在10点,那么昨天10点之前的都会删除,如果本身就没有可删的,日志输出就是你截图这个样子,并且昨天10点以后的日志不会被删除,因为你的脚本里写的是before 'sysdate-1'

暂无图片 评论
暂无图片 有用 0
NIU

delete noprompt archivelog all completed before 'sysdate-0.5/24';之前保留一天的注释掉了 ,现在是只保留半个小时的

暂无图片 评论
暂无图片 有用 0
文成

脚本是可以执行的,建议写脚本的时候,可以使用变量存储日志路径,增加脚本灵活性。

faild可能是因为使用操作系统命令删除了归档日志,而在rman控制文件中还存在这些归档日志条目的原因。

你也可以在脚本执行后,手工在命令行执行一下删除的命令 看看是否有差异。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏