ORA-06508: PL/SQL: could not find program unit being called: “%.DBMS_BACKUP_RESTORE”

ORA-01775: looping chain of synonyms

Saludos a toda la comunidad, hoy vengo con un nuevo problema resuelto que esta referido a RMAN.

Me disponía a la toma de un backup hot de una base que serviría para generar un nuevo ambiente.

En la base había sido aplicado recientemente el patch 10.2.0.4

SQL> SELECT * FROM V$VERSION;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE	10.2.0.4.0	Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production

Cuando me logueo y ejecuto RMAN me encuentro con el error ORA-04063.

[oracle@sdat2101lx db_oapm1n]$ rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Wed Nov 24 12:12:10 2010
Copyright (c) 1982, 2007, Oracle.  All rights reserved.

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database:
ORA-04063: package body "SYS.DBMS_BACKUP_RESTORE" has errors
ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_BACKUP_RESTORE"
ORA-06512: at line 1
RMAN-04015: error setting target database character set to US7ASCII

Bien , voy a revisar los parametros en especial el NLS_LANGUAGE y me encuentro que todo esta como corresponde.

SQL> desc sys.props$
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 NAME					   NOT NULL VARCHAR2(30)
 VALUE$ 					    VARCHAR2(4000)
 COMMENT$					    VARCHAR2(4000)
SQL>  set line 150
 set pages 200
 col NAME format a30
 col VALUE$ format a30
 col COMMENT$ format a50
 select * from sys.props$;SQL> SQL> SQL> SQL> SQL>
 

NAME			       VALUE$			      COMMENT$
------------------------------ ------------------------------ --------------------------------------------------
DICT.BASE		       2			      dictionary base tables version #
DEFAULT_TEMP_TABLESPACE        TEMP			      Name of default temporary tablespace
DEFAULT_PERMANENT_TABLESPACE   USERS			      Name of default permanent tablespace
NLS_LANGUAGE		       AMERICAN 		      Language
DEFAULT_TBS_TYPE	       SMALLFILE		      Default tablespace type
NLS_NCHAR_CHARACTERSET	       AL16UTF16		      NCHAR Character set
GLOBAL_DB_NAME		       OAPT1N.BANCOCREDICOOP.COOP     Global database name
EXPORT_VIEWS_VERSION	       8			      Export views revision #
DBTIMEZONE		       00:00			      DB time zone
NLS_TERRITORY		       AMERICA			      Territory
NLS_CURRENCY		       $			      Local currency
NLS_ISO_CURRENCY	       AMERICA			      ISO currency
NLS_NUMERIC_CHARACTERS	       .,			      Numeric characters
NLS_CHARACTERSET	       WE8ISO8859P1		      Character set
NLS_CALENDAR		       GREGORIAN		      Calendar system
NLS_DATE_FORMAT 	       DD-MON-RR		      Date format
NLS_DATE_LANGUAGE	       AMERICAN 		      Date language
NLS_SORT		       BINARY			      Linguistic definition
NLS_TIME_FORMAT 	       HH.MI.SSXFF AM		      Time format
NLS_TIMESTAMP_FORMAT	       DD-MON-RR HH.MI.SSXFF AM       Time stamp format
NLS_TIME_TZ_FORMAT	       HH.MI.SSXFF AM TZR	      Time with timezone format
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR   Timestamp with timezone format
NLS_DUAL_CURRENCY	       $			      Dual currency symbol
NLS_COMP		       BINARY			      NLS comparison
NLS_LENGTH_SEMANTICS	       BYTE			      NLS length semantics
NLS_NCHAR_CONV_EXCP	       FALSE			      NLS conversion exception
NLS_RDBMS_VERSION	       10.2.0.4.0		      RDBMS version for NLS parameters
WORKLOAD_CAPTURE_MODE					      CAPTURE implies workload capture is in progress

28 rows selected.
SQL>

Bien, ahora ejecuto un script que me va a compilar todos los objetos , y al revisar veo que estos terminaron OK.

Pero me encuentro con muchos otros nuevos descompilados.

Hago el proceso nuevamente y siguen apareciendo nuevos objetos descompilados, es como si hubiese entrado en un loop.

Entonces me decido a revisar y verificar que ocurre en algún cliente gráfico, más precisamente con el sqldeveloper observando que se descompilan otros objetos, cuando compilo los actuales.

Y al querer revisar algún objeto en particular me aparece el siguiente error:

ORA-01775: looping chain of synonyms

Ahora si ! Veo que el problema viene por otro lado. Intento buscar si algún sinónimo de los usuarios de aplicación fueron mal generados, y quedan operando de manera circular para dropearlos y volver a generarlos. Pero descubro que solo pasa en el schema de sys.

Ejecuto el query que pongo a continuación para ver si realmente todos los objetos descompilados pertenecen a sys.

Y asi es efectivamente.

 COL OBJECT_NAME FORMAT A40
 SET LINE 200
    SELECT
    OBJECT_NAME ,
    OBJECT_TYPE ,
    CREATED ,
    STATUS ,
    OWNER
     FROM DBA_OBJECTS
    	where STATUS='INVALID'
   	and owner ='SYS';
 

OBJECT_NAME				 OBJECT_TYPE	     CREATED   STATUS  OWNER
---------------------------------------- ------------------- --------- ------- ------------------------------
DBMS_ERRLOG				 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBMS_ALERT				 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBMS_DESCRIBE				 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBMS_DDL_INTERNAL			 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBMS_DDL				 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBA_PENDING_TRANSACTIONS		 VIEW		     19-DEC-06 INVALID SYS
ANYDATA 				 TYPE BODY	     19-DEC-06 INVALID SYS
ANYDATASET				 TYPE BODY	     19-DEC-06 INVALID SYS
DBMS_RULE				 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBMS_RULE_ADM				 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBMS_RULE_EXIMP 			 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBMS_LOGREP_EXP 			 PACKAGE	     19-DEC-06 INVALID SYS
AQ$_SRVNTFN_MESSAGE			 TYPE		     19-DEC-06 INVALID SYS
DBMS_AQ 				 PACKAGE BODY	     19-DEC-06 INVALID SYS
DBMS_AQ_INV				 PACKAGE BODY	     19-DEC-06 INVALID SYS
...
...
KUPC$_MASTERERROR			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_MASTERJOBINFO			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_FILE_LIST 			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_GET_WORK				 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_WORKER_FILE			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_DEVICE_IDENT			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_BAD_FILE				 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_TABLE_DATA_ARRAY			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_WORKER_LOG_ENTRY			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_WORKERERROR			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_WORKER_EXIT			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_WORKER_FILE_LIST			 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$_JOBINFO				 TYPE BODY	     06-AUG-08 INVALID SYS
KUPC$DATAPUMP_QUETAB			 TABLE		     06-AUG-08 INVALID SYS
SYSNTU8xf5ha3eVjgQIAKBQhIag==		 TABLE		     06-AUG-08 INVALID SYS
SYSNTU8xf5ha5eVjgQIAKBQhIag==		 TABLE		     06-AUG-08 INVALID SYS
XMLSEQCUR_IMP_T 			 TYPE		     06-AUG-08 INVALID SYS
AGGXMLIMP				 TYPE		     06-AUG-08 INVALID SYS
AGGXQIMP				 TYPE		     06-AUG-08 INVALID SYS
OLAPI_MDX_ROWSET_IMPL_T 		 TYPE		     06-AUG-08 INVALID SYS
AQ$KUPC$DATAPUMP_QUETAB_R		 VIEW		     08-AUG-08 INVALID SYS
AQ$_KUPC$DATAPUMP_QUETAB_P		 TABLE		     08-AUG-08 INVALID SYS
SYSNTU/fMwiVWzGrgQIAKBAg04w==		 TABLE		     08-AUG-08 INVALID SYS
SYSNTU/fMwiVYzGrgQIAKBAg04w==		 TABLE		     08-AUG-08 INVALID SYS

535 rows selected.

Comprobado, que me queda por hacer ? Ejecuto el script utlrp.sql y finaliza su ejecución con errores.

ORA-04063: package body "SYS.DBMS_REGISTRY_SYS" has errors 

Bien , siguiendo los rastros de lo ejecutado por el DBA de la empresa, llegamos a la conclución de que la migarción había quedado inconsistente debido a que el procedimiento que utilizo , le faltaban pasos.

Ejecutamos en el orden siguiente.

SQLPLUS AS SYSDBA
SHUTDOWN IMMEDIATE
STARTUP MIGRATE
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/utlrp.sql
SHUTDOWN
STARTUP

Y ya pudimos finalizar nuestra tarea ! Regards, saludos , até mais !

About Juan Andres
Consultant | Oracle DBA & IT Specialist | LinuxUnix Administrator | Father | Musician | Farmer | Environmentalist | Writer | Builder | Buenos Aires · burzaco.wordpress.com

One Response to ORA-06508: PL/SQL: could not find program unit being called: “%.DBMS_BACKUP_RESTORE”

  1. Gracias. con esto pude solventar el problema que tenia te lo agradezco. Dios te bendiga.

%d bloggers like this: