在Oracle中,如何移动或重命名数据文件?

0    49    1

👉 本文共约1374个字,系统预计阅读时间或需6分钟。

简介

数据文件查询:

需要注意的是,对于SYSTEM、SYSAUX和UNDO表空间的数据文件的移动或重命名,强烈建议关闭数据库进行操作,否则可能会引起意外的错误,甚至宕机。

方法1:利用OS拷贝

关闭数据库,利用OS拷贝,该方法适用于任何类型的文件,步骤如下所示:

其实利用OS拷贝也可以联机操作,不关闭数据库,但是只针对可以OFFLINE的数据文件,步骤如下所示:

方法2:利用RMAN联机操作

利用RMAN与利用OS拷贝的原理一样。在RMAN中,COPY命令是拷贝数据文件,相当于OS的cp命令,而SWITCH则相当于ALTER DATABASE RENAME用来更新控制文件。

示例:

方法3:利用ALTER TABLESPACE操作

ALTER TABLESPACE只能用于下面情况下的数据文件:不是SYSTEM表空间,不包含激活的回滚段,还有临时段,但是用ALTER TABLESPACE可以在实例启动的时候来执行,而ALTER DATABASE则适应于任何的数据文件,对于不能执行OFFLINE操作的数据文件,则此时数据库要在MOUNT状态下;而对于可以执行OFFLINE操作的数据文件,则数据库可以在OPEN状态下。

ALTER TABLESPACE方法步骤:

示例:

方法4:12c新特性

不同于以往的版本,在Oracle数据库12c R1版本中对数据文件的迁移或重命名不再需要太多繁琐的步骤。在12c R1中,可以使用ALTER DATABASE MOVE DATAFILE这样的SQL语句对数据文件进行在线重命名和移动。而当此数据文件正在传输时,终端用户可以执行查询,DML以及DDL方面的任务。另外,数据文件可以在存储设备间迁移,如从非ASM迁移至ASM,反之亦然。
  重命名数据文件:

  从非ASM迁移数据文件至ASM:

  将数据文件从一个ASM磁盘群组迁移至另一个ASM磁盘群组:

  在数据文件已存在于新路径的情况下,以相同的命名将其覆盖:

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

  复制文件到一个新路径,同时在原路径下保留其拷贝:

  当通过查询v$session_longops动态视图来移动文件时,你可以监控这一过程。另外,你也可以引用alert.log,Oracle会在其中记录具体的行为。

需要注意的是,在12c中,移动数据文件必须进入到相关的容器中才可以,否则会报错“ORA-01516: nonexistent log file, data file, or temporary file "12" in the current container”

有关ASM数据文件和文件系统文件互相转换的方法

ASM数据文件和OS文件系统互相转移方法总结

总结

1、若是12c,则可以在线直接操作

2、若是11g,请严格按照步骤来操作,在offline后记得执行recover操作

3、最最重要的一点:在移动数据文件之前,一定记得先查看目的地是否有重名的数据文件,否则会导致数据文件物理覆盖,造成不可恢复的损失!!!! 已碰到网友出现过此类情况!!!

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

10 + 6 =

 

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部