Sunday, May 24, 2009

rename a datafile without using OS Commands

SQL> select file_name,bytes/1024/1024,status from dba_data_files where tablespace_name='VIJAY_TS';
FILE_NAME BYTES/1024/1024 STATUS
----------- -------------- -----
C:\ORACLE\DBSQL\DATA\VIJAY_TS.DBF 4.1015625 AVAILABLE C:\ORACLE\DBSQL\DATA\VIJAY_TS1.DBF 2 AVAILABLE
2 rows selected.
Elapsed: 00:00:00.10
SQL> alter database datafile 'C:\ORACLE\DBSQL\DATA\VIJAY_TS.DBF' offline;
Database altered.
Elapsed: 00:00:00.42
SQL> select file#,name,status from V$datafile where upper(name) like '%VIJAY%';
FILE#
----------
NAME
-----------------------------------------------------------------------------------------STATUS
-------
7 C:\ORACLE\DBSQL\DATA\VIJAY_TS.DBF RECOVER
9 C:\ORACLE\DBSQL\DATA\VIJAY_TS1.DBF ONLINE

2 rows selected.
Elapsed: 00:00:00.08
SQL> show user
USER is "VIJAY"
SQL> create directory file_tr as 'C:\oracle\dbsql\data';
Directory created.
Elapsed: 00:00:00.05
SQL> exec dbms_file_transfer.COPY_FILE('FILE_TR','VIJAY_TS.DBF','FILE_TR','VIJAY_TS001.DBF')
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.38
SQL> alter tablespace vijay_ts rename datafile 'C:\ORACLE\DBSQL\DATA\VIJAY_TS.DBF' to 'C:\ORACLE\DBSQL\DATA\VIJAY_TS001.DBF';
Tablespace altered.
Elapsed: 00:00:00.30
SQL> alter database datafile 'C:\ORACLE\DBSQL\DATA\VIJAY_TS001.DBF' online;
alter database datafile 'C:\ORACLE\DBSQL\DATA\VIJAY_TS001.DBF' online*ERROR at line 1:ORA-01113: file 7 needs media recovery
ORA-01110: data file 7: 'C:\ORACLE\DBSQL\DATA\VIJAY_TS001.DBF'
Elapsed: 00:00:00.37
SQL> recover datafile 'C:\ORACLE\DBSQL\DATA\VIJAY_TS001.DBF';
Media recovery complete.

SQL> alter database datafile 'C:\ORACLE\DBSQL\DATA\VIJAY_TS001.DBF' online;
Database altered.
Elapsed: 00:00:00.50
SQL> select file#,name,status from V$datafile where upper(name) like '%VIJAY%';
FILE#
----------
NAME ------------------------------------------------------------------------------------------------------------------------------------------------------
STATUS
-------
7 C:\ORACLE\DBSQL\DATA\VIJAY_TS001.DBF ONLINE
9 C:\ORACLE\DBSQL\DATA\VIJAY_TS1.DBF ONLINE

2 rows selected.
Elapsed: 00:00:00.08
SQL> select file_name,bytes/1024/1024,status
from dba_data_files where tablespace_name='VIJAY_TS';
FILE_NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
BYTES/1024/1024
---------------
STATUS
---------
C:\ORACLE\DBSQL\DATA\VIJAY_TS001.DBF 4.1015625 AVAILABLE C:\ORACLE\DBSQL\DATA\VIJAY_TS1.DBF 2 AVAILABLE

2 rows selected.
Elapsed: 00:00:00.06

No comments: