数据库OPEN状态下迁移数据文件的几种方法

简介:

     有时可能会遇到磁盘空间满了,要求把部分表空间或者是数据文件迁移到位置的情况,下次介绍了3种方法来移动数据文件,移动表空间方法也是一样的。

      1,使用操作系统的MV方式。

      2,使用BACKUP AS COPY方式。

      3,使用RESTORE方式

    下面是详细的每种方式的步骤:

      1,使用操作系统的MV方式

 
  1. 1.1 查看数据文件的系统 
  2. SQL> @files.sql 
  3. Type     Tablspace       Filename                                                                   File Size Status     Sequence Arch 
  4. -------- --------------- ----------------------------------------------------------------- ------------------ ---------- -------- ---- 
  5. Data     TEST1           D:\APP\LUOPING\ORADATA\WINORCL\TEST1.DBF                                  10,485,760 Available         0 
  6.  
  7. 1.2 把数据文件OFFLINE 
  8. SQL> alter tablespace test1 offline; 
  9.  
  10. 表空间已更改。 
  11.  
  12. SQL> host mv D:\APP\LUOPING\ORADATA\WINORCL\TEST1.DBF D:\APP\LUOPING\ORADATA\WINORCL\TEST2.DBF 
  13. 1.3 修改数据文件的路径 
  14. SQL> alter database rename file 'D:\APP\LUOPING\ORADATA\WINORCL\TEST1.DBF' to 'D:\APP\LUOPING\ORADATA\WINORCL\TEST2.DBF'
  15.  
  16. 数据库已更改。 
  17. 1.4 online文件文件 
  18. SQL> alter tablespace test1 online; 
  19.  
  20. 表空间已更改。 
  21. 1.5 查看修改后的路径 
  22. SQL> @files.sql 
  23. Type     Tablspace       Filename                                                                   File Size Status     Sequence Arch 
  24. -------- --------------- ----------------------------------------------------------------- ------------------ ---------- -------- ---- 
  25. Data     TEST1           D:\APP\LUOPING\ORADATA\WINORCL\TEST2.DBF                                  10,485,760 Available         0 
  26.  
  27. 说明已经成功完成修改 

       2,使用BACKUP AS COPY的方式

 
  1. 2.1 COPY数据文件到指定位置 
  2. D:\app\luoping\oradata\winorcl>rman target / 
  3.  
  4. 恢复管理器: Release 11.2.0.1.0 - Production on 星期四 1月 17 19:43:11 2013 
  5.  
  6. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved. 
  7.  
  8. 连接到目标数据库: WINORCL (DBID=1952338960) 
  9.  
  10. RMAN> backup as copy datafile 6 format='D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF'
  11.  
  12. 启动 backup 于 17-1月 -13 
  13. 使用目标数据库控制文件替代恢复目录 
  14. 分配的通道: ORA_DISK_1 
  15. 通道 ORA_DISK_1: SID=9 设备类型=DISK 
  16. 通道 ORA_DISK_1: 启动数据文件副本 
  17. 输入数据文件: 文件号=00006 名称=D:\APP\LUOPING\ORADATA\WINORCL\TEST2.DBF 
  18. 输出文件名=D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF 标记=TAG20130117T194403 RECID=1 STAMP=8049734 
  19. 通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01 
  20. 完成 backup 于 17-1月 -13 
  21.  
  22. 启动 Control File and SPFILE Autobackup 于 17-1月 -13 
  23. 段 handle=E:\INSTALL\TEST\C-1952338960-20130117-01 comment=NONE 
  24. 完成 Control File and SPFILE Autobackup 于 17-1月 -13 
  25. 2.2 OFFLINE数据文件 
  26. RMAN> sql 'alter database datafile 6 offline'
  27.  
  28. sql 语句: alter database datafile 6 offline 
  29. 2.3 切换到COPY的位置 
  30. RMAN> switch datafile 6 to copy; 
  31.  
  32. 数据文件 6 已切换成数据文件副本 "D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF" 
  33. 2.4 RECOVER数据文件 
  34. RMAN> recover datafile 6; 
  35.  
  36. 启动 recover 于 17-1月 -13 
  37. 使用通道 ORA_DISK_1 
  38.  
  39. 正在开始介质的恢复 
  40. 介质恢复完成, 用时: 00:00:00 
  41.  
  42. 完成 recover 于 17-1月 -13 
  43. 2.5 ONLINE数据文件 
  44. RMAN>  sql 'alter database datafile 6 online'
  45.  
  46. sql 语句: alter database datafile 6 online 
  47. 2.6 查看修改后的路径 
  48. SQL> @files.sql 
  49. Type     Tablspace       Filename                                                                   File Size Status     Sequence Ar 
  50. -------- --------------- ----------------------------------------------------------------- ------------------ ---------- -------- -- 
  51. Data     TEST1           D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF                                  10,485,760 Available         0 
  52. 已经成功修改 

        3.使用restore的方式。

 
  1. 3.1 备份数据文件 
  2. RMAN> backup datafile 6 format 'E:\install\test\6'
  3.  
  4. 启动 backup 于 17-1月 -13 
  5. 使用通道 ORA_DISK_1 
  6. 通道 ORA_DISK_1: 正在启动全部数据文件备份集 
  7. 通道 ORA_DISK_1: 正在指定备份集内的数据文件 
  8. 输入数据文件: 文件号=00006 名称=D:\APP\LUOPING\ORADATA\WINORCL\TEST3.DBF 
  9. 通道 ORA_DISK_1: 正在启动段 1 于 17-1月 -13 
  10. 通道 ORA_DISK_1: 已完成段 1 于 17-1月 -13 
  11. 段句柄=E:\INSTALL\TEST\6 标记=TAG20130117T194942 注释=NONE 
  12. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01 
  13. 完成 backup 于 17-1月 -13 
  14.  
  15. 启动 Control File and SPFILE Autobackup 于 17-1月 -13 
  16. 段 handle=E:\INSTALL\TEST\C-1952338960-20130117-02 comment=NONE 
  17. 完成 Control File and SPFILE Autobackup 于 17-1月 -13 
  18. 3.2 offline数据文件 
  19. RMAN> sql 'alter database datafile 6 offline'
  20.  
  21. sql 语句: alter database datafile 6 offline 
  22. 3.3 还原数据文件到新的位置 
  23. RMAN> run 
  24. 2> {allocate channel t1 type disk; 
  25. 3> set newname for datafile 6 to 'D:\APP\LUOPING\ORADATA\WINORCL\TEST4.DBF'
  26. 4> restore datafile 6; 
  27. 5> switch datafile 6; 
  28. 6> recover datafile 6; 
  29. 7> sql 'alter database datafile 6 online'
  30. 8> } 
  31.  
  32. 释放的通道: ORA_DISK_1 
  33. 分配的通道: t1 
  34. 通道 t1: SID=9 设备类型=DISK 
  35.  
  36. 正在执行命令: SET NEWNAME 
  37.  
  38. 启动 restore 于 17-1月 -13 
  39.  
  40. 通道 t1: 正在开始还原数据文件备份集 
  41. 通道 t1: 正在指定从备份集还原的数据文件 
  42. 通道 t1: 将数据文件 00006 还原到 D:\APP\LUOPING\ORADATA\WINORCL\TEST4.DBF 
  43. 通道 t1: 正在读取备份片段 E:\INSTALL\TEST\6 
  44. 通道 t1: 段句柄 = E:\INSTALL\TEST\6 标记 = TAG20130117T194942 
  45. 通道 t1: 已还原备份片段 1 
  46. 通道 t1: 还原完成, 用时: 00:00:01 
  47. 完成 restore 于 17-1月 -13 
  48.  
  49. 数据文件 6 已转换成数据文件副本 
  50. 输入数据文件副本 RECID=4 STAMP=804973935 文件名=D:\APP\LUOPING\ORADATA\WINORCL\TEST4.DBF 
  51.  
  52. 启动 recover 于 17-1月 -13 
  53.  
  54. 正在开始介质的恢复 
  55. 介质恢复完成, 用时: 00:00:00 
  56.  
  57. 完成 recover 于 17-1月 -13 
  58.  
  59. sql 语句: alter database datafile 6 online 
  60. 释放的通道: t1 
  61.  
  62.  
  63. 3.4 查看修改的路径 
  64. SQL> @files.sql 
  65. Type     Tablspace       Filename                                                                   File Size Status     Sequence Arch 
  66. -------- --------------- ----------------------------------------------------------------- ------------------ ---------- -------- ---- 
  67. Data     TEST1           D:\APP\LUOPING\ORADATA\WINORCL\TEST4.DBF                                  10,485,760 Available         0 
  68.  
  69. 已经成功完成修改 

     虽然上面三种方法都可以,但是我们应该选择那一种方法呢?这个要根据当时的环境来看,

个人觉得第二个方法最好,因为在COPY过程中不需要把数据文件OFFLINE,这样不会影响业务,只有在switch过程中才需要把datafile offline.





     本文转自7343696 51CTO博客,原文链接:http://blog.51cto.com/luoping/1121116,如需转载请自行联系原作者



相关文章
|
27天前
|
监控 关系型数据库 数据库
OceanBase数据库常见问题之文件存在但是数据库提示文件不存在如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
5天前
|
存储 关系型数据库 MySQL
如何处理爬取到的数据,例如存储到数据库或文件中?
处理爬取的数据,可存储为txt、csv(适合表格数据)或json(适合结构化数据)文件。若需存储大量数据并执行复杂查询,可选择关系型(如MySQL)或非关系型(如MongoDB)数据库。以MySQL为例,需安装数据库和Python的pymysql库,创建数据库和表,然后编写Python代码进行数据操作。选择存储方式应考虑数据类型、数量及后续处理需求。
12 1
|
6天前
|
SQL 关系型数据库 MySQL
关系型数据库插入数据的语句
使用SQL的`INSERT INTO`语句向关系型数据库的`students`表插入数据。例如,插入一个`id`为1,`name`为'张三',`age`为20的记录:`INSERT INTO students (id, name, age) VALUES (1, '张三', 20)。如果`id`自增,则可简化为`INSERT INTO students (name, age) VALUES ('张三', 20)`。
5 2
|
6天前
|
SQL 存储 Oracle
关系型数据库查询数据的语句
本文介绍了关系型数据库中的基本SQL查询语句,包括选择所有或特定列、带条件查询、排序、分组、过滤分组、表连接、限制记录数及子查询。SQL还支持窗口函数、存储过程等高级功能,是高效管理数据库的关键。建议深入学习SQL及相应数据库系统文档。
8 2
|
13天前
|
人工智能 Cloud Native 算法
数据之势丨AI时代,云原生数据库的最新发展趋势与进展
AI与云数据库的深度结合是数据库发展的必然趋势,基于AI能力的加持,云数据库未来可以实现更快速的查询和决策,帮助企业更好地利用海量数据进行业务创新和决策优化。
数据之势丨AI时代,云原生数据库的最新发展趋势与进展
|
4天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
31 2
|
20天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
104 0
|
20天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
20天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
|
16天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
47 0