0

0

Oracle自动清理日志脚本

看不見的法師

看不見的法師

发布时间:2025-07-10 13:32:16

|

881人浏览过

|

来源于php中文网

原创

一、背景

随着业务的增长,频繁的备份和还原操作对磁盘空间的需求不断增加。基本每周500G的磁盘空间使用率都会超过85%,因此编写Oracle清理脚本并结合crond自动清理Oracle归档日志成为必要。

二、工具介绍

RMAN(Recovery Manager)是Oracle提供的一种用于数据库备份(backup)、还原(restore)和恢复(recover)的工具。RMAN适用于ORACLE8及以上版本。它可以备份整个数据库或其组成部分,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN支持增量数据块级别的备份,这种备份方式在时间和空间上都非常有效,因为它只备份自上次备份以来发生变化的数据块。此外,通过RMAN的接口,第三方备份与恢复软件如Veritas可以提供更强大的管理功能。RMAN还提供了其他功能,如数据库克隆、使用RMAN建立备用数据库、利用RMAN备份和移动裸设备(RAW)上的文件等,使这些操作变得更加方便和简单。9i版本的RMAN通过增强的自动配置与管理功能以及独特的块级恢复,使备份与恢复工作更加快捷和完美。

在使用RMAN连接到数据库时,默认使用SYSDBA角色登录。

rman target / #连接到RMAN

DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; #删除系统时间7天前的归档日志,不会删除闪回区有效的归档日志

由于物理磁盘上的dbf文件很多,直接物理删除这些文件会比较麻烦,以下命令供物理删除参考:

Asp.net企业网站管理系统2.0 (精美实用)
Asp.net企业网站管理系统2.0 (精美实用)

漂亮的企业网站。NET2.0出来了, 本次升级修改如下: 1、优化了3层结构。 2、优化了后台管理代码,增强了安全性能。 3、增加了系统名称及关键字管理。 4、增加了系统错误日志记录,自动生成Systemlog.log日志文件。 备注:本系统采用ASP.NET 2.O+ACCESS开发,请调试的朋友安装.NET2.0运行环境! 网站内容 网站栏目包括 首页|企业简介|新闻中心|产品展示|公司展示|

下载

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

Oracle自动清理日志脚本

如果手动在磁盘上清理了日志文件,需要在RMAN中检查并删除过期的日志:

crosscheck archivelog all; #检查所有归档日志 list expired archivelog all; #列出过期的归档日志 delete noprompt expired archivelog all; #删除过期的归档日志 delete noprompt archivelog all; #清除所有归档日志

三、自清理脚本

#!/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 /
}

main() {
    if [ ${disk_useper} -gt 80 ]; then
        oracle_clean
    fi
}

main

配合定时任务清理磁盘,此脚本内设置了当磁盘使用率超过80%时进行清理,也可以根据需求调整为每次都执行清理。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

184

2023.09.27

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

713

2023.08.22

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

990

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

50

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

230

2025.12.29

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

266

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

207

2023.12.29

oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

263

2023.08.16

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.2万人学习

SQL优化与排查(MySQL版)
SQL优化与排查(MySQL版)

共26课时 | 2.2万人学习

MySQL索引优化解决方案
MySQL索引优化解决方案

共23课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号