管理表空间和数据文件——移动数据文件


当数据文件所在磁盘损坏时,该数据文件将不能被访问。为了访问该数据文件,需要将其备份数据文件移动到其他磁盘进行恢复;另外为了提高数据文件的i/o性能,可能需要移动数据文件。

移动数据文件用两种方法,一种是使用alter tablespace 命令,另一种方法是使用alter database命令。

1.在open状态下移动数据文件

当数据处于open状态时,移动数据文件是使用alter tablespace 命令来完成的,当使用alter tablespace命令系统数据文件时,要求表空间必须处于offline 状态。因为system 表空间和sysaux 表空间不能脱机,所以使用该命令不能移动systme  表空间和sysaux 表空间。

例子:移动data01 的数据文件data01.dbf到目录c:\demo:

使表空间脱机:

alter tablespace data01 offline;

使用os 命令移动数据文件到指定目录

host move d:\orcl\data01.dbf c:\orcl\data01.dbf

执行alter tablespace 命令

alter tablespace data01 rename datafile 'd:\orcl\data01.dbf'
to 'c:\orcl\data01.dbf';

使表空间联机

alter tablespace data01 online;

 2.在mount状态下移动数据文件

因为system表空间和sysaux表空间不能被脱机,所以为了移动这两种表空间的数据文件,必须在mount状态下使用alter database 命令来完成

注意:使用这种方法可以移动任何表空间的数据文件。

例子:移动数据文件system01.dbf到c:\demo目录:


关闭并装载数据库

startup force mount;

移动数据文件到目标位置

host move E:\app\Administrator\oradata\orcl\SYSTEM01.DBF c:\orcl\system01.dbf

执行alter database 命令

alter database rename file
'E:\app\Administrator\oradata\orcl\SYSTEM01.DBF' 
to 'c:\orcl\system01.dbf';

打开数据库

alter database open;

原文地址:https://www.cnblogs.com/zhaojiedi1992/p/oracle11g_sql_0051.html