Tag Archives: Dataguard environment

Catalog and catproc are invalid in Oracle

Catalog and catproc are invalid in Oracle

Following component in Oracle is showing invaid.

COMP_ID                                VERSION    STATUS 
-------------------------------------  ---------- -------
Oracle Database Catalog Views CATALOG INVALID 
Oracle Database Packages and T CATPROC INVALID 

It occurred when we are migrating or upgrading the exiting databases.

To make them valid again. you can try following things step by step and check it is valid or not.

1. Execute the utlrp SQL for validate all the invalid components and objects in Oracle


2. If not valid, then re-execute the catalog and catproc scripts for rebuild.

$ sqlplus / as sysdba


1. you can try utlrp.sql more than once for make them valid.
2. You can run this on Dataguard primary database also it doesn’t have any effect. you need to start recover again on DR Site.

3. If not valid, then check the each objects and make them valid with following script:

-- Execute this one by one and make objects valid until it return "CATPROC can be validated".
$ sqlplus / as sysdba
set serveroutput on;
start_time date;
end_time date;
object_name varchar(100);
object_id char(10);
select date_loading, date_loaded into start_time, end_time from registry$ where cid = 'CATPROC';
select obj#,name into object_id,object_name from obj$ where status > 1 and (ctime between start_time and end_time
or mtime between start_time and end_time
or stime between start_time and end_time)
and rownum <=1;
dbms_output.put_line('Please compile the invalid object '||object_name||' object_id '||object_id );
when no_data_found then
dbms_output.put_line('CATPROC can be validated now');

4. If not valid, then try to Execute the following command to make it valid.

exec dbms_registry_sys.validate_catproc;