将表空间和数据文件从一个位置移动到另一个位置的操作方法
一.OFFLINE
OFFLINE分为ALTERDATABASE与ALTERTABLESPACEOFFLINE,
他们的区别参看blog:http://blog.csdn.net/xujinyang/article/details/6829966
按数据文件来:
1.先将相应的数据文件offline
ALTERDATABASEDATAFILE'D:/ORACLE/ORADATA/DBA/TEST01.DBF'OFFLINE;
2.把数据文件copy到新位置
3.alterdatabaserenamefile'D:/ORACLE/ORADATA/DBA/TEST01.DBF'to'D:/TEST01.DBF';
4.介质恢复(offline数据文件必须要介质恢复)
recoverdatafile'D:/TEST01.DBF'
5.将相应的数据文件online
SQL>ALTERDATABASEDATAFILE'D:/TEST01.DBF'ONLINE;
按表空间来:
1.先将相应的表空间offline
SQL>altertablespacetestoffline;
2.把数据文件copy到新位置
3.altertablespaceTESTrenamedatafile'D:/TEST01.DBF'to'D:/ORACLE/ORADATA/DBA/TEST01.DBF'
4.将表空间online
SQL>altertablespacetestonline;
二.Shutdown数据库
1.关闭数据库
C:>setORACLE_SID=DBA
C:>sqlplus/nolog
SQL*Plus:Release10.2.0.1.0-Productionon星期日11月2911:14:022009
Copyright(c)1982,2005,Oracle.Allrightsreserved.
SQL>connsys/adminassysdba
已连接。
SQL>shutdownimmediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL>
2.把数据文件copy到新位置
3.renamedatafile
SQL>startupmount
ORACLE例程已经启动。
TotalSystemGlobalArea289406976bytes
FixedSize1248576bytes
VariableSize71303872bytes
DatabaseBuffers209715200bytes
RedoBuffers7139328bytes
数据库装载完毕。
SQL>alterdatabaserenamefile'D:/ORACLE/ORADATA/DBA/TEST01.DBF'to'D:/TEST01
.DBF';
数据库已更改。
SQL>alterdatabaseopen;
数据库已更改。
SQL>selectfile#,name,statusfromv$datafile;
FILE#NAMESTATUS
------------------------------------------------------------------------------
1D:/ORACLE/ORADATA/DBA/SYSTEM01SYSTEM
2D:/ORACLE/ORADATA/DBA/UNDOTBS0ONLINE
3D:/ORACLE/ORADATA/DBA/SYSAUX01ONLINE
4D:/ORACLE/ORADATA/DBA/USERS01.ONLINE
5D:/TEST01.DBF ONLINE