当前位置: 首页 > news >正文

Oracle定时清理归档日志

线上归档日志满了,系统直接崩了,为解决这个问题,创建每月定时清理归档日志。
创建文件名 delete_archivelog.rman

CONFIGURE ARCHIVELOG DELETION POLICY CLEAR;
RUN {ALLOCATE CHANNEL c1 TYPE DISK;DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE - 7';RELEASE CHANNEL c1;
}

创建文件名 archive_cleanup.bat

@echo off
:: 设置 Oracle 实例的环境变量
set ORACLE_SID=EMR
set ORACLE_HOME=D:\app\Administrator\product\11.2.0\dbhome_1
set PATH=%ORACLE_HOME%\bin;%PATH%:: 设置日志文件路径(可选,用于记录日志)
set LOGFILE=%~dp0%archive_cleanup.logecho [%date% %time%] 开始删除7天前的归档日志... >> "%LOGFILE%":: 调用 RMAN 并执行脚本文件
"%ORACLE_HOME%\bin\rman" target / @delete_archivelog.rman >> "%LOGFILE%" 2>&1if %errorlevel% == 0 (echo [%date% %time%] 归档日志清理完成,未发现错误。 >> "%LOGFILE%"
) else (echo [%date% %time%] 警告:归档日志清理过程中发生错误,错误代码:%errorlevel% >> "%LOGFILE%"
)echo 清理完成,请查看日志文件:%LOGFILE%
pause

查询归档日志,是否删除。

SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME, BLOCKS * BLOCK_SIZE AS BYTES, DELETED
FROM V$ARCHIVED_LOG 
WHERE FIRST_TIME < SYSDATE  -- 这里以7天前为例子
ORDER BY SEQUENCE# DESC;SELECT TRUNC(SUM(blocks * block_size) / 1024 / 1024) AS "Archived Log Size (MB)"FROM v$archived_logWHERE deleted = 'NO';

win任务为例 每月1号触发脚本
在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/292355.html

相关文章:

  • RAG(检索增强生成)里的文档管理
  • 二次供水管理系统:远程监控+智能调控+故障预警解决方案
  • 用ffmpeg 进行视频的拼接
  • 【指南】网络安全领域:HW 行动(国家网络安全攻防演练)是什么?
  • 一些Avalonia与WPF内容的对应关系和不同用法
  • 单一职责原则(SRP):构建高质量软件的基石
  • Java 并发性深度解析
  • JS WebAPIs DOM节点概述
  • 网络层传输
  • 4G车载录像机的作用详解:提升行车安全与智能管理的核心技术
  • 数字签名(Digital Signature)
  • XSS内容分享
  • Windows 环境排除 Windows Defender 对指定路径或进程的影响
  • 在vscode 使用 remote-ssh
  • 【接口自动化】掌握接口自动化:核心概念讲解(理论知识)
  • 微博视觉算法面试30问全景精解
  • 8.4 Java 原生 TCP Socket 实现 HTTP 请求解析和请求分发
  • OpenCV基本的图像处理
  • 本地数据库有数据,web页面无信息显示,可能是pymysql的版本问题【pymysql连接本地数据库新旧版本的区别】
  • 【测试开发】----用例篇
  • 高并发场景下的缓存问题与一致性解决方案(技术方案总结)
  • 设计模式——责任链模式
  • 建造者设计模式
  • Qt布局管理:实现美观界面的关键
  • 2025 年最新 AI 技术:全景洞察与深度解析​
  • 从 0 到 1 搞定nvidia 独显推流:硬件视频编码环境安装完整学习笔记
  • Arraylist与LinkedList区别
  • 使用react编写一个简单的井字棋游戏
  • ZLMediaKit 入门
  • 第12天 | openGauss逻辑结构:模式管理