Oracle清理:如何安全删除trace, alert和archivelog文件?

news/2025/9/18 17:20:21/文章来源:https://www.cnblogs.com/lunzi1992/p/19099226

Oracle 数据库运行时文件清理指南

背景:公司阿里云数据库主机,由于长期运行空间告急,通知各项目组多次要求转移数据库空间文件进展缓慢,为保证空间占满影响数据库服务,才有了这次操作,现将实践操作记录下来, 方便后续同时进行操作

本文档总结如何在 Oracle 19.3 数据库(测试环境,安装路径 /home/oracle19c/u01)中清理运行时生成的文件(如诊断日志、归档日志)以节省磁盘空间。目标是清理 /home/oracle19c/u01/app/diag/rdbms/orcl19c/orcl19c(如 incident 曾占 18GB)等目录,保留最近 7 天数据,使用 ADRCI 和 RMAN 工具,无需停止数据库。

1. 环境准备

1.1 设置环境变量

oracle19c 用户登录,配置环境:

su - oracle19c
export ORACLE_SID=orcl19c
export ORACLE_BASE=/home/oracle19c/u01/app
export ORACLE_HOME=/home/oracle19c/u01/app/product/19.3
export PATH=$ORACLE_HOME/bin:$HOME/.local/bin:$HOME/bin:/usr/local/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  • 验证 ADRCI:

    which adrci
    
    • 应返回 /home/oracle19c/u01/app/product/19.3/bin/adrci

1.2 确认磁盘占用

检查 /home/oracle19c/u01/app 目录:

du -sh /home/oracle19c/u01/app/* | sort -hr

示例输出(2025-08-01):

32G     /home/oracle19c/u01/app/oradata
8.0G    /home/oracle19c/u01/app/product
12.5G    /home/oracle19c/u01/app/diag
28M     /home/oracle19c/u01/app/cfgtoollogs
13M     /home/oracle19c/u01/app/oraInventory
11M     /home/oracle19c/u01/app/fast_recovery_area
724K    /home/oracle19c/u01/app/admin
12K     /home/oracle19c/u01/app/audit
4.0K    /home/oracle19c/u01/app/checkpoints

重点清理:

  • /diag(12.5G):诊断数据(incidenttracecdump)。
  • /admin(724K):审计日志(adump)。
  • /fast_recovery_area(11M):归档日志。
  • /product(8.0G):检查日志(如 listener.log)。

2. 清理诊断文件(ADRCI)

使用 ADRCI 清理 /home/oracle19c/u01/app/diag/rdbms/orcl19c/orcl19c/home/oracle19c/u01/app/admin/orcl19c/adump 的运行时文件,保留 7 天数据。

2.1 备份

备份诊断和审计目录到 /dcits/

tar -czvf /dcits/diag_backup_$(date +%Y%m%d_%H%M%S).tar.gz /home/oracle19c/u01/app/diag/rdbms/orcl19c/orcl19c/*
tar -czvf /dcits/adump_backup_$(date +%Y%m%d_%H%M%S).tar.gz /home/oracle19c/u01/app/admin/orcl19c/adump/*
  • 验证:

    ls -lh /dcits/*_backup_*.tar.gz
    

2.2 检查 diag 子目录

du -sh /home/oracle19c/u01/app/diag/rdbms/orcl19c/orcl19c/* | sort -hr

2.3 设置保留策略

设置 ADR 短期保留策略为 7 天(168 小时):

/home/oracle19c/u01/app/product/19.3/bin/adrci

在 ADRCI 交互模式:

SET HOMEPATH diag/rdbms/orcl19c/orcl19c
SET CONTROL (SHORTP_POLICY=168)
SET CONTROL (LONGP_POLICY=720)
SHOW CONTROL
EXIT
  • SHORTP_POLICY=168:自动清理 7 天前的诊断数据。

  • LONGP_POLICY=720:保留 30 天元数据。

  • 验证:SHOW CONTROL 显示 SHORTP_POLICY = 168

  • 如果报 DIA-48808,运行 HELP SET CONTROL 确认语法,或尝试:

    SET CONTROL (SHORTP_POLICY = 168)
    

2.4 清理诊断文件

清理 7 天前(-age 10080)的文件:

  • 事件文件(incident)

    /home/oracle19c/u01/app/product/19.3/bin/adrci exec='set homepath diag/rdbms/orcl19c/orcl19c;purge -age 10080 -type INCIDENT'
    
  • 跟踪文件(trace)

    /home/oracle19c/u01/app/product/19.3/bin/adrci exec='set homepath diag/rdbms/orcl19c/orcl19c;purge -age 10080 -type TRACE'
    
  • 核心转储(cdump)

    /home/oracle19c/u01/app/product/19.3/bin/adrci exec='set homepath diag/rdbms/orcl19c/orcl19c;purge -age 10080 -type CDUMP'
    
  • 告警日志(alert)

    /home/oracle19c/u01/app/product/19.3/bin/adrci exec='set homepath diag/rdbms/orcl19c/orcl19c;purge -age 10080 -type ALERT'
    
  • 审计日志(audit)

    /home/oracle19c/u01/app/product/19.3/bin/adrci exec='set homepath diag/rdbms/orcl19c/orcl19c;purge -age 10080 -type AUDIT'
    

2.5 验证清理效果

du -sh /home/oracle19c/u01/app/diag/rdbms/orcl19c/orcl19c/{trace,cdump,alert,incident}
du -sh /home/oracle19c/u01/app/admin/orcl19c/adump
df -h /home/oracle19c/u01
ls -ltr /home/oracle19c/u01/app/diag/rdbms/orcl19c/orcl19c/{trace,cdump}

3. 清理归档日志(RMAN)

归档日志(/home/oracle19c/u01/app/oracle/fast_recovery_area,11MB)由数据库归档模式生成,需用 RMAN 清理。

3.1 检查归档模式

sqlplus / as sysdba
SELECT log_mode FROM v$database;
  • ARCHIVELOG:需清理。
  • NOARCHIVELOG:无需清理。

3.2 检查占用

du -sh /home/oracle19c/u01/app/oracle/fast_recovery_area/orcl19c/archivelog

3.3 清理归档日志

清理 7 天前:

rman target /
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

3.4 禁用归档模式(可选,测试环境)

sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE NOARCHIVELOG;
ALTER DATABASE OPEN;

4. 清理其他日志

4.1 Listener 日志

检查 /home/oracle19c/u01/app/product 中的日志:

du -sh /home/oracle19c/u01/app/product/19.3/network/log/listener.log

截断:

: > /home/oracle19c/u01/app/product/19.3/network/log/listener.log

4.2 其他日志

find /home/oracle19c/u01/app/product/19.3 -name "*.log" -mtime +7 -exec rm -f {} \;

5. 预防未来占用

5.1 自动化清理

添加 cron 任务,每天凌晨 2 点清理:

crontab -e
0 2 * * * /home/oracle19c/u01/app/product/19.3/bin/adrci exec='set homepath diag/rdbms/orcl19c/orcl19c;purge -age 10080 -type TRACE;purge -age 10080 -type CDUMP;purge -age 10080 -type AUDIT;purge -age 10080 -type INCIDENT'

5.2 监控告警日志

less /home/oracle19c/u01/app/diag/rdbms/orcl19c/orcl19c/trace/alert_orcl19c.log

6. 注意事项

  • 测试环境:清理风险低,但确保备份以防调试需要。

  • /oradata (32G):数据文件不可删除,可优化表空间:

    SELECT tablespace_name, sum(bytes)/1024/1024/1024 GB
    FROM dba_data_files
    GROUP BY tablespace_name;
    
  • 权限:确保 oracle 用户对 /dcits/ 和诊断目录有写权限。

  • 数据库状态:ADRCI 清理无需关闭数据库。

7. 总结

通过 ADRCI 清理 /diag(1.5G)、/admin/adump(724K),RMAN 清理 /fast_recovery_area(11M),并截断 listener.log,可有效释放空间。设置 SHORTP_POLICY=168 和 cron 任务确保长期管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程个人项目

软件工程个人项目3123004548软件工程个人项目这个作业属于哪个课程 <https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024>这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23Co…

学习道路道阻且长 希望自己坚持下去

本人是一名专升本的大三学生 现在专业是软件工程专业 从今天开始学习java 翻了一下资料 发现很多人建议从前端开始学习 在专科学习中 也学过相应的基础知识,不过遗忘程度可能有点严重。对于语言的基本语法掌握需要加强…

2025/9/18 总结

A 用时:2h 预期:100pts 实际:100pts 求出前缀和,\(s_k+s_i \text{xor} s_k\),考虑从高到低贪心,如果 \(s_i\) 的 \(j\) 位为 \(1\),不管如何贡献都有 \(2^j\),如果 \(s_i\) 的第 \(j\) 位为 \(0\),则 \(s_k\)…

P2216 [HAOI2007] 理想的正方形

P2216 [HAOI2007] 理想的正方形#include <bits/stdc++.h> using namespace std;const int maxn = 1e3 + 10; int a,b,n; int c[maxn][maxn]; deque <int> dq1,dq2; int max1[maxn][maxn],min1[maxn][maxn]…

PuTTY下载和安装

下载地址: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html更改安装路径创建桌面快捷方式

数据通路-单总线结构(最头晕的一集)

数据通路就是数据在各个部件之间传输的路径(包括路径上的部件) 控制信号是有控制部件产生的 数据通路的结构 1cpu内部单总线方式 2cpu内部多总线方式 3专用数据通路方式 内部总线 是指同一个部件,如cpu内部链接各寄…

python基础篇-集合

集合 :集合内的数据不重复,但是数据是无序的创建集合 {} 或者set()注: 创建空集合只能用set(), 因为{}已经被字典占用了eg: s1 = {10, 20 ,40,30 }eg: s2 = set(abcdefg) :用set创建,序列会被拆开 = 》 {’a, b…

#egsg:在同一程序中比较-计算圆的面积

以下是一个同时使用easygui和pysimplegui实现的圆形面积计算程序,通过菜单让用户选择使用哪种GUI库: import math import easygui import PySimpleGUI as sgdef easygui_calculator():"""使用easygui…

282 项多模态胃肠病学数据集:适配 VLM 与 MLLM 微调,融合医学图像与临床文本的医疗 AI 训练数据

​ 获取更多高质量数据集,请访问典枢数据交易平台:https://dianshudata.com一、引言与背景 在医疗人工智能领域,胃肠病学的智能化诊断与分析始终依赖高质量数据的支撑,而视觉语言模型(VLM)与多模态大型语言模型(…

2-sat板子

vector<int>e[maxn]; int n,m; int inscc[maxn]; int low[maxn],dfn[maxn]; stack<int>stk; int instk[maxn]; int tot,cnt; vector<int>scc[maxn];void dfs(int u,int fa){low[u]=dfn[u]=++tot;stk…

Node.js 中使用 .env 文件管理环境变量

Node.js 中使用 .env 文件管理环境变量Node.js 中使用 .env 文件管理环境变量xiaochong0302鸠摩智首席音效师​关注他1 人赞同了该文章 Using .env File in Node.jsNode.js 应用程序通常依赖于环境变量来管理敏感信息或…

centos 7中安装jenkins

1.安装java11 [root@localhost ~]# yum install -y java-11-openjdk-devel [root@localhost ~]# java --version openjdk 11.0.23 2024-04-16 LTS OpenJDK Runtime Environment (Red_Hat-11.0.23.0.9-2.el7_9) (build …

pythonjs逆向 破解滑动验证码 - hello-*

现在的滑动验证码防盗等级都比较高,之前的是一张完整的图片带缺口,现在返回的图片是打乱顺序拼接而成的,所以现在破解不仅要识别滑块的缺口,同时还需要复原完整的图片一.伪造请求获取验证码图片可以看到请求中主要…

解决 pandas.to_csv 乱码、丢失行和自动换行问题 时间转换

解决 pandas.to_csv 乱码、丢失行和自动换行问题-百度开发者中心 https://developer.baidu.com/article/details/2792989 在使用 pandas.to_csv 函数时,可能会遇到一些问题,如乱码、丢失行和自动换行等。这些问题通常…

JavaDay7

数组 数组的定义数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组声明创建首…

腾讯混元 3D 3.0 模型发布

腾讯混元 3D 3.0 模型发布腾讯混元 3D 3.0 模型发布来源: OSCHINA 编辑: 局 2025-09-16 18:06:000推广 | 鸿蒙应用开发者激励计划 2025 正式发布,总奖金池超亿元!限时开放,快来了解腾讯宣布推出混元 3D 3.0 模型,其…

Bun:不仅是新的JavaScript运行时,并且重塑了JavaScript工具链

Bun:不仅是新的JavaScript运行时,并且重塑了JavaScript工具链Bun:不仅是新的JavaScript运行时,并且重塑了JavaScript工具链 原创修改于 2023-11-09 18:56:015.4K00代码可运行举报文章被收录于专栏:世界尽头与冷酷…

AI Agent 与 MCP 核心解析与企业级应用指南

AI Agent 与 MCP 核心解析与企业级应用指南AI Agent 与 MCP 核心解析与企业级应用指南 一、引言 AI Agent(人工智能代理)与 MCP(Model Context Protocol,模型上下文协议)是当前人工智能技术前沿的核心概念。AI Ag…

前端场景题笔记

先说背景再说方案 1. js超过number最大值的数怎么处理? 换数据类型。 2. 如何解决页面请求接口大规模并发问题? 请求队列,Push,shift。防抖节流。 3. 大文件上传? 前端切片,标记唯一值,后端整合。 …

P3934 [Ynoi Easy Round 2016] 炸脖龙 I 做题记录

欧拉函数前置芝士:扩展欧拉定理 题目大意 给一个长为 \(n\) 的序列,\(m\) 次操作,每次操作:区间 \([l,r]\) 加 \(x\); 对于区间 \([l,r]\),查询:\[{a_l}^{{a_{l+1}}^{{a_{l+2}}^{{\dots} ^{a{r}}}}} \mod p \]思…