Hola Amig@s,
Si por un casual al recuperar una base de datos secundaria o en standby (lo de secundaria es una copia de la primaria a la que vas aplicando los archivelogs en frio, que tampoco un dataguard), les aparece el siguiente error:
ORA-00283: recovery session canceled due to errors
ORA-01111: name for data file 4 is unknown - rename to correct file
ORA-01110: data file 4:
'D:\ORACLE\PRODUCT\12.1.0\DBHOME_1\DATABASE\UNNAMED00004'
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01111: name for data file 4 is unknown - rename to correct file
ORA-01110: data file 4:
'D:\ORACLE\PRODUCT\12.1.0\DBHOME_1\DATABASE\UNNAMED00004'
Significa que en la bbdd origen se ha creado un nuevo tablespace y al aplicar los archivelogs en la secundaria, ésta bbdd secundaria no sabe de lo que le estan hablando. Quiere restaurar un datafile que no sabe lo que es, de ahí lo de unknown.
Para solucionarlo, en la bbdd secundaria, iniciamos la sesión de DBA con sysdba, en caso de que esté abierta como solo lectura, le hacemos un shutdown, luego nos volvemos a conectar, hacemos un STARTUP MOUNT y crearemos el nuevo TBS sin tener que abrir la bbdd secundaria, con el siguiente comando:
alter database create datafile 'D:\ORACLE\PRODUCT\12.1.0\DBHOME_1\DATABASE\UNNAMED00004' as 'D:\oracle\data\orcl\RMAN.dbf';
En este caso el tablespace que se había creando en la bbdd primaria era RMAN, si no sabemos a que datafile se refiere con el nº 4 (en el ejemplo), podemos conectarnos a la primaria y ejecutar la siguiente query:
Select file#, name from v$datafile where file#=4;
Esto nos dará el nombre que debemos poner en la sentencia alter database create datafile.
El comando alter creará un datafile y luego al hacer un recover en la bbdd secundaria (solo sin hacer nada) se recuperará la información de ese tablespace y voila! volverá a funcionar como antes.
Espero que les resulte útil.
Salu2.
0 comentarios:
Publicar un comentario