暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle日志文件的清理

济南小老虎 2025-05-03
664

背景

最近几天清理公司内一个比较大的Oracle数据库.

其实Oracle的数据文件没法像SQLServer一样进行收缩
所以只能通过删除不用的数据文件
以及清理一些垃圾日志进行相关的处理. 

Oracle的日志主要是分为审计日志和监听日志.
这里分别进行说明


监听日志

Oracle低版本的兼容日志存放在这个路径下面: 
$ORACLE_HOME/network/log/listener_$ORACLE_SID.log
高版本的数据库监听日志在这里: 
$ORACLE_BASE/diag/tnslsnr/主机名称/listener/trace/listener.log

关闭监听日志的方法为:
su - oracle 
lsnrctl set log_status off
开启的方法为:
lsnrctl set log_status on

先备份然后清理文件就可以了. 


审计日志

审计相关的参数: 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/gscdb/adump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      DB
unified_audit_common_systemlog       string
unified_audit_sga_queue_size         integer     1048576
unified_audit_systemlog              string

查看审计日志的位置:
audit_file_dest 是审计日志的文件位置
最简单的办法是进入该目录并且清理文件
cd /u01/app/oracle/admin/gscdb/adump
find . -mtime +15 -exec rm -rf {} \; 

关闭审计日志的办法主要是: 
alter system set audit_trail=none scope=spfile;
# 设置 audit_trail 为 none 就不记录审计了
# 注意需要重启数据库使之生效

需要说明 DB的话 其实数据库里面也会审计存一份, 其实对性能不是很好
如果是OS的话 会有海量的小文件 有可能会导致分区 inode 空间不足出现问题.


关于 adrci

Oracle ADRCI(Automatic Diagnostic Repository Command Interpreter)
ADRCI 是 Oracle 提供的一个命令行工具,
用于管理和操作 Automatic Diagnostic Repository (ADR) 中的诊断数据。
ADR 是 Oracle 数据库的一个关键组件,用于存储和管理数据库的诊断信息,
包括警报、事件、跟踪文件等。

su - oracle 
adrci #可以进入命令行:
show control 可以查看部分信息 
然后可以修改归档的时间: 
set control (SHORTP_POLICY = 168)
set control (LONGP_POLICY = 240)

这样就可以将审计日志存在的时间进行缩短了. 


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论