jueves, 21 de noviembre de 2019

ORA-01157: cannot identify/lock data file 201 - see DBWR trace file

ORA-01157: cannot identify/lock data file 201 - see DBWR trace file


Hola.

Se obtiene este error cuando no se encuentra el temp data file de la base de datos de Oracle.

Me sucede porque he realizado una restauración de base de datos y el TEMP datafile no es un archivo que forme parte de los archivos de backup.

En mi caso cuando la restauración se realiza, el nombre del temp datafile es actualizado y no coincide con el de la base de datos destino. En el caso de que el nombre y la ruta del temp datafile fuera el mismo, incluso así, lo mejor es recrear el TABLESPACE temporal o el datafile temporal.

El datafile temporal no se exporta ni se restaura por lo que lo mas recomendable después de una operación de restauración es crear uno nuevo. Siempre tomando en cuenta que una base de datos de Oracle necesita al menos un datafile temporal.

En mi caso para la solución lo que hago es eliminar el TABLESPACE temporal, volverlo a crear y asignarlo a la base de datos.

Solución.


Primero lo recomendable es ver el nombre y la ubicación del datafile temporal. Para esto ejecuten el siguiente query sobre la vista v$tempfile. Verifiquen que la ruta y el nombre existan.

SQL>SELECT FILE#,STATUS,NAME FROM V$TEMPFILE;

Como mencioné se puede borrar únicamente el datafile temporal o el TABLESPACE temporal completo.

Aquí les dejo las instrucciones para crear un nuevo TABLESPACE (TEMP01) con un nuevo datafile (TEMP0101.dbf), asignar a la base de datos y borrar el TABLESPACE anterior (TEMP).

Esto se puede hacer con la base de datos prendida ya que es tablespace temporal.

SQL> CREATE TEMPORARY TABLESPACE TEMP01 TEMPFILE 'C:\app\administrator\oradata\DATABASE\TEMP0101.dbf' SIZE 200M AUTOEXTEND ON; 
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP01; 
SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;


Espero les sirva.

No hay comentarios.:

Publicar un comentario