暂无图片
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
打赏 0
NIU

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

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

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


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

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

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

tmp_e29ae5d0813daff48a388437357f783b5817416f66508f63.jpg

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

tmp_cb290599ad4befd1176e12717b4a32dd9230d263bdba4f65.jpg

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

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

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

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

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

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

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

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

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

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

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle DG环境中主库使用ASM,备库能不能不用ASM?
回答 3
已采纳
dbfilenameconvertlogfilenameconvert
oracle对存储过程的审计问题
回答 1
已采纳
1、若是用当前用户userA执行auditprocedurebyuserA执行成功后,【需要退出当前会话,然后再重新用USERA登录时,即可获取到相应的审计记录】;2、但:使用数据库审计时,特权用户(
历史的sql_id如何查询
回答 3
已采纳
如果这个语句查询很快的话,历史的视图是大概率找不到这个sqlid的,历史视图并不是记录所有执行过的语句
Oracle迁移数据到MySQL用那些方法最快速?
回答 3
已采纳
sqlines&nbsp;&nbsp;https://www.modb.pro/db/105996
OGG是否可以实现增量同步
回答 5
非常感谢!是的,测试是最好的检验方法。现在还没有测试环境,要等目前的数据都迁移完了,才有个环境可以测试。等我测试了再来关闭问题。非常感谢!
遇到latch: cache buffers chains 和buffer busy waits分别该如何解决
回答 1
latch:cachebufferschains:增加DBCACHESIZE参数的值,该参数控制着数据库缓存的大小。增加缓存大小可以减少竞争并提高性能。使用更快的存储设备,如使用固态硬盘(SSD)替换
oracle
回答 1
已采纳
参考一下:https://www.modb.pro/doc/110104
如何授权可以让普通用户执行dbms_spm 包, 不能授权dba角色?
回答 1
已采纳
GRANTADMINISTERSQLMANAGEMENTOBJECTtoUSER;
alter 出现大量 Process m000 died, see its trace file,数据库无法范文,怎么查是什么原因?
回答 3
如果在执行Oracle的alter命令时出现“Processm000died,seeitstracefile”这样的错误,并且数据库无法正常访问,这通常表示Oracle进程在执行过程中遇到了问题并已终
Oracle的自动段空间管理怎么关闭?
回答 1
已采纳
Oracle主要的空间管理方式有两种,一种是Oracle8i以前的字典管理表空间(DMT)技术,CREATETABLESPACEtablespacenameDATAFILE&x27;datafilep