将表空间和数据文件从一个位置移动到另一个位置的操作方法
一.OFFLINE
OFFLINE 分为ALTER DATABASE 与ALTER TABLESPACE OFFLINE,
按数据文件来:
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.alter tablespaceTESTrename datafile'D:/TEST01.DBF'to'D:/ORACLE/ORADATA/DBA/TEST01.DBF'
4.将表空间 online
SQL>altertablespacetestonline;
二. Shutdown数据库
1. 关闭数据库
C:>set ORACLE_SID=DBA
C:>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期日11月29 11:14:02 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn sys/admin as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
2.把数据文件 copy 到新位置3. rename datafile
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 71303872 bytes
Database Buffers 209715200 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> alter database rename file 'D:/ORACLE/ORADATA/DBA/TEST01.DBF' to 'D:/TEST01
.DBF';
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> select file#,name,status from v$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.DBFONLINE