方法一:offline表空间
1、offline表空间:alter tablespace tablespace_name offline;
2、复制数据文件到新的目录;
3、rename修改表空间,并修改控制文件;
4、online表空间;
1、offline表空间zerone
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:OraclePRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
C:ORACLEPRODUCT10.2.0ORADATAZERONE01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLRMANTS.DBF
已选择7行。
SQL> alter tablespace zerone offline;
表空间已更改。
2、复制数据文件到新的目录
复制数据文件C:ORACLEPRODUCT10.2.0ORADATAZERONE01.DBF到C:ORACLEPRODUCT10.2.0ORADATAORCLZERONE01.DBF。
3、rename修改表空间数据文件为新的位置,并修改控制文件
SQL> alter tablespace zerone rename datafile 'c:oracleproduct10.2.0oradatazerone01.dbf' to 'c:oracleproduct10.2.0oradataorclzerone01.dbf';
表空间已更改。
4、online表空间
SQL> alter tablespace zerone online;
表空间已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLZERONE01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLRMANTS.DBF
已选择7行。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='ZERONE';
FILE_NAME TABLESPACE_NAME
------------------------------------------------------------------------------------------------
ZERONE C:ORACLEPRODUCT10.2.0ORADATAORCLZERONE01.DBF
方法二:SQL修改数据文件位置
1、关闭数据库;
2、复制数据文件到新的位置;
3、启动数据库到mount状态;
4、通过SQL修改数据文件位置;
5、打开数据库;
1、关闭数据库
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLZERONE01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLRMANTS.DBF
已选择7行。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2、复制数据文件到新的位置;
将数据文件C:ORACLEPRODUCT10.2.0ORADATAORCLZERONE01.DBF复制到C:ORACLEPRODUCT10.2.0ORADATAZERONE01.DBF。
3、启动数据库到mount状态;
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 96470372 bytes
Database Buffers 67108864 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
4、通过SQL修改数据文件位置;
SQL> alter database rename file 'c:oracleproduct10.2.0oradataorclzerone01.dbf' to 'c:oracleproduct10.2.0oradatazerone01.dbf';
数据库已更改。
5、打开数据库;
SQL> alter database open;
数据库已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
C:ORACLEPRODUCT10.2.0ORADATAZERONE01.DBF
C:ORACLEPRODUCT10.2.0ORADATAORCLRMANTS.DBF
已选择7行。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='ZERONE';
FILE_NAME TABLESPACE_NAME
-------------------------------------------------------------------------------------------------
ZERONE C:ORACLEPRODUCT10.2.0ORADATAZERONE01.DBF