将表空间和数据文件从一个位置移动到另一个位置的操作方法
一. OFFLINE
OFFLINE 分为ALTER DATABASE 与 ALTER TABLESPACE OFFLINE,
他们的区别参看blog:http://blog.csdn.net/tianlesoftware/archive/2009/11/29/4898800.aspx
按数据文件来:
1.先将相应的数据文件 offline  
ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\DBA\TEST01.DBF' OFFLINE;
2.把数据文件 copy 到新位置
3. alter database rename file 'D:\ORACLE\ORADATA\DBA\TEST01.DBF' to 'D:\TEST01.DBF';
4. 介质恢复(offline 数据文件必须要介质恢复)
recover datafile 'D:\TEST01.DBF'
5. 将相应的数据文件 online 
SQL>ALTER DATABASE DATAFILE 'D:\TEST01.DBF' ONLINE;
按表空间来:
1.先将相应的表空间 offline  
SQL>alter tablespace test offline;  
2.把数据文件 copy 到新位置
3. alter tablespace TEST  rename datafile 'D:\TEST01.DBF' to 'D:\ORACLE\ORADATA\DBA\TEST01.DBF'
4. 将表空间 online 
SQL>alter tablespace test online;   
 
二. 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# NAME                                STATUS
-------- -------------------------------------------------------  ---------------
   1  D:\ORACLE\ORADATA\DBA\SYSTEM01  SYSTEM
   2  D:\ORACLE\ORADATA\DBA\UNDOTBS0  ONLINE
   3  D:\ORACLE\ORADATA\DBA\SYSAUX01  ONLINE
   4  D:\ORACLE\ORADATA\DBA\USERS01.   ONLINE
   5  D:\TEST01.DBF                              ONLINE
 
	posted on 2011-04-07 15:34 
SIMONE 阅读(415) 
评论(0)  编辑  收藏  所属分类: 
oracle