设为首页 收藏本站
查看: 742|回复: 0

[经验分享] Oracle 12.1新特性:在线rename或relocate数据文件

[复制链接]

尚未签到

发表于 2018-9-6 11:19:24 | 显示全部楼层 |阅读模式
  在Oracle12.1之前的版本中要重命名数据文件或移动数据文件需要关闭数据库或把表空间/数据文件置为offline状态才可以,参考之前总结的Oracle修改数据文件名/移动数据文件。但到了12.1版本,可以直接在数据文件online状态下把数据文件重命名或移动数据文件。
  要实现这一功能需要使用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
  
CORE12.2.0.1.0Production  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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-563992-1-1.html 上篇帖子: RMAN跨版本恢复--从Oracle10.2.0.5恢复到Oracle11.2.0.4 下篇帖子: 15、oracle审计
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表