Monday, May 3, 2010

ORA-42012: error occurred while completing the redefinition

Al momento de intentar utilizar el paquete DBMS_REDEFINITION para redefinir una partición en línea apareció el error descrito a continuación.

dbms_redefinition.finish_redef_table('MADRID', 'a_table', 'an_int_table', 'a_partition');

El siguiente error apareció:

begin
*
ERROR at line 1:
ORA-42012: error occurred while completing the redefinition
ORA-04020: deadlock detected while trying to lock object MADRID.TABLE1_INT
ORA-06512: at "SYS.DBMS_REDEFINITION", line 78
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1680
ORA-06512: at line 2


Cuando intenté eliminar la tabla internia para reiniciar la redefinición en línea del objeto, este procedimiento tuvo un conflicto con un par de objetos creados al vuelo.

SQL> drop table table1_int;
drop table table1_int
*
ERROR at line 1:
ORA-12083: must use DROP MATERIALIZED VIEW to drop "MADRID"."TABLE1_INT"

SQL> DROP MATERIALIZED VIEW "MADRID"."TABLE1_INT";
Materialized view dropped.

SQL> drop table table1_int;
Table dropped.

Este error se debe a un bug en la version 11.2.0 en cualquier plataforma de sistema operativo. Este bug se va a corregir en futuras versiones, entre tanto la manera de rodear el problema es cambiando un parámetro de instancias, solo hay que poner deferred_segment_creation a FALSE y reintentar la operación.

No comments:

Post a Comment