Faltaba espacio en un tablespace y optaste por agregar un datafile nuevo, resuelto el problema regresas a tus asuntos y te olvidas del tema. Luego, mientras de forma rutinaria inspeccionas los contenidos del filesystem, reparas en que el nuevo datafile tiene un nombre algo raro, tiene caracteres especiales; recuerdas que al escribir el nombre lo hiciste con tanta prisa que te equivocaste un par de veces pero al final el nombre estaba OK, o al menos en tu pantalla así parecía; bueno pues, igual hay que resolver el problema, pero ¿por dónde empezar?
La primera intención es renombrar el archivo desde el sistema operativo, pero encuentras problemas para lograrlo, ¿por qué no ayudarnos de nuestro viejo conocido RMAN? Afortunadamente el procedimiento es bastante simple:
1. Primero invocamos RMAN y verificamos la situación inicial.
$ rman target /
RMAN> report schema;
using target database control file instead of recovery catalog
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- ---------------- ------- ------------------------
1 480 SYSTEM *** /u01/oradata/orcl/system01.dbf
2 30 UNDOTBS1 *** /u01/oradata/orcl/undotbs01.dbf
3 230 SYSAUX *** /u01/oradata/orcl/sysaux01.dbf
4 5 USERS *** /u01/oradata/orcl/users01.dbf
5 100 EXAMPLE *** /u01/oradata/orcl/example01.dbf
6 10 DEMO *** /u01/oradata/orcl/�¡Ã³demo01.dbf
^^^^^^^^^^^^^^
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 20 TEMP 32767 /u01/oradata/orcl/temp01.dbf
2. Procedemos a poner el tablespace afectado fuera de linea.
RMAN> sql "alter tablespace demo offline";
sql statement: alter tablespace demo offline
RMAN> copy datafile 6 to '/u01/oradata/orcl/demo01.dbf';
Starting backup at 06/11/2008 20:40:28
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=142 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00006 name=/u01/oradata/orcl/�¡Ã³demo01.dbf
output filename=/u01/oradata/orcl/demo01.dbf tag=TAG20081106T204029 recid=4 stamp=670106430
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 06/11/2008 20:40:30
RMAN> switch datafile 6 to copy;
datafile 6 switched to datafile copy "/u01/oradata/orcl/demo01.dbf"
5. Finalizamos poniendo el tablespace en linea.
RMAN> sql "alter tablespace demo online";
sql statement: alter tablespace demo online
RMAN> report schema;
using target database control file instead of recovery catalog
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- ---------------- ------- ------------------------
1 480 SYSTEM *** /u01/oradata/orcl/system01.dbf
2 30 UNDOTBS1 *** /u01/oradata/orcl/undotbs01.dbf
3 230 SYSAUX *** /u01/oradata/orcl/sysaux01.dbf
4 5 USERS *** /u01/oradata/orcl/users01.dbf
5 100 EXAMPLE *** /u01/oradata/orcl/example01.dbf
6 10 DEMO *** /u01/oradata/orcl/demo01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 20 TEMP 32767 /u01/oradata/orcl/temp01.dbf
¡El problema ha sido resuelto!
Puedes revisar la nota: 743616.1 Rename Datafiles Using Rman, para ver otros escenarios posibles.