Oracle清理alert、trace、listener.log、aud审计文件

Oracle清理数据库以各种日志文件

1. (optional)可以创建备份目录,提前备份需要清理日志

mkdir /log_bak_date

 

2. 数据库各项日志文件路径

 

sqlplus / as sysdba
SYS@honor1 > show parameter dump_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest                 string      /u01/app/oracle/diag/rdbms/honor/honor1/trace
core_dump_dest                       string      /u01/app/oracle/diag/rdbms/honor/honor1/cdump
user_dump_dest                       string      /u01/app/oracle/diag/rdbms/honor/honor1/trace
11gR1之后引入全新的诊断信息架构:
SYS@honor1 > show parameter diag;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest                      string      /u01/app/oracle
SYS@honor1 > show parameter audit_file_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/honor/adump
audit_file_dest       /* 路径下存放的是数据库审计信息文件,如果未设置audit_trail为OS,则默认此目录只存放SYS登陆审计信息。
background_dump_dest  /* 存放数据库后台进程调试信息,与记录影响实例、数据库的trace文件和alert日志文件,11gR1之后,缺省忽略此参数设置,根据diagnostic_dest存放
diagnostic_dest       /* 11gR1之后,引入,后台进程与alert告警日志会根据ADR base目录存放
user_dump_dest        /* 存放用户进程调试trace文件,11gR1之后,引入新的诊断架构这个参数将被忽略,由diagnostic_dest控制trace文件生成目录
core_dump_dest        /* 存放Oracle核心转储文件

3. 数据库审计信息文件清理

 

find /u01/app/oracle/admin/honor/adump -mtime +30 -name \*.aud
/* 可选择如下命令备份审计文件:
find /u01/app/oracle/admin/honor/adump -mtime +30 -name \*.aud -exec mv {} /log_bak_date \;
/* 查看审计目录下30天前的审计文件
find audit_file_dest -mtime +30 -name \*.aud
/* 确保审计日志无需保留,可选择删除
cd /log_bak_date
rm -rf *.aud
/* 数据库中审计一般可以选择直接truncate掉aud$

4. 数据库trace文件

 

/* 清理trace文件
进入background_dump_dest路径下,将30天之前的文件移到准备删除的文件夹,执行命令如下:
find /opt/oracle/diag/rdbms/orcl/czh19c/trace -mtime +30 -name \*.tr*
/* (可选)可选择将文件备份
$ find /opt/oracle/diag/rdbms/orcl/czh19c/trace -mtime +30 -name \*.tr* -exec mv {} /log_bak_date/background_dump_dest \;
/* 确保日志无用处之后,手工执行删除命令
cd /log_bak_date/background_dump_dest
rm -rf *.tr*

5.清理数据库alert日志

 

/* alert有两种办法可以清理
/* /* cp备份
cd /u01/app/oracle/diag/rdbms/honor/honor1/trace
cp alert_$ORACLE_SID.log /log_bak_date/alert_$ORACLE_SID.log.bak (确保空间足够)
/* 清理办法
  方法1:echo 0 >alert_$ORACLE_SID.log (清空内容)
  方法2:rm alert_$ORACLE_SID.log  (直接删除掉)

6. 数据库sql trace文件清理

数据库默认user_dump_dest和background_dump_dest路径一致,如不一致,参照4中清理trace文件步骤清理

7. 数据库监听日志清理

/* Oracle 11g的监听日志和告警日志分别在,RAC日志在grid用户的$ORACLE_BASE下:
$ORACLE_BASE/diag/tnslsnr/hostname/listener/trace(文本监听日志)
$ORACLE_BASE/diag/tnslsnr/hostname/listener/alert(xml监听日志)
/* 删除监听日志的方法如下:
/* 切换到oracle用户(如果为RAC,切换到grid用户)
$ su oracle
$ lsnrctl 
LSNRCTL> set log_status off
$ mv listener.log listener.log.bak  /*(备份一下监听文件或者删除监听日志文件)
$ mv listener.xml listener.xml.bak
LSNRCTL> set log_status on          /*(这时候会自动创建一个listener.log文件)
/* 11g可以使用ADRCI工具查看告警日志
/* 要看警告日志可以在oracle用户下执行adrci
$ adrci
adrci> show alert  /* 可根据提示查看数据库或者监听日志内容。
$ adrci
adrci> SHOW TRACEFILE  /* 可以看到所有的trace以及alert日志文件
/* 使用adrci清理trace文件
$ adrci
adrci> show home
adrci> set homepath diag/rdbms/honor/honor1
adrci> help purge     /* 可根据清理多少分钟前的数据,也可以show problem查看日志中错误信息
发布了25 篇原创文章 · 获赞 0 · 访问量 596
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览