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

Oracle19c磁盘告急?adrci一键清理日志文件实战(附集群/单机差异)

Oracle19c磁盘告急?adrci一键清理日志文件实战指南

凌晨三点,数据库告警短信突然响起——/oracle目录剩余空间不足10%。这种场景对DBA来说再熟悉不过。Oracle数据库运行过程中产生的诊断日志、跟踪文件、事件包等数据,往往会以惊人的速度吞噬磁盘空间。本文将深入解析如何利用Oracle自带的adrci工具,在不同环境下一键清理各类日志文件,同时分享几个关键场景下的实战技巧。

1. 认识Oracle诊断文件体系

Oracle数据库生成的主要诊断文件类型包括:

  • Alert日志:记录数据库运行状态和关键事件的第一手资料
  • Trace文件:SQL跟踪、错误堆栈等详细诊断信息
  • Incident文件:针对严重错误自动生成的诊断包
  • 监听日志:记录客户端连接活动的关键信息

这些文件默认存储在自动诊断仓库(ADR)中,路径遵循$ORACLE_BASE/diag的统一结构。一个典型的Oracle19c环境可能在短短一个月内产生数十GB的诊断数据。

重要提示:清理前务必确认文件类型和时效性,某些合规场景需要保留特定时长的日志

2. adrci工具核心操作指南

2.1 环境准备与基础命令

adrci位于$ORACLE_HOME/bin目录,无需额外安装。使用时需注意执行身份:

# 单机环境使用oracle用户 su - oracle adrci # RAC集群使用grid用户 su - grid adrci

基础操作流程示例:

adrci> show home # 查看可用诊断目录 ADR Homes: diag/rdbms/prod_db/prod_db diag/rdbms/test_db/test_db adrci> set homepath diag/rdbms/prod_db/prod_db # 设置工作目录 adrci> show alert # 查看警报日志概要

2.2 按类型清理诊断数据

adrci支持按时间阈值清理特定类型的诊断文件:

文件类型参数值典型保留策略示例命令
警报日志ALERT保留30天purge -age 720 -type alert
跟踪文件TRACE保留90天purge -age 2160 -type trace
事件包INCIDENT保留60天purge -age 1440 -type incident
监听日志ALERT保留180天purge -age 4320 -type alert

时间参数单位为小时,计算示例:

  • 30天 = 30×24 = 720小时
  • 90天 = 90×24 = 2160小时

3. 集群与单机环境差异处理

3.1 执行身份差异

在RAC环境中,需要特别注意:

  1. Grid组件日志:必须使用grid用户清理

    su - grid adrci purge -age 720 -type alert
  2. 数据库实例日志:可以使用oracle用户清理

    su - oracle adrci purge -age 2160 -type trace

3.2 多节点环境处理

对于RAC集群,需要在每个节点执行清理操作。可以编写统一脚本:

#!/bin/bash # rac_cleanup.sh for node in node1 node2 node3; do ssh $node "su - grid -c 'adrci purge -age 720 -type alert'" ssh $node "su - oracle -c 'adrci purge -age 2160 -type trace'" done

4. 高级清理策略与技巧

4.1 空间占用分析命令

在决定清理策略前,建议先分析空间占用情况:

# 查看各诊断目录大小 du -sh $ORACLE_BASE/diag/*/*/* | sort -rh # 统计trace文件数量 find $ORACLE_BASE/diag/rdbms -name "*.trc" | wc -l # 按时间列出大文件 find $ORACLE_BASE/diag -type f -size +100M -exec ls -lh {} + | awk '{print $5,$9}' | sort -rh

4.2 自动化清理方案

对于长期运行的系统,建议配置定期清理任务:

  1. 创建清理脚本/usr/local/bin/oracle_cleanup.sh

    #!/bin/bash # Cleanup alert logs older than 30 days su - oracle -c "adrci purge -age 720 -type alert" # Cleanup trace files older than 90 days su - oracle -c "adrci purge -age 2160 -type trace" # Cleanup incidents older than 60 days su - oracle -c "adrci purge -age 1440 -type incident"
  2. 添加cron任务(每月1日执行):

    0 0 1 * * /usr/local/bin/oracle_cleanup.sh > /var/log/oracle_cleanup.log 2>&1

4.3 关键注意事项

  • 清理监听日志:不需要停止监听服务,但建议先备份

    cp $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener/trace/listener.log /backup/
  • 空间紧急释放:当空间严重不足时,可临时调整保留策略

    # 保留最近7天数据 adrci purge -age 168 -type all
  • 多数据库实例:需要为每个实例单独设置homepath

    adrci> set homepath diag/rdbms/db1/db1 adrci> purge -age 720 -type alert adrci> set homepath diag/rdbms/db2/db2 adrci> purge -age 720 -type alert

5. 问题排查与验证

清理完成后,建议进行以下验证:

  1. 检查剩余空间:

    df -h /oracle
  2. 确认文件确实被清理:

    find $ORACLE_BASE/diag -type f -name "*.trc" -mtime +90 | wc -l
  3. 检查数据库运行状态:

    SELECT status, instance_name FROM v$instance;

遇到问题时,可检查adrci操作日志:

cat $ORACLE_BASE/diag/rdbms/*/*/metadata/purge*.log

在最近一次生产环境维护中,通过组合使用adrci和find命令,我们成功将诊断目录从85%使用率降至32%,而整个过程仅耗时7分钟。关键在于准确评估各类日志的实际价值,制定差异化的保留策略。

http://www.jsqmd.com/news/586423/

相关文章:

  • 不止于install:实战讲解如何用快马AI配置带缓存与检查的CI/CD npm流程
  • 2026年西安贴隐形车衣不会起泡的店探寻,能抗紫外线还不坑人 - mypinpai
  • 无人机航拍实时拼接实战:用Map2DFusion搞定大场景正射影像(附避坑指南)
  • 效率翻倍:用快马一键生成博客系统核心模块,专注业务创新
  • 号易客服联系方式官方指南:电话17852539584、微信haoyi30与全渠道支持 - 号易-号易官网招商
  • 颠覆式开源工具OpCore-Simplify:自动化配置提升Hackintosh效率的完整指南
  • 效率飞跃:用快马AI一键生成云原生监控系统代码骨架
  • Ostrakon-VL-8B基础教程:app.py核心逻辑解析+Gradio接口扩展方法
  • Obsidian插件汉化终极指南:3种翻译模式彻底告别英文界面困扰
  • 在OpenWRT上通过LuCI界面轻松管理Docker容器:告别命令行的3个步骤
  • 从期末实战到技术精进:计算机核心课程通关策略与前沿应用展望
  • 4个步骤掌握系统字体定制:No!! MeiryoUI的无限制个性化解决方案
  • B站资源永久保存解决方案:跨平台视频下载与管理工具全指南
  • 终极实战:Adafruit_SH1106驱动OLED屏幕的高效图形库深度解析
  • 新手入门指南:通过快马生成heic转jpg项目学习前端文件处理
  • seo收录查询工具如何快速提升网站收录
  • 用Python+Matplotlib搞定地铁客流分析:从Excel数据到散点图、柱状图实战
  • 深入解析STM32F103 Flash扇区重复擦除失败及FLASH_ERROR_PG错误的解决方案
  • 从单周期到多周期:深入对比MIPS CPU设计,看微程序控制器如何成为‘大脑’
  • tao-8k Embedding模型惊艳案例:工业设备维修手册语义检索实战
  • 免费音频转换器fre:ac:3步掌握跨平台音频格式转换完整指南
  • 多边形等距缩放算法:从原理到OpenCV实现
  • 系统优化与性能提升指南:RyTuneX全方位优化方案
  • 抢答器这玩意儿在各种竞赛里简直就是气氛组担当。今天咱们来扒拉一个用单片机搞的智能抢答系统,既有硬件电路又有软件代码,还能自己动手焊板子玩
  • GLM-4.1V-9B-Base模型轻量化探索:适用于移动端的部署策略
  • AgentCPM-Report参数详解:Pixel Epic中‘智力同步率’实时监控原理
  • 告别重复劳动:用Altium Designer脚本一键导入并关联立创EDA的封装与3D库
  • C++条件判断入门:if/else详解
  • 智能高效的定制化风扇控制方案:开源工具Fan Control全解析
  • 保姆级教程:用交大镜像源5分钟安装PyTorch 2.3.0(支持CUDA 12.6)