客户告知,Oracle 12.1.0.2的数据库的ADR目录下有大量的trm与trc生成。
分析
第一感觉就是遇到BUG。一查,果然是。在12c Unified Auditing: Auditing Roles Causes Many .trc/.trm Files in ADR Trace Directory (Doc ID 2174774.1)中写明了这个问题。
首先先确认是不是这个BUG,用以下语句查是否开启Unified Auditing:
SELECT PARAMETER,VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
查出来的结果竟然是false,这个参数默认应该是true才对,有人改过了吗,没开启就不是这个BUG了呀。
但是查看UNIFIED_AUDIT_TRAIL:
select count(*) from UNIFIED_AUDIT_TRAIL;
数据量一直在增加。
好家伙,竟然又是一个BUG。查了一下,还真有类似BUG,只是版本不一样:Bug 17466854。 Unable to Set Unified Auditing in Oracle Database Standard Edition (Doc ID 2021411.1)
也就是说Unified Auditing=false其实是个假象,真实是true的。
确认问题就好办了。
解决方案:
1、打补丁 2、禁用Unified Auditing
这2个方案都需要停机窗口。一般来说客户会选择打补丁,但是补丁不是每个PSU(RU)都有,如下:
最终解决方案与分析
1、将PSU升级到支持的版本,然后再打补丁
优点:彻底解决问题 缺点:停机窗口会较长
2、禁用Unified Auditing
优点:停机窗口会较短 缺点:无法使用Unified Auditing功能
禁用Unified Auditing的步骤如下:
SQL> conn /as sysdba
SQL> SHUTDOWN IMMEDIATE
SQL> EXIT
$ lsnrctl stop listener_name
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk uniaud_off ioracle
$ lsnrctl start listener_name
SQL> conn /as sysdba
SQL> STARTUP
处理结果
客户选择打补丁,然后问题解决