Oracle定时清理归档日志脚本

更新时间:2023-06-25 17:43:15 阅读: 评论:0

Oracle定时清理归档⽇志脚本1 报错信息
数据库报如下错误:
ora-27101: shared memory realm does not exist
西湖介绍ora-01034: oracle not available 11g
ORA-24324: rvice handle not initialized
原因:由于数据库归档⽇志满了,不能继续往数据库⾥写数据。
2 查看归档⽇志⼤⼩
# su - oracle
$ sqlplus / as sysdba
SQL> show parameter recover相顾一笑的意思
感恩节是可查看到归档⽇志⽬录为:/u01/app/oracle/fast_recovery_area/******/archivelog
妇洁舒洗液
可以查看该⽬录的⼤⼩,对⽐数据库设置的⽇志空间,该⽬录⼤⼩不能⼤于数据库设置的空间。
3 扩⼤归档⽇志⼤⼩
SQL> alter system t db_recovery_file_dest_size=100G;
4 清理归档⽇志
扩⼤后还需设置定时计划清理归档⽇志,需要切换到oracle账号执⾏命令
rman target /
RMAN> crosscheck archivelog all;    # 把⽆效的expired的archivelog标出来
RMAN> delete expired archivelog all;    # 直接全部删除过期的归档⽇志
RMAN> delete archivelog until time 'sysdate-3'  # 直接删除三天前所有的归档⽇志
5 设置⾃动脚本
5.1 编写脚本
# su - oracle        # 切换到oracle⽤户下执⾏操作
形容感情的词语
# cd /u01/app    # 脚本存放⽬录
$ vi del_arch.sh
#!/bin/bash
echo "----------------------------------------`date`---------------------------------------"
source ~/.bash_profile
rman target / >> delarchive.log <<EOF      # 记录⽇志delarchive.log 可以后期检查是否执⾏成功
crosscheck archivelog all;      # 把⽆效的expired的archivelog标出来
delete noprompt expired archivelog all;    # 直接全部删除过期的归档⽇志
白露谚语
delete noprompt archivelog all completed before 'sysdate-7';  # 直接删除三天前所有的归档⽇志句子英语
exit
EOF
echo -e "\n"
echo "------------------------------------ FINISHED ------------------------------------"
chmod +x del_arch.sh    # 授权这个脚本执⾏权限
2.添加定时任务
$ crontab -e
* 1 * * *  sh /u01/app/del_arc.sh  # 每⽇1点执⾏
# 绝对路径
葛鱼汤的做法
rvice crond restart      # 重启服务
注意,这个脚本要⽤oracle⽤户创建;然后chmod +x 脚本名,给脚本添加上可执⾏权限;crontab也要⽤oracle添加,不然rman连不上

本文发布于:2023-06-25 17:43:15,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1054583.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:脚本   归档   数据库   设置
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图