文章转自华为云社区,作者:kaliarch;原文链接:https://bbs.huaweicloud.com/blogs/336675
一、背景
由于业务增长,频繁的备份还原对于磁盘空间有了更大的空间需求,基本每周500G的磁盘,空间使用率都会达到85%以上,故编写oracle清理脚本结合crond自动清理oracle归档日志。
二、工具介绍
RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。而且,通过RMAN提供的接口,第三方的备份与恢复软件如veritas将提供更强大的备份与恢复的管理功能。通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据库、利用RMAN备份与移动裸设备(RAW)上的文件等工作将变得更方便简单。9i的RMAN通过增强的自动配置与管理功能,以及特有的块级别的恢复,将使备份与恢复工作变得更加快捷与完美。
使用RMAN连接到数据库时,默认使用SYSDBA角色登陆。
rman target / #连接进rman
复制
DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; #删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志
复制
由于物理磁盘dbf文件很多,如果进行物理删除dbf文件较麻烦,列出以下命令供物理删除参考
rm -rf `ls -l /home/oracle/app/arch/ |grep Apr|awk '{print $9}'` #PATH可以根据实际环境,删除Apr月的所有归档日志
复制
rm -rf `ls -l /home/oracle/app/arch/ |awk '{if ($7<20) print$0}'` #删除20号以前的日志
复制
如果手动在磁盘清理过日志文件,需要在rman内检查,然后删除过期的日志
crosscheck archivelog all; #检查所有归档日志 list expired archivelog all; #列出过期的归档日志 delete noprompt expired archivelog all; #删除过期的归档日志 delete noprompt archivelog all; #清除所有的归档日志
复制
三、自清理脚本
github地址
#!/bin/bash oracle_env() { source /home/oracle/.bash_profile export ORACLE_BASE=/home/oracle/app export ORACLE_HOME=$ORACLE_BASE/oracle/product/12.1.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin oraclecmd="/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/sqlplus" oraclerman="/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/rman" } disk_useper=`/bin/df -Th|grep -v 'Filesystem'|awk '/\/dev\/mapper\/vg00-lv_root/{if ("$(NF)"=="/");print $(NF-1)}'|cut -d% -f1` oracle_clean() { oracle_env ${oraclerman} target /<<EOF DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; crosscheck archivelog all; list expired archivelog all; delete noprompt expired archivelog all; exit; EOF } main() { if [ ${disk_useper} -gt 80 ];then oracle_clean fi } main
复制
配合定时任务清理磁盘,此在脚本内写的判断磁盘使用率大于80%进行清理,也可根据自己需求进行判断,或每次都执行清理。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
768次阅读
2025-04-18 14:18:38
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
751次阅读
2025-04-30 15:24:06
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
651次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
577次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
533次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
523次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
499次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
485次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
455次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
381次阅读
2025-04-15 14:48:05