环境介绍
OS :windows 2003 64bit
database :oracle 10.2.0.1.0 64bit
前两天公司同事反映他们的一台测试服务器,C分区剩余空间不足,需要清理下。连上去才发现,数据文件都放在了C盘。
于是应同事要求,将部分表空间文件迁移到D分区上。发现两个比较大的数据文件,文件名字忘记了。在这里大概记录一下操作步骤
1、将目标表空间offline
2、将目标表空间的数据文件移动到指定路径
3、修改目标表空间数据文件路径
4、将目标表空间online
注意:这里迁移的是普通用户的表空间,可以在线迁移。如果是sys表空间,则需要restart 数据库。
1、目标表空间offline
查看下原文件路径和状态
select file#,name,status from v$datafile;
将目标表空间offline
alter tablespace users offline;
2、移动目标表空间数据文件到指定路径
如果是linux OS的话,可以直接用mv命令来移动。但是在windows环境下,即使这些数据文件已经offline,数据文件上面没有i/o操作,仍然是
无法移动的,因为这些文件仍然被oracle的进程占用,因此只能用复制的方法来移动。
从这个角度看,window系统这方面要比linux可靠些,可以防止一些误操作。
3、修改数据文件路径
alter tablespace users rename datafile ' 源路径 ' to '目标路径 '; --标注红色的关键词经常忘记
验证路径是否修改成功
select file#,name,status from v$datafile;
4、目标表空间online
alter tablespace users online;
验证表空间状态
原文地址:http://m.blog.youkuaiyun.com/blog/woshizyq/18498103