Symptoms
-- Problem Statement:Setiting logminer to a specific tablespace reports the following error
SQL> create tablespace logmnr_tbs datafile '${vtbsp_dir01}/logmnr_tbs01.dbf' size 700m ;
SQL> BEGIN dbms_logmnr_d.set_tablespace('logmnr_tbs'); end;
/
2 BEGIN dbms_logmnr_d.set_tablespace('logmnr_tbs'); end;
*
ERROR at line 1:
ORA-04063: package body "SYS.DBMS_LOGMNR_INTERNAL" has errors
ORA-06508: PL/SQL: could not find program unit being called:
"SYS.DBMS_LOGMNR_INTERNAL"
ORA-06512: at "SYS.DBMS_LOGMNR_D", line 131
ORA-06512: at line 1
SQL> BEGIN dbms_logmnr_d.set_tablespace('logmnr_tbs'); end;
/
2 BEGIN dbms_logmnr_d.set_tablespace('logmnr_tbs'); end;
*
ERROR at line 1:
ORA-04063: package body "SYS.DBMS_LOGMNR_INTERNAL" has errors
ORA-06508: PL/SQL: could not find program unit being called:
"SYS.DBMS_LOGMNR_INTERNAL"
ORA-06512: at "SYS.DBMS_LOGMNR_D", line 131
ORA-06512: at line 1
Cause
Dba_Registry shows an invalid component and there are invalid objects in the sys and system schemarelated to logminer.
Output from the following queries show that Oracle Database Packages and Types are INVALID and that logminer objects are invalid.
select COMP_NAME, VERSION, STATUS from dba_registry;
select object_name, owner, object_type from dba_objects where status = 'INVALID' and owner in
('SYS','SYSTEM');
select object_name, owner, object_type from dba_objects where status = 'INVALID' and owner in
('SYS','SYSTEM');
Solution
-- To implement the solution, please execute the following steps::1. Run this query as sys. It should come back with NO rows.
select owner, object_name, object_type, status from dba_objects where object_name = 'SYSTEM';
2. To validate the packages and types by running catupgrd.sql (part of the 10.2.0.3 patch installation)
--shutdown the database.
shutdown immediate
--start the db
STARTUP UPGRADE
--spool to a file
SPOOL patch.log
--run the upgrade script
@?/rdbms/admin/catupgrd.sql
--turn off spooling (review file for errors)
spool off
--shutdown and restart.
shutdown immediate
startup
shutdown immediate
--start the db
STARTUP UPGRADE
--spool to a file
SPOOL patch.log
--run the upgrade script
@?/rdbms/admin/catupgrd.sql
--turn off spooling (review file for errors)
spool off
--shutdown and restart.
shutdown immediate
startup
3. Confirm that all SYS and SYTEM owned objects are valid. Check that Oracle Database Packages and Types is VALID in dba_registry.
4. Run dbms_logmnr_d.set_tablespace to set the logminer tablespace.