miércoles, 3 de junio de 2009

ORA-19734

Me encontré con este amigable error en una instancia en la que estaba intentando hacer un transporte de tablespace... y resulta que por la mitad del procedimiento me canceló (todavía no me explico por qué!!!)

ORA-19734: wrong creation SCN - control file expects converted plugged-in datafile

Haciendo referencia a un datafile involucrado en el transporte, en mi caso era TEST.DBF...

Qué hacer?!

Sospeché que el problema podría estar dado por el lado del controlfile, y que en caso de recrearlo sin la referencia a ese datafile, iba a poder repetir el procedmiento.

En principio no tenía respaldo del controlfile... así que procedí a crear un backup del mismo...
Inicié la instancia en modo MOUNT:
STARTUP MOUNT;

Luego ejecuté el backup:
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/ctrlfile.bak';

Edité el trace generado con las sentencias para recrear mi controlfile, eliminando la referencia al datafile TEST.DBF, quedó algo de este estilo...

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORA10CCU" RESETLOGS NOARCHIVELOG MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 2336
LOGFILE
GROUP 1 '/home/oracle/oracle/product/10.2.0/oradata/ora10ccu/redo01.log' SIZE 100M, GROUP 2 '/home/oracle/oracle/product/10.2.0/oradata/ora10ccu/redo02.log' SIZE 100M, GROUP 3 '/home/oracle/oracle/product/10.2.0/oradata/ora10ccu/redo03.log' SIZE 100M-- STANDBY LOGFILE
DATAFILE
'/home/oracle/oracle/product/10.2.0/oradata/ora10/system01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/undotbs01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/sysaux01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/users01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/example01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/TEST.DBF', (eliminando esta línea)
CHARACTER SET WE8MSWIN1252;

Copié y pegué en la consola de SQLPlus y listo! Nuevo CONTROLFILE generado!

Luego desde la consola:
RECOVER DATABASE;

ALTER DATABASE OPEN;

En mi caso, había omitido la creación del TEMPORARY TABLESPACE, así que lo generé nuevamente:
ALTER TABLESPACE TEMP ADD TEMPFILE '/home/oracle/oracle/product/10.2.0/oradata/ora10/temp01.dbf' REUSE;

Ahora sí!!! Repetí el transporte del tablespace y quedó solucionado... (por suerte!!!)

No hay comentarios:

Publicar un comentario