Oracle12.1新特性:在线rename或relocate数据文件-创新互联

在Oracle12.1之前的版本中要重命名数据文件或移动数据文件需要关闭数据库或把表空间/数据文件置为offline状态才可以,参考之前总结的Oracle修改数据文件名/移动数据文件。但到了12.1版本,可以直接在数据文件online状态下把数据文件重命名或移动数据文件。

成都创新互联专注于企业全网营销推广、网站重做改版、北京网站定制设计、自适应品牌网站建设、HTML5成都商城网站开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为北京等各大城市提供网站开发制作服务。

要实现这一功能需要使用ALTER DATABASE MOVE DATAFILE 语句,语法如下

ALTER DATABASE MOVE DATAFILE ( 'filename' | 'ASM_filename' | file_number )  [ TO ( 'filename' | 'ASM_filename' ) ]  [ REUSE ] [ KEEP ]

下面在12.2版本测试这一功能

zx@ORA12C>select * from v$version; BANNER      CON_ID -------------------------------------------------------------------------------- ---------- Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production   0 PL/SQL Release 12.2.0.1.0 - Production   0 CORE 12.2.0.1.0 Production   0 TNS for Linux: Version 12.2.0.1.0 - Production   0 NLSRTL Version 12.2.0.1.0 - Production   0

1、创建测试表空间及数据文件:

sys@ORA12C>create tablespace t_move datafile '/home/oracle/t_move.dbf' size 50m ; Tablespace created. sys@ORA12C>col name for a50 sys@ORA12C>select d.name,d.status from v$datafile d,v$tablespace t where t.ts#=d.ts# and t.name='T_MOVE'; NAME    STATUS -------------------------------------------------- ------- /home/oracle/t_move.dbf     ONLINE

现在数据文件'/home/oracle/t_move.dbf'为ONLINE状态

2、执行重命名操作

sys@ORA12C>alter database move datafile '/home/oracle/t_move.dbf' to '/home/oracle/t_move01.dbf'; Database altered. sys@ORA12C>select d.name,d.status from v$datafile d,v$tablespace t where t.ts#=d.ts# and t.name='T_MOVE'; NAME    STATUS -------------------------------------------------- ------- /home/oracle/t_move01.dbf    ONLINE sys@ORA12C>!ls -l /home/oracle/t_move01.dbf -rw-r----- 1 oracle oinstall 52436992 Jul 11 16:07 /home/oracle/t_move01.dbf sys@ORA12C>!ls -l /home/oracle/t_move.dbf ls: cannot access /home/oracle/t_move.dbf: No such file or directory

可以看到文件名从t_move.dbf改为了t_move01.dbf,原文件已经不存在了。

3、执行移动目录操作

sys@ORA12C>alter database move datafile '/home/oracle/t_move01.dbf' to '/u01/app/oracle/oradata/ora12c/t_move01.dbf'; Database altered. sys@ORA12C>!ls -l /u01/app/oracle/oradata/ora12c/t_move01.dbf -rw-r----- 1 oracle oinstall 52436992 Jul 11 16:10 /u01/app/oracle/oradata/ora12c/t_move01.dbf sys@ORA12C>!ls -l /home/oracle/t_move01.dbf ls: cannot access /home/oracle/t_move01.dbf: No such file or directory sys@ORA12C>select d.name,d.status from v$datafile d,v$tablespace t where t.ts#=d.ts# and t.name='T_MOVE'; NAME    STATUS -------------------------------------------------- ------- /u01/app/oracle/oradata/ora12c/t_move01.dbf    ONLINE

从上面的结果可以看到数据文件从'/home/oracle'目录移动到了'/u01/app/oracle/oradata/ora12c'目录下了。

4、copy数据文件到目标目录,保留原文件

sys@ORA12C>alter database move datafile  '/u01/app/oracle/oradata/ora12c/t_move01.dbf' to '/home/oracle/t_move01.dbf' keep; Database altered. sys@ORA12C>select d.name,d.status from v$datafile d,v$tablespace t where t.ts#=d.ts# and t.name='T_MOVE'; NAME    STATUS -------------------------------------------------- ------- /home/oracle/t_move01.dbf    ONLINE sys@ORA12C>!ls -l /home/oracle/t_move01.dbf -rw-r----- 1 oracle oinstall 52436992 Jul 11 16:15 /home/oracle/t_move01.dbf sys@ORA12C>!ls -l /u01/app/oracle/oradata/ora12c/t_move01.dbf -rw-r----- 1 oracle oinstall 52436992 Jul 11 16:15 /u01/app/oracle/oradata/ora12c/t_move01.dbf

从上面的结果可以看到数据文件改为了/home/oracle/t_move01.dbf,但原来的数据文件仍然被保留。

5、移动数据文件到ASM存储

--文件系统到ASM ALTER DATABASE MOVE DATAFILE '/u01/oracle/rbdb1/user1.dbf'    TO '+dgroup_01/data/orcl/datafile/user1.dbf'; --ASM到ASM ALTER DATABASE MOVE DATAFILE '+dgroup_01/data/orcl/datafile/user1.dbf'    TO '+dgroup_02/data/orcl/datafile/user1.dbf';

参考:http://docs.oracle.com/database/121/ADMIN/dfiles.htm#ADMIN13837

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:Oracle12.1新特性:在线rename或relocate数据文件-创新互联
网站地址:http://myzitong.com/article/doeceh.html