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

[经验分享] 数据库OPEN状态下迁移数据文件的几种方法

[复制链接]

尚未签到

发表于 2019-1-27 15:32:48 | 显示全部楼层 |阅读模式
  有时可能会遇到磁盘空间满了,要求把部分表空间或者是数据文件迁移到位置的情况,下次介绍了3种方法来移动数据文件,移动表空间方法也是一样的。
  1,使用操作系统的MV方式。
  2,使用BACKUP AS COPY方式。
  3,使用RESTORE方式
  下面是详细的每种方式的步骤:
  1,使用操作系统的MV方式


  • 1.1 查看数据文件的系统
  • SQL> @files.sql
  • Type     Tablspace       Filename                                                                   File Size Status     Sequence Arch
  • -------- --------------- ----------------------------------------------------------------- ------------------ ---------- -------- ----
  • Data     TEST1           D:\APP\LUOPING\ORADATA\WINORCL\TEST1.DBF                                  10,485,760 Available         0

  • 1.2 把数据文件OFFLINE
  • SQL> alter tablespace test1 offline;

  • 表空间已更改。

  • SQL> host mv D:\APP\LUOPING\ORADATA\WINORCL\TEST1.DBF D:\APP\LUOPING\ORADATA\WINORCL\TEST2.DBF
  • 1.3 修改数据文件的路径
  • SQL> alter database rename file 'D:\APP\LUOPING\ORADATA\WINORCL\TEST1.DBF' to 'D:\APP\LUOPING\ORADATA\WINORCL\TEST2.DBF';

  • 数据库已更改。
  • 1.4 online文件文件
  • SQL> alter tablespace test1 online;

  • 表空间已更改。
  • 1.5 查看修改后的路径
  • SQL> @files.sql
  • Type     Tablspace       Filename                                                                   File Size Status     Sequence Arch
  • -------- --------------- ----------------------------------------------------------------- ------------------ ---------- -------- ----
  • Data     TEST1           D:\APP\LUOPING\ORADATA\WINORCL\TEST2.DBF                                  10,485,760 Available         0

  • 说明已经成功完成修改

  2,使用BACKUP AS COPY的方式


  • 2.1 COPY数据文件到指定位置
  • D:\app\luoping\oradata\winorcl>rman target /

  • 恢复管理器: Release 11.2.0.1.0 - Production on 星期四 1月 17 19:43:11 2013

  • Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

  • 连接到目标数据库: WINORCL (DBID=1952338960)

  • RMAN> backup as copy datafile 6 format='D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF';

  • 启动 backup 于 17-1月 -13
  • 使用目标数据库控制文件替代恢复目录
  • 分配的通道: ORA_DISK_1
  • 通道 ORA_DISK_1: SID=9 设备类型=DISK
  • 通道 ORA_DISK_1: 启动数据文件副本
  • 输入数据文件: 文件号=00006 名称=D:\APP\LUOPING\ORADATA\WINORCL\TEST2.DBF
  • 输出文件名=D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF 标记=TAG20130117T194403 RECID=1 STAMP=8049734
  • 通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
  • 完成 backup 于 17-1月 -13

  • 启动 Control File and SPFILE Autobackup 于 17-1月 -13
  • 段 handle=E:\INSTALL\TEST\C-1952338960-20130117-01 comment=NONE
  • 完成 Control File and SPFILE Autobackup 于 17-1月 -13
  • 2.2 OFFLINE数据文件
  • RMAN> sql 'alter database datafile 6 offline';

  • sql 语句: alter database datafile 6 offline
  • 2.3 切换到COPY的位置
  • RMAN> switch datafile 6 to copy;

  • 数据文件 6 已切换成数据文件副本 "D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF"
  • 2.4 RECOVER数据文件
  • RMAN> recover datafile 6;

  • 启动 recover 于 17-1月 -13
  • 使用通道 ORA_DISK_1

  • 正在开始介质的恢复
  • 介质恢复完成, 用时: 00:00:00

  • 完成 recover 于 17-1月 -13
  • 2.5 ONLINE数据文件
  • RMAN>  sql 'alter database datafile 6 online';

  • sql 语句: alter database datafile 6 online
  • 2.6 查看修改后的路径
  • SQL> @files.sql
  • Type     Tablspace       Filename                                                                   File Size Status     Sequence Ar
  • -------- --------------- ----------------------------------------------------------------- ------------------ ---------- -------- --
  • Data     TEST1           D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF                                  10,485,760 Available         0
  • 已经成功修改

  3.使用restore的方式。


  • 3.1 备份数据文件
  • RMAN> backup datafile 6 format 'E:\install\test\6';

  • 启动 backup 于 17-1月 -13
  • 使用通道 ORA_DISK_1
  • 通道 ORA_DISK_1: 正在启动全部数据文件备份集
  • 通道 ORA_DISK_1: 正在指定备份集内的数据文件
  • 输入数据文件: 文件号=00006 名称=D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF
  • 通道 ORA_DISK_1: 正在启动段 1 于 17-1月 -13
  • 通道 ORA_DISK_1: 已完成段 1 于 17-1月 -13
  • 段句柄=E:\INSTALL\TEST\6 标记=TAG20130117T194942 注释=NONE
  • 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
  • 完成 backup 于 17-1月 -13

  • 启动 Control File and SPFILE Autobackup 于 17-1月 -13
  • 段 handle=E:\INSTALL\TEST\C-1952338960-20130117-02 comment=NONE
  • 完成 Control File and SPFILE Autobackup 于 17-1月 -13
  • 3.2 offline数据文件
  • RMAN> sql 'alter database datafile 6 offline';

  • sql 语句: alter database datafile 6 offline
  • 3.3 还原数据文件到新的位置
  • RMAN> run
  • 2> {allocate channel t1 type disk;
  • 3> set newname for datafile 6 to 'D:\APP\LUOPING\ORADATA\WINORCL\TEST4.DBF';
  • 4> restore datafile 6;
  • 5> switch datafile 6;
  • 6> recover datafile 6;
  • 7> sql 'alter database datafile 6 online';
  • 8> }

  • 释放的通道: ORA_DISK_1
  • 分配的通道: t1
  • 通道 t1: SID=9 设备类型=DISK

  • 正在执行命令: SET NEWNAME

  • 启动 restore 于 17-1月 -13

  • 通道 t1: 正在开始还原数据文件备份集
  • 通道 t1: 正在指定从备份集还原的数据文件
  • 通道 t1: 将数据文件 00006 还原到 D:\APP\LUOPING\ORADATA\WINORCL\TEST4.DBF
  • 通道 t1: 正在读取备份片段 E:\INSTALL\TEST\6
  • 通道 t1: 段句柄 = E:\INSTALL\TEST\6 标记 = TAG20130117T194942
  • 通道 t1: 已还原备份片段 1
  • 通道 t1: 还原完成, 用时: 00:00:01
  • 完成 restore 于 17-1月 -13

  • 数据文件 6 已转换成数据文件副本
  • 输入数据文件副本 RECID=4 STAMP=804973935 文件名=D:\APP\LUOPING\ORADATA\WINORCL\TEST4.DBF

  • 启动 recover 于 17-1月 -13

  • 正在开始介质的恢复
  • 介质恢复完成, 用时: 00:00:00

  • 完成 recover 于 17-1月 -13

  • sql 语句: alter database datafile 6 online
  • 释放的通道: t1


  • 3.4 查看修改的路径
  • SQL> @files.sql
  • Type     Tablspace       Filename                                                                   File Size Status     Sequence Arch
  • -------- --------------- ----------------------------------------------------------------- ------------------ ---------- -------- ----
  • Data     TEST1           D:\APP\LUOPING\ORADATA\WINORCL\TEST4.DBF                                  10,485,760 Available         0

  • 已经成功完成修改

  虽然上面三种方法都可以,但是我们应该选择那一种方法呢?这个要根据当时的环境来看,
  个人觉得第二个方法最好,因为在COPY过程中不需要把数据文件OFFLINE,这样不会影响业务,只有在switch过程中才需要把datafile offline.




运维网声明 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.yunweiku.com/thread-668365-1-1.html 上篇帖子: 关于 yum 错误 TypeError: rpmdb open failed 的处理 下篇帖子: m4: cannot open `/usr/share/sendmail
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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