全部博文(389)
分类: Oracle
2014-01-10 12:23:49
在线移动数据库文件
在12C以前的版中,如果需要移动数据文件到新的位置,基本的过程如下:
1,表空间离线;
2,copy或是mv文件到新的位置;
3,修改位置
alter tablespace t1 rename datafile 'datafile1' to 'datafile2';
或是
alter database rename file 'datafile1' to 'datafile2';
4,表空间online
这种方式不好的地方在于移动期间表空间需要离线。
12C中引入了online move datafile的概念,在移动期间不需要datafile offline
也不需要手动使用os命令去拷贝文件,整个过程一条命令搞定.
例:
创建了某表空间,文件名为
/home/oracle/C12/datafile/o1_mf_t1_9dp1ywmg_.dbf
现在需要把该文件移动到另外一个位置,如果使用以前的版本,需要做四步.现在只要一步:
SQL> alter database move datafile '/home/oracle/C12/datafile/o1_mf_t1_9dp1ywmg_.dbf' to '/home/oracle/t1.dbf';
Database altered.
[oracle@o12c database]$ ls -l /home/oracle/C12/datafile/o1_mf_t1_9dp1ywmg_.dbf
ls: /home/oracle/C12/datafile/o1_mf_t1_9dp1ywmg_.dbf: No such file or directory
原有的数据文件不存在了。如果还想要保持的话,可以加keep选项,这样oracle在move的时候
不会删除原有的数据文件了.