适用于:
Oracle Audit Vault - Version: 10.2.3 to 10.2.3
Oracle Server - Enterprise Edition - Version: 10.2.0.3 to 10.2.0.3
Information in this document applies to any platform.
症状:
DBMS_AUDIT_MGMT是Audit Vault管理特性中的一部分的一个新的包,并且通过一个你能得到的数据库支援补丁来分布。
Please use the following patches for the respective versions:
10.2.0.3 patch 6989148 MLR ON TOP OF 10.2.0.3 FOR AUDIT TRAIL CLEAN-UP
10.2.0.4 patch 6996030 MLR ON TOP OF 10.2.0.4 FOR AUDIT TRAIL CLEAN-UP
The Logical Standby package gets invalidated when one of the following APIs from DBMS_AUDIT_MGMT is invoked for DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD or DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD or DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL:
- SET_AUDIT_TRAIL_LOCATION
- INIT_CLEANUP
换句话说,当FGA审计表被参与到如下任何一者中:
DBMS_AUDIT_MGMT.INIT_CLEANUP or DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION,
因为在SYS.DBMS_INTERNAL_LOGSTDBY里面的静态关联,所以这个包变得无效。
Hence, an error similar to the following can be seen:
*
ERROR at line 1:
ORA-00942: table or view does not exist
ORA-06512: at "SYS.DBMS_AUDIT_MGMT", line 2670
ORA-04061: existing state of has been invalidated
ORA-04061: existing state of package body "SYS.DBMS_INTERNAL_LOGSTDBY"
has been
invalidated
ORA-06508: PL/SQL: could not find program unit being called:
"SYS.DBMS_INTERNAL_LOGSTDBY"
ORA-06512: at "SYS.DBMS_AUDIT_MGMT", line 1489
ORA-06512: at line 1
改变:
任何各自的源数据库版本上安装上述补丁。
原因:
当上述的API执行对FGA审计线索表,表重新创建改变了审计线索表的表空间。这无效逻辑备用包,作为包SYS.DBMS_INTERNAL_LOGSTDBY静态引用到FGA_LOG$表。
解决:
1. Change directory to $ORACLE_HOME/rdbms/admin
2. Login as SYS
SQL> connect sys/sys_password as sysdba
3. Re-load the Logical Standby package
SQL> @@prvtlsby.plb
OR
3. Alternately, recompile SYS.DBMS_INTERNAL_LOGSTDBY and SYS.DBMS_IJOB packages.
SQL> ALTER PACKAGE SYS.DBMS_INTERNAL_LOGSTDBY COMPILE;
SQL> ALTER PACKAGE SYS.DBMS_IJOB COMPILE;
4. Retry the execution of DBMS_AUDIT_MGMT API that failed.