Monday, March 16, 2009

Rename or Move Oracle Tablespace Datafiles to another Location

Oracle database does not provide an easy user interface to rename a datafile of tablespace, nor database administrator can easily move or relocate the datafile to another location or directory that different from original location on creation of database. The rename or move place task has to be performed via Oracle SQLPlus command line interface. However, if the operation is performed when the tablespace which owns the datefile is online, error will occur.

The error message may include the following:

ORA-01511: error in renaming log/data files
ORA-01121: cannot rename database file - file is in use or recovery
ORA-01110: data file : ‘datafile.dbf’

To properly move the datafile around or rename the datafile, follow this guide:

Login to SQLPlus.
Connect as SYS DBA with CONNECT / AS SYSDBA command.
Shutdown the database instance with SHUTDOWN command.
Rename or/and move the datafiles at operating system level.
Start Oracle database in mount state with STARTUP MOUNT command.
Modify the name or location of datafiles in Oracle data dictionary using following command syntax:
ALTER DATABASE RENAME FILE ‘’ TO ‘’;

Open Oracle database instance completely with ALTER DATABASE OPEN command.
If the datafiles that need to be changed or moved do not belong to SYSTEM tablespaces, and do not contain active rollback segments or temporary segments, there is another workaround that does not require database instance to be shutdown. Instead, only the particular tablespace that contains the date files is taken offline.

Login to SQLPlus.
Connect as SYS DBA with CONNECT / AS SYSDBA command.
Make offline the affected tablespace with ALTER TABLESPACE OFFLINE; command.
Modify the name or location of datafiles in Oracle data dictionary using following command syntax:
ALTER TABLESPACE RENAME DATAFILE ‘’ TO ‘’;

Bring the tablespace online again with ALTER TABLESPACE alter tablespace ONLINE; command.

No comments:

Post a Comment