使用RMAN传输表空间! .

前面提到的传输表空间是手动的,可以看到需要把表空间read only,如果使用rman则不需要,因为rman是利用的备份集。

可传输表空间实验环境
  OS IP SID 存储方式 表空间 用户
源数据库 redhat5.4 10.10.10.7 orcl ASM ttb1 user1

test

目标数据库 redhat5.4 10.10.10.8 orcl 文件系统 —— user1 ——

下面给出创建测试环境的脚本(源数据库上面执行的操作)

  1. SQL> show user  
  2. USER 为 "SYS"  
  3. SQL> create tablespace ttb1 datafile '+datadg' size 10m;  
  4.   
  5. 表空间已创建。  
  6.   
  7. SQL> create user user1 identified by user1 default tablespace ttb1;  
  8.   
  9. 用户已创建。  
  10.   
  11. SQL> grant connect,resource to user1;  
  12.   
  13. 授权成功。  
  14.   
  15. SQL> create table user1.test as select * from dba_objects where rownum < 100;  
  16.   
  17. 表已创建。  
  18.   
  19. SQL> conn user1/user1  
  20. 已连接。  
  21. SQL> select * from tab;  
  22.   
  23. TNAME                          TABTYPE  CLUSTERID  
  24. ------------------------------ ------- ----------   
  25. TEST                           TABLE  
  26.   
  27. SQL> select count(*) from test;  
  28.   
  29.   COUNT(*)  
  30. ----------   
  31.         99  
SQL> show user
USER 为 "SYS"
SQL> create tablespace ttb1 datafile '+datadg' size 10m;

表空间已创建。

SQL> create user user1 identified by user1 default tablespace ttb1;

用户已创建。

SQL> grant connect,resource to user1;

授权成功。

SQL> create table user1.test as select * from dba_objects where rownum < 100;

表已创建。

SQL> conn user1/user1
已连接。
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TEST                           TABLE

SQL> select count(*) from test;

  COUNT(*)
----------
        99

可传输表空间实战

1.确认要传输表空间的平台是否兼容(源数据库和目标数据库上面都一样,因为都是redhat5.4的OS)

  1. SQL> select tp.* from v$transportable_platform tp,v$database d where tp.PLATFORM_NAME = d.PLATFORM_NAME;  
  2.   
  3. PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT  
  4. ----------- ---------------------------------------- --------------   
  5.          10 Linux IA (32-bit)                        Little  
SQL> select tp.* from v$transportable_platform tp,v$database d where tp.PLATFORM_NAME = d.PLATFORM_NAME;

PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT
----------- ---------------------------------------- --------------
         10 Linux IA (32-bit)                        Little


2.确认传输的表空间是否自包含(源数据库上面执行的操作)

  1. SQL> exec dbms_tts.transport_set_check('ttb1',true,true);  
  2.   
  3. PL/SQL 过程已成功完成。  
  4.   
  5. SQL> select * from transport_set_violations;  
  6.   
  7. 未选定行  
SQL> exec dbms_tts.transport_set_check('ttb1',true,true);

PL/SQL 过程已成功完成。

SQL> select * from transport_set_violations;

未选定行

3.备份数据库(源数据库上面执行的操作)

  1. RMAN> sql "alter system checkpoint";  
  2.   
  3. sql 语句: alter system checkpoint  
  4.   
  5. RMAN> sql "alter system archive log current";  
  6.   
  7. sql 语句: alter system archive log current  
  8.   
  9. RMAN> sql "alter system switch logfile";  
  10.   
  11. sql 语句: alter system switch logfile  
  12.   
  13. RMAN> backup database;  
  14.   
  15. 启动 backup 于 07-10月-11  
  16. 使用通道 ORA_DISK_1  
  17. 通道 ORA_DISK_1: 启动全部数据文件备份集  
  18. 通道 ORA_DISK_1: 正在指定备份集中的数据文件  
  19. 输入数据文件 fno=00001 name=+DATADG/orcl/datafile/system.260.762322843  
  20. 输入数据文件 fno=00002 name=+DATADG/orcl/datafile/undotbs1.261.762322855  
  21. 输入数据文件 fno=00003 name=+DATADG/orcl/datafile/sysaux.262.762322857  
  22. 输入数据文件 fno=00005 name=+DATADG/orcl/datafile/tb1.267.763910145  
  23. 输入数据文件 fno=00006 name=+DATADG/orcl/datafile/tb2.268.763910201  
  24. 输入数据文件 fno=00007 name=+DATADG/orcl/datafile/ttb1.269.763916007  
  25. 输入数据文件 fno=00004 name=+DATADG/orcl/datafile/users.264.762322865  
  26. 通道 ORA_DISK_1: 正在启动段 1 于 07-10月-11  
  27. 通道 ORA_DISK_1: 已完成段 1 于 07-10月-11  
  28. 段句柄=+FLSHDG/orcl/backupset/2011_10_07/nnndf0_tag20111007t154253_0.262.763918973 标记=TAG20111007T154253 注释=NONE  
  29. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35  
  30. 通道 ORA_DISK_1: 启动全部数据文件备份集  
  31. 通道 ORA_DISK_1: 正在指定备份集中的数据文件  
  32. 备份集中包括当前控制文件  
  33. 在备份集中包含当前的 SPFILE  
  34. 通道 ORA_DISK_1: 正在启动段 1 于 07-10月-11  
  35. 通道 ORA_DISK_1: 已完成段 1 于 07-10月-11  
  36. 段句柄=+FLSHDG/orcl/backupset/2011_10_07/ncsnf0_tag20111007t154253_0.266.763919011 标记=TAG20111007T154253 注释=NONE  
  37. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03  
  38. 完成 backup 于 07-10月-11  
  39.   
  40. RMAN> backup archivelog all;  
  41.   
  42. 启动 backup 于 07-10月-11  
  43. 当前日志已存档  
  44. 使用通道 ORA_DISK_1  
  45. 通道 ORA_DISK_1: 正在启动存档日志备份集  
  46. 通道 ORA_DISK_1: 正在指定备份集中的存档日志  
  47. 输入存档日志线程 =1 序列 =29 记录 ID=1 时间戳=762324929  
  48. 输入存档日志线程 =1 序列 =30 记录 ID=2 时间戳=762374199  
  49. 输入存档日志线程 =1 序列 =31 记录 ID=3 时间戳=762886152  
  50. 输入存档日志线程 =1 序列 =32 记录 ID=4 时间戳=763918707  
  51. 输入存档日志线程 =1 序列 =33 记录 ID=5 时间戳=763918939  
  52. 输入存档日志线程 =1 序列 =34 记录 ID=6 时间戳=763918951  
  53. 输入存档日志线程 =1 序列 =35 记录 ID=7 时间戳=763919033  
  54. 通道 ORA_DISK_1: 正在启动段 1 于 07-10月-11  
  55. 通道 ORA_DISK_1: 已完成段 1 于 07-10月-11  
  56. 段句柄=+FLSHDG/orcl/backupset/2011_10_07/annnf0_tag20111007t154353_0.268.763919035 标记=TAG20111007T154353 注释=NONE  
  57. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04  
  58. 完成 backup 于 07-10月-11  
  59.   
  60. RMAN> backup current controlfile;  
  61.   
  62. 启动 backup 于 07-10月-11  
  63. 使用通道 ORA_DISK_1  
  64. 通道 ORA_DISK_1: 启动全部数据文件备份集  
  65. 通道 ORA_DISK_1: 正在指定备份集中的数据文件  
  66. 备份集中包括当前控制文件  
  67. 通道 ORA_DISK_1: 正在启动段 1 于 07-10月-11  
  68. 通道 ORA_DISK_1: 已完成段 1 于 07-10月-11  
  69. 段句柄=+FLSHDG/orcl/backupset/2011_10_07/ncnnf0_tag20111007t154419_0.269.763919061 标记=TAG20111007T154419 注释=NONE  
  70. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02  
  71. 完成 backup 于 07-10月-11  
RMAN> sql "alter system checkpoint";

sql 语句: alter system checkpoint

RMAN> sql "alter system archive log current";

sql 语句: alter system archive log current

RMAN> sql "alter system switch logfile";

sql 语句: alter system switch logfile

RMAN> backup database;

启动 backup 于 07-10月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=+DATADG/orcl/datafile/system.260.762322843
输入数据文件 fno=00002 name=+DATADG/orcl/datafile/undotbs1.261.762322855
输入数据文件 fno=00003 name=+DATADG/orcl/datafile/sysaux.262.762322857
输入数据文件 fno=00005 name=+DATADG/orcl/datafile/tb1.267.763910145
输入数据文件 fno=00006 name=+DATADG/orcl/datafile/tb2.268.763910201
输入数据文件 fno=00007 name=+DATADG/orcl/datafile/ttb1.269.763916007
输入数据文件 fno=00004 name=+DATADG/orcl/datafile/users.264.762322865
通道 ORA_DISK_1: 正在启动段 1 于 07-10月-11
通道 ORA_DISK_1: 已完成段 1 于 07-10月-11
段句柄=+FLSHDG/orcl/backupset/2011_10_07/nnndf0_tag20111007t154253_0.262.763918973 标记=TAG20111007T154253 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 07-10月-11
通道 ORA_DISK_1: 已完成段 1 于 07-10月-11
段句柄=+FLSHDG/orcl/backupset/2011_10_07/ncsnf0_tag20111007t154253_0.266.763919011 标记=TAG20111007T154253 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 07-10月-11

RMAN> backup archivelog all;

启动 backup 于 07-10月-11
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =29 记录 ID=1 时间戳=762324929
输入存档日志线程 =1 序列 =30 记录 ID=2 时间戳=762374199
输入存档日志线程 =1 序列 =31 记录 ID=3 时间戳=762886152
输入存档日志线程 =1 序列 =32 记录 ID=4 时间戳=763918707
输入存档日志线程 =1 序列 =33 记录 ID=5 时间戳=763918939
输入存档日志线程 =1 序列 =34 记录 ID=6 时间戳=763918951
输入存档日志线程 =1 序列 =35 记录 ID=7 时间戳=763919033
通道 ORA_DISK_1: 正在启动段 1 于 07-10月-11
通道 ORA_DISK_1: 已完成段 1 于 07-10月-11
段句柄=+FLSHDG/orcl/backupset/2011_10_07/annnf0_tag20111007t154353_0.268.763919035 标记=TAG20111007T154353 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
完成 backup 于 07-10月-11

RMAN> backup current controlfile;

启动 backup 于 07-10月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
通道 ORA_DISK_1: 正在启动段 1 于 07-10月-11
通道 ORA_DISK_1: 已完成段 1 于 07-10月-11
段句柄=+FLSHDG/orcl/backupset/2011_10_07/ncnnf0_tag20111007t154419_0.269.763919061 标记=TAG20111007T154419 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 07-10月-11

说明:这里使用全库备份,因为除了目标表空间的备份以外,RMAN还需要SYSTEM、SYSAUX以及UNDO表空间的备份,如果任意一个表空间的备份不存在,则就会导致“RMAN-06019: 无法转换表空间名称"TTB1"”的错误。


4.生成传输集(源数据库上面执行的操作)

  1. RMAN> transport tablespace ttb1 tablespace destination '/u01/td' auxiliary destination '/u01/ad';  
  2.   
  3. RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点  
  4.   
  5. 表空间列表要求具有 UNDO 段  
  6. 表空间 SYSTEM  
  7. 表空间 UNDOTBS1  
  8.   
  9. 使用 SID='hiEo' 创建自动实例  
  10.   
  11. 供自动实例使用的初始化参数:  
  12. db_name=ORCL  
  13. compatible=10.2.0.3.0  
  14. db_block_size=8192  
  15. db_files=200  
  16. db_unique_name=tspitr_ORCL_hiEo  
  17. large_pool_size=1M  
  18. shared_pool_size=110M  
  19. #No auxiliary parameter file used  
  20. db_create_file_dest=/u01/ad  
  21. control_files=/u01/ad/cntrl_tspitr_ORCL_hiEo.f  
  22.   
  23.   
  24. 启动自动实例 ORCL  
  25.   
  26. Oracle 实例已启动  
  27.   
  28. 系统全局区域总计     201326592 字节  
  29.   
  30. Fixed Size                     1266584 字节  
  31. Variable Size                146803816 字节  
  32. Database Buffers              50331648 字节  
  33. Redo Buffers                   2924544 字节  
  34. 自动实例已创建  
  35.   
  36. 内存脚本的内容:  
  37. {  
  38. set the until clause  
  39. set until  scn 973897;  
  40. # restore the controlfile  
  41. restore clone controlfile;  
  42. # mount the controlfile  
  43. sql clone 'alter database mount clone database';  
  44. # archive current online log for tspitr to a resent until time  
  45. sql 'alter system archive log current';  
  46. # avoid unnecessary autobackups for structural changes during TSPITR  
  47. sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';  
  48. }  
  49. 正在执行内存脚本  
  50.   
  51. 正在执行命令: SET until clause  
  52.   
  53. 启动 restore 于 07-10月-11  
  54. 分配的通道: ORA_AUX_DISK_1  
  55. 通道 ORA_AUX_DISK_1: sid=37 devtype=DISK  
  56.   
  57. 通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集  
  58. 通道 ORA_AUX_DISK_1: 正在还原控制文件  
  59. 通道 ORA_AUX_DISK_1: 正在读取备份片段 +FLSHDG/orcl/backupset/2011_10_07/ncsnf0_tag20111007t154253_0.266.763919011  
  60. 通道 ORA_AUX_DISK_1: 已还原备份片段 1  
  61. 段句柄 = +FLSHDG/orcl/backupset/2011_10_07/ncsnf0_tag20111007t154253_0.266.763919011 标记 = TAG20111007T154253  
  62. 通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:18  
  63. 输出文件名=/u01/ad/cntrl_tspitr_ORCL_hiEo.f  
  64. 完成 restore 于 07-10月-11  
  65.   
  66. sql 语句: alter database mount clone database  
  67.   
  68. sql 语句: alter system archive log current  
  69.   
  70. sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;  
  71. 释放的通道: ORA_DISK_1  
  72. 释放的通道: ORA_AUX_DISK_1  
  73.   
  74. 内存脚本的内容:  
  75. {  
  76. # generated tablespace point-in-time recovery script  
  77. set the until clause  
  78. set until  scn 973897;  
  79. set an omf destination filename for restore  
  80. set newname for clone datafile  1 to new;  
  81. set an omf destination filename for restore  
  82. set newname for clone datafile  2 to new;  
  83. set an omf destination filename for restore  
  84. set newname for clone datafile  3 to new;  
  85. set an omf destination tempfile  
  86. set newname for clone tempfile  1 to new;  
  87. set a destination filename for restore  
  88. set newname for datafile  7 to   
  89.  "/u01/td/ttb1.269.763916007";  
  90. # rename all tempfiles  
  91. switch clone tempfile all;  
  92. # restore the tablespaces in the recovery set plus the auxilliary tablespaces  
  93. restore clone datafile  1, 2, 3, 7;  
  94. switch clone datafile all;  
  95. #online the datafiles restored or flipped  
  96. sql clone "alter database datafile  1 online";  
  97. #online the datafiles restored or flipped  
  98. sql clone "alter database datafile  2 online";  
  99. #online the datafiles restored or flipped  
  100. sql clone "alter database datafile  3 online";  
  101. #online the datafiles restored or flipped  
  102. sql clone "alter database datafile  7 online";  
  103. # make the controlfile point at the restored datafiles, then recover them  
  104. recover clone database tablespace  "TTB1""SYSTEM""UNDOTBS1""SYSAUX" delete archivelog;  
  105. alter clone database open resetlogs;  
  106. # PLUG HERE the creation of a temporary tablespace if export fails due to lack  
  107. of temporary space.  
  108. For example in Unix these two lines would do that:  
  109. #sql clone "create tablespace aux_tspitr_tmp  
  110. #           datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";  
  111. }  
  112. 正在执行内存脚本  
  113.   
  114. 正在执行命令: SET until clause  
  115.   
  116. 正在执行命令: SET NEWNAME  
  117.   
  118. 正在执行命令: SET NEWNAME  
  119.   
  120. 正在执行命令: SET NEWNAME  
  121.   
  122. 正在执行命令: SET NEWNAME  
  123.   
  124. 正在执行命令: SET NEWNAME  
  125.   
  126. 临时文件 1 在控制文件中已重命名为 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_temp_%u_.tmp  
  127.   
  128. 启动 restore 于 07-10月-11  
  129. 分配的通道: ORA_AUX_DISK_1  
  130. 通道 ORA_AUX_DISK_1: sid=39 devtype=DISK  
  131.   
  132. 通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集  
  133. 通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件  
  134. 正将数据文件00001还原到/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_system_%u_.dbf  
  135. 正将数据文件00002还原到/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_undotbs1_%u_.dbf  
  136. 正将数据文件00003还原到/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_sysaux_%u_.dbf  
  137. 正将数据文件00007还原到/u01/td/ttb1.269.763916007  
  138. 通道 ORA_AUX_DISK_1: 正在读取备份片段 +FLSHDG/orcl/backupset/2011_10_07/nnndf0_tag20111007t154253_0.262.763918973  
  139. 通道 ORA_AUX_DISK_1: 已还原备份片段 1  
  140. 段句柄 = +FLSHDG/orcl/backupset/2011_10_07/nnndf0_tag20111007t154253_0.262.763918973 标记 = TAG20111007T154253  
  141. 通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:36  
  142. 完成 restore 于 07-10月-11  
  143.   
  144. 数据文件 1 已转换成数据文件副本  
  145. 输入数据文件副本 recid=5 stamp=763919178 文件名=/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_system_78xck70k_.dbf  
  146. 数据文件 2 已转换成数据文件副本  
  147. 输入数据文件副本 recid=6 stamp=763919178 文件名=/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_undotbs1_78xck72r_.dbf  
  148. 数据文件 3 已转换成数据文件副本  
  149. 输入数据文件副本 recid=7 stamp=763919178 文件名=/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_sysaux_78xck73h_.dbf  
  150. 数据文件 7 已转换成数据文件副本  
  151. 输入数据文件副本 recid=8 stamp=763919178 文件名=/u01/td/ttb1.269.763916007  
  152.   
  153. sql 语句: alter database datafile  1 online  
  154.   
  155. sql 语句: alter database datafile  2 online  
  156.   
  157. sql 语句: alter database datafile  3 online  
  158.   
  159. sql 语句: alter database datafile  7 online  
  160.   
  161. 启动 recover 于 07-10月-11  
  162. 使用通道 ORA_AUX_DISK_1  
  163.   
  164. 正在开始介质的恢复  
  165.   
  166. 存档日志线程 1 序列 35 已作为文件 +FLSHDG/orcl/archivelog/2011_10_07/thread_1_seq_35.267.763919033 存在于磁盘上  
  167. 存档日志文件名 =+FLSHDG/orcl/archivelog/2011_10_07/thread_1_seq_35.267.763919033 线程 =1 序列 =35  
  168. 介质恢复完成, 用时: 00:00:02  
  169. 完成 recover 于 07-10月-11  
  170.   
  171. 数据库已打开  
  172.   
  173. 内存脚本的内容:  
  174. {  
  175. #mark read only the tablespace that will be exported  
  176. sql clone "alter tablespace TTB1 read only";  
  177. create directory for datapump export  
  178. sql clone "create or replace directory STREAMS_DIROBJ_DPDIR as ''  
  179. /u01/td''";  
  180. # export the tablespaces in the recovery set  
  181. host 'expdp userid="/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/product/10.2.0/db_1/bin/oracle)(ARGV0=oraclehiEo)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^'ORACLE_SID=hiEo^'))(CONNECT_DATA=(SID=hiEo))) as sysdba" transport_tablespaces=  
  182.  TTB1 dumpfile=  
  183. dmpfile.dmp directory=  
  184. STREAMS_DIROBJ_DPDIR logfile=  
  185. explog.log';  
  186. }  
  187. 正在执行内存脚本  
  188.   
  189. sql 语句: alter tablespace TTB1 read only  
  190.   
  191. sql 语句: create or replace directory STREAMS_DIROBJ_DPDIR as ''/u01/td''  
  192.   
  193.   
  194. Export: Release 10.2.0.4.0 - Production on 星期五, 07 10月, 2011 15:46:44  
  195.   
  196. Copyright (c) 2003, 2007, Oracle.  All rights reserved.  
  197.   
  198. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production  
  199. With the Partitioning, OLAP, Data Mining and Real Application Testing options  
  200. 启动 "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  userid="/********@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/product/10.2.0/db_1/bin/oracle)(ARGV0=oraclehiEo)(ARGS=(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))))(ENVS=ORACLE_SID=hiEo))(CONNECT_DATA=(SID=hiEo))) AS SYSDBA" transport_tablespaces= TTB1 dumpfile=dmpfile.dmp directory=STREAMS_DIROBJ_DPDIR logfile=explog.log   
  201. 处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK  
  202. 处理对象类型 TRANSPORTABLE_EXPORT/TABLE  
  203. 处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK  
  204. 已成功加载/卸载了主表 "SYS"."SYS_EXPORT_TRANSPORTABLE_01"   
  205. ******************************************************************************  
  206. SYS.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:  
  207.   /u01/td/dmpfile.dmp  
  208. 作业 "SYS"."SYS_EXPORT_TRANSPORTABLE_01" 已于 15:47:14 成功完成  
  209.   
  210. 主机命令完成  
  211. /*  
  212.    The following command may be used to import the tablespaces.  
  213.    Substitute values for <logon> and <directory>.  
  214.    impdp <logon> directory=<directory> dumpfile= 'dmpfile.dmp' transport_datafiles= /u01/td/ttb1.269.763916007   
  215. */  
  216. --------------------------------------------------------------   
  217. -- Start of sample PL/SQL script for importing the tablespaces   
  218. --------------------------------------------------------------   
  219. -- creating directory objects   
  220. CREATE DIRECTORY STREAMS$DIROBJ$1 AS  '/u01/td/';  
  221. CREATE DIRECTORY STREAMS$DIROBJ$DPDIR AS  '/u01/td';  
  222. /* PL/SQL Script to import the exported tablespaces */  
  223. DECLARE  
  224.   -- the datafiles   
  225.   tbs_files     dbms_streams_tablespace_adm.file_set;  
  226.   cvt_files     dbms_streams_tablespace_adm.file_set;  
  227.   -- the dumpfile to import   
  228.   dump_file     dbms_streams_tablespace_adm.file;  
  229.   dp_job_name   VARCHAR2(30) := NULL;  
  230.   -- names of tablespaces that were imported   
  231.   ts_names       dbms_streams_tablespace_adm.tablespace_set;  
  232. BEGIN  
  233.   -- dump file name and location   
  234.   dump_file.file_name :=  'dmpfile.dmp';  
  235.   dump_file.directory_object := 'STREAMS$DIROBJ$DPDIR';  
  236.   -- forming list of datafiles for import   
  237.   tbs_files( 1).file_name :=  'ttb1.269.763916007';  
  238.   tbs_files( 1).directory_object :=  'STREAMS$DIROBJ$1';  
  239.   -- import tablespaces   
  240.   dbms_streams_tablespace_adm.attach_tablespaces(  
  241.     datapump_job_name      => dp_job_name,  
  242.     dump_file              => dump_file,  
  243.     tablespace_files       => tbs_files,  
  244.     converted_files        => cvt_files,  
  245.     tablespace_names       => ts_names);  
  246.   -- output names of imported tablespaces   
  247.   IF ts_names IS NOT NULL AND ts_names.first IS NOT NULL THEN  
  248.     FOR i IN ts_names.first .. ts_names.last LOOP  
  249.       dbms_output.put_line('imported tablespace '|| ts_names(i));  
  250.     END LOOP;  
  251.   END IF;  
  252. END;  
  253. /  
  254. -- dropping directory objects   
  255. DROP DIRECTORY STREAMS$DIROBJ$1;  
  256. DROP DIRECTORY STREAMS$DIROBJ$DPDIR;  
  257. --------------------------------------------------------------   
  258. -- End of sample PL/SQL script   
  259. --------------------------------------------------------------   
  260.   
  261. 删除自动实例  
  262. 关闭自动实例   
  263. Oracle 实例已关闭  
  264. 自动实例已删除  
  265. 已删除辅助实例文件 /u01/ad/cntrl_tspitr_ORCL_hiEo.f  
  266. 已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_system_78xck70k_.dbf  
  267. 已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_undotbs1_78xck72r_.dbf  
  268. 已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_sysaux_78xck73h_.dbf  
  269. 已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_temp_78xclrd5_.tmp  
  270. 已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/onlinelog/o1_mf_1_78xclmkj_.log  
  271. 已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/onlinelog/o1_mf_2_78xclnjl_.log  
  272. 已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/onlinelog/o1_mf_3_78xclnxc_.log  
RMAN> transport tablespace ttb1 tablespace destination '/u01/td' auxiliary destination '/u01/ad';

RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点

表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1

使用 SID='hiEo' 创建自动实例

供自动实例使用的初始化参数:
db_name=ORCL
compatible=10.2.0.3.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_ORCL_hiEo
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=/u01/ad
control_files=/u01/ad/cntrl_tspitr_ORCL_hiEo.f


启动自动实例 ORCL

Oracle 实例已启动

系统全局区域总计     201326592 字节

Fixed Size                     1266584 字节
Variable Size                146803816 字节
Database Buffers              50331648 字节
Redo Buffers                   2924544 字节
自动实例已创建

内存脚本的内容:
{
# set the until clause
set until  scn 973897;
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log for tspitr to a resent until time
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在执行内存脚本

正在执行命令: SET until clause

启动 restore 于 07-10月-11
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK

通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在还原控制文件
通道 ORA_AUX_DISK_1: 正在读取备份片段 +FLSHDG/orcl/backupset/2011_10_07/ncsnf0_tag20111007t154253_0.266.763919011
通道 ORA_AUX_DISK_1: 已还原备份片段 1
段句柄 = +FLSHDG/orcl/backupset/2011_10_07/ncsnf0_tag20111007t154253_0.266.763919011 标记 = TAG20111007T154253
通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:18
输出文件名=/u01/ad/cntrl_tspitr_ORCL_hiEo.f
完成 restore 于 07-10月-11

sql 语句: alter database mount clone database

sql 语句: alter system archive log current

sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
释放的通道: ORA_DISK_1
释放的通道: ORA_AUX_DISK_1

内存脚本的内容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until  scn 973897;
# set an omf destination filename for restore
set newname for clone datafile  1 to new;
# set an omf destination filename for restore
set newname for clone datafile  2 to new;
# set an omf destination filename for restore
set newname for clone datafile  3 to new;
# set an omf destination tempfile
set newname for clone tempfile  1 to new;
# set a destination filename for restore
set newname for datafile  7 to 
 "/u01/td/ttb1.269.763916007";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxilliary tablespaces
restore clone datafile  1, 2, 3, 7;
switch clone datafile all;
#online the datafiles restored or flipped
sql clone "alter database datafile  1 online";
#online the datafiles restored or flipped
sql clone "alter database datafile  2 online";
#online the datafiles restored or flipped
sql clone "alter database datafile  3 online";
#online the datafiles restored or flipped
sql clone "alter database datafile  7 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace  "TTB1", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;
alter clone database open resetlogs;
# PLUG HERE the creation of a temporary tablespace if export fails due to lack
# of temporary space.
# For example in Unix these two lines would do that:
#sql clone "create tablespace aux_tspitr_tmp
#           datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";
}
正在执行内存脚本

正在执行命令: SET until clause

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

临时文件 1 在控制文件中已重命名为 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_temp_%u_.tmp

启动 restore 于 07-10月-11
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK

通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件
正将数据文件00001还原到/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_system_%u_.dbf
正将数据文件00002还原到/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_undotbs1_%u_.dbf
正将数据文件00003还原到/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_sysaux_%u_.dbf
正将数据文件00007还原到/u01/td/ttb1.269.763916007
通道 ORA_AUX_DISK_1: 正在读取备份片段 +FLSHDG/orcl/backupset/2011_10_07/nnndf0_tag20111007t154253_0.262.763918973
通道 ORA_AUX_DISK_1: 已还原备份片段 1
段句柄 = +FLSHDG/orcl/backupset/2011_10_07/nnndf0_tag20111007t154253_0.262.763918973 标记 = TAG20111007T154253
通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:36
完成 restore 于 07-10月-11

数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=763919178 文件名=/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_system_78xck70k_.dbf
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=6 stamp=763919178 文件名=/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_undotbs1_78xck72r_.dbf
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=7 stamp=763919178 文件名=/u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_sysaux_78xck73h_.dbf
数据文件 7 已转换成数据文件副本
输入数据文件副本 recid=8 stamp=763919178 文件名=/u01/td/ttb1.269.763916007

sql 语句: alter database datafile  1 online

sql 语句: alter database datafile  2 online

sql 语句: alter database datafile  3 online

sql 语句: alter database datafile  7 online

启动 recover 于 07-10月-11
使用通道 ORA_AUX_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 35 已作为文件 +FLSHDG/orcl/archivelog/2011_10_07/thread_1_seq_35.267.763919033 存在于磁盘上
存档日志文件名 =+FLSHDG/orcl/archivelog/2011_10_07/thread_1_seq_35.267.763919033 线程 =1 序列 =35
介质恢复完成, 用时: 00:00:02
完成 recover 于 07-10月-11

数据库已打开

内存脚本的内容:
{
#mark read only the tablespace that will be exported
sql clone "alter tablespace TTB1 read only";
# create directory for datapump export
sql clone "create or replace directory STREAMS_DIROBJ_DPDIR as ''
/u01/td''";
# export the tablespaces in the recovery set
host 'expdp userid="/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/product/10.2.0/db_1/bin/oracle)(ARGV0=oraclehiEo)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^'ORACLE_SID=hiEo^'))(CONNECT_DATA=(SID=hiEo))) as sysdba" transport_tablespaces=
 TTB1 dumpfile=
dmpfile.dmp directory=
STREAMS_DIROBJ_DPDIR logfile=
explog.log';
}
正在执行内存脚本

sql 语句: alter tablespace TTB1 read only

sql 语句: create or replace directory STREAMS_DIROBJ_DPDIR as ''/u01/td''


Export: Release 10.2.0.4.0 - Production on 星期五, 07 10月, 2011 15:46:44

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  userid="/********@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/product/10.2.0/db_1/bin/oracle)(ARGV0=oraclehiEo)(ARGS=(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))))(ENVS=ORACLE_SID=hiEo))(CONNECT_DATA=(SID=hiEo))) AS SYSDBA" transport_tablespaces= TTB1 dumpfile=dmpfile.dmp directory=STREAMS_DIROBJ_DPDIR logfile=explog.log 
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
已成功加载/卸载了主表 "SYS"."SYS_EXPORT_TRANSPORTABLE_01" 
******************************************************************************
SYS.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:
  /u01/td/dmpfile.dmp
作业 "SYS"."SYS_EXPORT_TRANSPORTABLE_01" 已于 15:47:14 成功完成

主机命令完成
/*
   The following command may be used to import the tablespaces.
   Substitute values for <logon> and <directory>.
   impdp <logon> directory=<directory> dumpfile= 'dmpfile.dmp' transport_datafiles= /u01/td/ttb1.269.763916007 
*/
--------------------------------------------------------------
-- Start of sample PL/SQL script for importing the tablespaces
--------------------------------------------------------------
-- creating directory objects
CREATE DIRECTORY STREAMS$DIROBJ$1 AS  '/u01/td/';
CREATE DIRECTORY STREAMS$DIROBJ$DPDIR AS  '/u01/td';
/* PL/SQL Script to import the exported tablespaces */
DECLARE
  -- the datafiles
  tbs_files     dbms_streams_tablespace_adm.file_set;
  cvt_files     dbms_streams_tablespace_adm.file_set;
  -- the dumpfile to import
  dump_file     dbms_streams_tablespace_adm.file;
  dp_job_name   VARCHAR2(30) := NULL;
  -- names of tablespaces that were imported
  ts_names       dbms_streams_tablespace_adm.tablespace_set;
BEGIN
  -- dump file name and location
  dump_file.file_name :=  'dmpfile.dmp';
  dump_file.directory_object := 'STREAMS$DIROBJ$DPDIR';
  -- forming list of datafiles for import
  tbs_files( 1).file_name :=  'ttb1.269.763916007';
  tbs_files( 1).directory_object :=  'STREAMS$DIROBJ$1';
  -- import tablespaces
  dbms_streams_tablespace_adm.attach_tablespaces(
    datapump_job_name      => dp_job_name,
    dump_file              => dump_file,
    tablespace_files       => tbs_files,
    converted_files        => cvt_files,
    tablespace_names       => ts_names);
  -- output names of imported tablespaces
  IF ts_names IS NOT NULL AND ts_names.first IS NOT NULL THEN
    FOR i IN ts_names.first .. ts_names.last LOOP
      dbms_output.put_line('imported tablespace '|| ts_names(i));
    END LOOP;
  END IF;
END;
/
-- dropping directory objects
DROP DIRECTORY STREAMS$DIROBJ$1;
DROP DIRECTORY STREAMS$DIROBJ$DPDIR;
--------------------------------------------------------------
-- End of sample PL/SQL script
--------------------------------------------------------------

删除自动实例
关闭自动实例 
Oracle 实例已关闭
自动实例已删除
已删除辅助实例文件 /u01/ad/cntrl_tspitr_ORCL_hiEo.f
已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_system_78xck70k_.dbf
已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_undotbs1_78xck72r_.dbf
已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_sysaux_78xck73h_.dbf
已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/datafile/o1_mf_temp_78xclrd5_.tmp
已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/onlinelog/o1_mf_1_78xclmkj_.log
已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/onlinelog/o1_mf_2_78xclnjl_.log
已删除辅助实例文件 /u01/ad/TSPITR_ORCL_HIEO/onlinelog/o1_mf_3_78xclnxc_.log

说明:可以看见“/u01/ad/”目录下面的东西ramn最后自动删除了的,这个目录只是一个临时目录的作用。查看一下“/u01/td/”目录

  1. [oracle@linux td]$ pwd  
  2. /u01/td  
  3. [oracle@linux td]$ ll  
  4. 总计 10352  
  5. -rw-r----- 1 oracle oinstall    77824 10-07 15:47 dmpfile.dmp   
  6. -rw-r--r-- 1 oracle oinstall     1110 10-07 15:47 explog.log   
  7. -rw-r--r-- 1 oracle oinstall     2042 10-07 15:47 impscrpt.sql   
  8. -rw-r----- 1 oracle oinstall 10493952 10-07 15:46 ttb1.269.763916007  
[oracle@linux td]$ pwd
/u01/td
[oracle@linux td]$ ll
总计 10352
-rw-r----- 1 oracle oinstall    77824 10-07 15:47 dmpfile.dmp
-rw-r--r-- 1 oracle oinstall     1110 10-07 15:47 explog.log
-rw-r--r-- 1 oracle oinstall     2042 10-07 15:47 impscrpt.sql
-rw-r----- 1 oracle oinstall 10493952 10-07 15:46 ttb1.269.763916007

  impscrpt.sql --元数据信息,目标数据库必须存在相应的对象属主,数据文件路径不一致还要修改脚本。
  dmpfile.dmp --也是元数据信息,如果使用dump文件导入元数据信息则就没有上面的限制了。
  ttb1.269.763916007 --数据文件,可以发现生成的数据文件和原来的数据文件一模一样。
  explog.log --导出操作的日志文件。

5.转换字节顺序,如果两个平台的字节顺序不一样,中间需要一个转换过程,可以使用rman。(可选操作,这里并没有执行。)

  1. RMAN> convert tablespace books to platform 'Microsoft Windows IA (32-bit)' format '/tmp/%N_%F';    
  2. RMAN> convert datafile '/tmp/BOOKS_5' db_file_name_convert '/tmp/BOOKS_5','/tmp/books01.dbf';    
RMAN> convert tablespace books to platform 'Microsoft Windows IA (32-bit)' format '/tmp/%N_%F';  
RMAN> convert datafile '/tmp/BOOKS_5' db_file_name_convert '/tmp/BOOKS_5','/tmp/books01.dbf';  

说明:这就是第一步检查的目的,虽然这里并不需要转换。这里给出的只是转换的方法。

6.复制/u01/td目录和数据文件到目标数据库/u01/td(目标数据库上面执行的操作)

  1. [root@linux ~]# cd /u01/  
  2. [root@linux u01]# chown -R oracle:oinstall td/  
  3. [root@linux u01]# cd td/  
  4. [root@linux td]# ll  
  5. 总计 10352  
  6. -rw-r--r-- 1 oracle oinstall    77824 10-06 15:50 dmpfile.dmp   
  7. -rw-r--r-- 1 oracle oinstall     1110 10-06 15:50 explog.log   
  8. -rw-r--r-- 1 oracle oinstall     2042 10-06 15:50 impscrpt.sql   
  9. -rw-r--r-- 1 oracle oinstall 10493952 10-06 15:50 ttb1.269.763916007  
[root@linux ~]# cd /u01/
[root@linux u01]# chown -R oracle:oinstall td/
[root@linux u01]# cd td/
[root@linux td]# ll
总计 10352
-rw-r--r-- 1 oracle oinstall    77824 10-06 15:50 dmpfile.dmp
-rw-r--r-- 1 oracle oinstall     1110 10-06 15:50 explog.log
-rw-r--r-- 1 oracle oinstall     2042 10-06 15:50 impscrpt.sql
-rw-r--r-- 1 oracle oinstall 10493952 10-06 15:50 ttb1.269.763916007
 
 
7.检查源表空间和目标数据库的块大小是否一样

源数据库

  1. SQL> select block_size from dba_tablespaces where tablespace_name = 'TTB1';    
  2.     
  3. BLOCK_SIZE    
  4. ----------      
  5.       8192    
  6.       
  7. SQL> show parameter db_block_size    
  8.     
  9. NAME                                 TYPE        VALUE    
  10. ------------------------------------ ----------- ------------------------------      
  11. db_block_size                        integer     8192    
SQL> select block_size from dba_tablespaces where tablespace_name = 'TTB1';  
  
BLOCK_SIZE  
----------   
      8192  
    
SQL> show parameter db_block_size  
  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------   
db_block_size                        integer     8192  
目标数据库
  1. SQL> show parameter db_block_size    
  2.     
  3. NAME                                 TYPE        VALUE    
  4. ------------------------------------ ----------- ------------------------------      
  5. db_block_size                        integer     8192    
SQL> show parameter db_block_size  
  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------   
db_block_size                        integer     8192  

8.导入元数据(目标数据库上面执行的操作)
 a.使用asm存储体系,使用dump导入
   convert datafile '/opt/tts/td/tts.288.755520393' format '+datagroup';
   如果是使用的asm则需要把os上面的文件放到asm里面,上面这条命令可以在os和asm之间转换数据文件。
   impdp system/oracle@orcl directory=dp dumpfile=dmpfile.dmp nologfile=y transport_datafiles='+DATAGROUP/ORCL/DATAFILE/TTS.290.755528197';
 b.使用文件系统,使用dump导入。
   impdp system/oracle@orcl directory=dp dumpfile=dmpfile.dmp nologfile=y transport_datafiles='/opt/oradata/tts.288.755520393';
 c.@/opt/tts/td/impsctpt.sql
a、b、c选择一个执行就可以拉,这里我选择c
首先创建用户
  1. SQL> show user  
  2. USER 为 "SYS"  
  3. SQL> create user user1 identified by user1;  
  4.   
  5. 用户已创建。  
  6.   
  7. SQL> grant connect,resource to user1;  
  8.   
  9. 授权成功。  
SQL> show user
USER 为 "SYS"
SQL> create user user1 identified by user1;

用户已创建。

SQL> grant connect,resource to user1;

授权成功。
运行脚本
  1. SQL> @/u01/td/impscrpt.sql  
  2.   
  3. 目录已创建。  
  4.   
  5.   
  6. 目录已创建。  
  7.   
  8.   
  9. PL/SQL 过程已成功完成。  
  10.   
  11.   
  12. 目录已删除。  
  13.   
  14.   
  15. 目录已删除。  
SQL> @/u01/td/impscrpt.sql

目录已创建。


目录已创建。


PL/SQL 过程已成功完成。


目录已删除。


目录已删除。
  1. SQL> show user  
  2. USER 为 "SYS"  
  3. SQL> alter user user1 default tablespace ttb1;  
  4.   
  5. 用户已更改。  
SQL> show user
USER 为 "SYS"
SQL> alter user user1 default tablespace ttb1;

用户已更改。
 
9.刚导入的表空间默认是read-only 状态,将表空间更改为read write(目标数据库执行)
  1. SQL> show user  
  2. USER 为 "SYS"  
  3. SQL> select tablespace_name,status from dba_tablespaces where tablespace_name = 'TTB1';  
  4.   
  5. TABLESPACE_NAME                STATUS  
  6. ------------------------------ ---------   
  7. TTB1                           READ ONLY  
  8.   
  9. SQL> alter tablespace ttb1 read write;  
  10.   
  11. 表空间已更改。  
  12.   
  13. SQL> select tablespace_name,status from dba_tablespaces where tablespace_name = 'TTB1';  
  14.   
  15. TABLESPACE_NAME                STATUS  
  16. ------------------------------ ---------   
  17. TTB1                           ONLINE  
SQL> show user
USER 为 "SYS"
SQL> select tablespace_name,status from dba_tablespaces where tablespace_name = 'TTB1';

TABLESPACE_NAME                STATUS
------------------------------ ---------
TTB1                           READ ONLY

SQL> alter tablespace ttb1 read write;

表空间已更改。

SQL> select tablespace_name,status from dba_tablespaces where tablespace_name = 'TTB1';

TABLESPACE_NAME                STATUS
------------------------------ ---------
TTB1                           ONLINE
  1. SQL> conn user1/user1  
  2. 已连接。  
  3. SQL> select * from tab;  
  4.   
  5. TNAME                          TABTYPE  CLUSTERID  
  6. ------------------------------ ------- ----------   
  7. TEST                           TABLE  
  8.   
  9. SQL> select count(*) from test;  
  10.   
  11.   COUNT(*)  
  12. ----------   
  13.         99  
SQL> conn user1/user1
已连接。
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TEST                           TABLE

SQL> select count(*) from test;

  COUNT(*)
----------
        99
 
10.规范数据文件名字(目标数据库执行)
可以看见导入的数据文件的存放路径和名字不太规范
  1. USER 为 "SYS"  
  2. SQL> select file_name from dba_data_files;  
  3.   
  4. FILE_NAME  
  5. -------------------------------------------------------------------   
  6. /u01/app/oracle/oradata/orcl/system01.dbf  
  7. /u01/app/oracle/oradata/orcl/undotbs01.dbf  
  8. /u01/app/oracle/oradata/orcl/sysaux01.dbf  
  9. /u01/app/oracle/oradata/orcl/users01.dbf  
  10. /u01/app/oracle/oradata/orcl/test01.dbf  
  11. /u01/app/oracle/oradata/orcl/perfstat01.dba  
  12. /u01/app/oracle/oradata/orcl/undo01.dbf  
  13. /u01/app/oracle/oradata/orcl/tbspart01.dbf  
  14. /u01/app/oracle/oradata/orcl/tbspart02.dbf  
  15. /u01/app/oracle/oradata/orcl/tbspart03.dbf  
  16. /u01/app/oracle/oradata/orcl/tbspart04.dbf  
  17.   
  18. FILE_NAME  
  19. --------------------------------------------------------------------   
  20. /u01/app/oracle/oradata/orcl/tb1.dbf  
  21. /u01/app/oracle/oradata/orcl/tb2.dbf  
  22. /u01/td/ttb1.269.763916007  
  23.   
  24. 已选择14行。  
USER 为 "SYS"
SQL> select file_name from dba_data_files;

FILE_NAME
-------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/test01.dbf
/u01/app/oracle/oradata/orcl/perfstat01.dba
/u01/app/oracle/oradata/orcl/undo01.dbf
/u01/app/oracle/oradata/orcl/tbspart01.dbf
/u01/app/oracle/oradata/orcl/tbspart02.dbf
/u01/app/oracle/oradata/orcl/tbspart03.dbf
/u01/app/oracle/oradata/orcl/tbspart04.dbf

FILE_NAME
--------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/tb1.dbf
/u01/app/oracle/oradata/orcl/tb2.dbf
/u01/td/ttb1.269.763916007

已选择14行。
使用rman移动数据库文件
  1. RMAN> backup as copy datafile '/u01/td/ttb1.269.763916007' format '/u01/app/oracle/oradata/orcl/ttb1.dbf';  
  2.   
  3. 启动 backup 于 06-10月-11  
  4. 使用目标数据库控制文件替代恢复目录  
  5. 分配的通道: ORA_DISK_1  
  6. 通道 ORA_DISK_1: sid=143 devtype=DISK  
  7. 通道 ORA_DISK_1: 启动数据文件副本  
  8. 输入数据文件 fno=00014 name=/u01/td/ttb1.269.763916007  
  9. 输出文件名 = /u01/app/oracle/oradata/orcl/ttb1.dbf 标记 = TAG20111006T161958 recid = 1 时间戳 = 763834799  
  10. 通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01  
  11. 完成 backup 于 06-10月-11  
  12.   
  13. RMAN> sql "alter tablespace ttb1 offline";  
  14.   
  15. sql 语句: alter tablespace ttb1 offline  
  16.   
  17. RMAN> switch datafile '/u01/td/ttb1.269.763916007' to copy;  
  18.   
  19. RMAN> sql "alter tablespace ttb1 online";  
  20.   
  21. sql 语句: alter tablespace ttb1 online  
  22. MAN-00571: ===========================================================  
  23. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============  
  24. RMAN-00571: ===========================================================  
  25. RMAN-03009: sql 命令 (default 通道上, 在 10/06/2011 16:28:00 上) 失败  
  26. RMAN-11003: 在分析/执行 SQL 语句期间失败: alter tablespace ttb1 online  
  27. ORA-01113: 文件 14 需要介质恢复  
  28. ORA-01110: 数据文件 14: '/u01/app/oracle/oradata/orcl/ttb1.dbf'  
  29.   
  30. RMAN> recover datafile 14;  
  31.   
  32. 启动 recover 于 06-10月-11  
  33. 使用通道 ORA_DISK_1  
  34.   
  35. 正在开始介质的恢复  
  36. 介质恢复完成, 用时: 00:00:00  
  37.   
  38. 完成 recover 于 06-10月-11  
  39.   
  40. RMAN> sql "alter tablespace ttb1 online";  
  41.   
  42. sql 语句: alter tablespace ttb1 online  
RMAN> backup as copy datafile '/u01/td/ttb1.269.763916007' format '/u01/app/oracle/oradata/orcl/ttb1.dbf';

启动 backup 于 06-10月-11
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=143 devtype=DISK
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00014 name=/u01/td/ttb1.269.763916007
输出文件名 = /u01/app/oracle/oradata/orcl/ttb1.dbf 标记 = TAG20111006T161958 recid = 1 时间戳 = 763834799
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 06-10月-11

RMAN> sql "alter tablespace ttb1 offline";

sql 语句: alter tablespace ttb1 offline

RMAN> switch datafile '/u01/td/ttb1.269.763916007' to copy;

RMAN> sql "alter tablespace ttb1 online";

sql 语句: alter tablespace ttb1 online
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: sql 命令 (default 通道上, 在 10/06/2011 16:28:00 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败: alter tablespace ttb1 online
ORA-01113: 文件 14 需要介质恢复
ORA-01110: 数据文件 14: '/u01/app/oracle/oradata/orcl/ttb1.dbf'

RMAN> recover datafile 14;

启动 recover 于 06-10月-11
使用通道 ORA_DISK_1

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

完成 recover 于 06-10月-11

RMAN> sql "alter tablespace ttb1 online";

sql 语句: alter tablespace ttb1 online
再次查看
  1. SQL> select file_name,ONLINE_STATUS from dba_data_files;  
  2.   
  3. FILE_NAME                                                                                            ONLINE_  
  4. ---------------------------------------------------------------------------------------------------- -------   
  5. /u01/app/oracle/oradata/orcl/system01.dbf                                                            SYSTEM  
  6. /u01/app/oracle/oradata/orcl/undotbs01.dbf                                                           ONLINE  
  7. /u01/app/oracle/oradata/orcl/sysaux01.dbf                                                            ONLINE  
  8. /u01/app/oracle/oradata/orcl/users01.dbf                                                             ONLINE  
  9. /u01/app/oracle/oradata/orcl/test01.dbf                                                              ONLINE  
  10. /u01/app/oracle/oradata/orcl/perfstat01.dba                                                          ONLINE  
  11. /u01/app/oracle/oradata/orcl/undo01.dbf                                                              ONLINE  
  12. /u01/app/oracle/oradata/orcl/tbspart01.dbf                                                           ONLINE  
  13. /u01/app/oracle/oradata/orcl/tbspart02.dbf                                                           ONLINE  
  14. /u01/app/oracle/oradata/orcl/tbspart03.dbf                                                           ONLINE  
  15. /u01/app/oracle/oradata/orcl/tbspart04.dbf                                                           ONLINE  
  16.   
  17. FILE_NAME                                                                                            ONLINE_  
  18. ---------------------------------------------------------------------------------------------------- -------   
  19. /u01/app/oracle/oradata/orcl/tb1.dbf                                                                 ONLINE  
  20. /u01/app/oracle/oradata/orcl/tb2.dbf                                                                 ONLINE  
  21. /u01/app/oracle/oradata/orcl/ttb1.dbf                                                                ONLINE  
  22.   
  23. 已选择14行。  
SQL> select file_name,ONLINE_STATUS from dba_data_files;

FILE_NAME                                                                                            ONLINE_
---------------------------------------------------------------------------------------------------- -------
/u01/app/oracle/oradata/orcl/system01.dbf                                                            SYSTEM
/u01/app/oracle/oradata/orcl/undotbs01.dbf                                                           ONLINE
/u01/app/oracle/oradata/orcl/sysaux01.dbf                                                            ONLINE
/u01/app/oracle/oradata/orcl/users01.dbf                                                             ONLINE
/u01/app/oracle/oradata/orcl/test01.dbf                                                              ONLINE
/u01/app/oracle/oradata/orcl/perfstat01.dba                                                          ONLINE
/u01/app/oracle/oradata/orcl/undo01.dbf                                                              ONLINE
/u01/app/oracle/oradata/orcl/tbspart01.dbf                                                           ONLINE
/u01/app/oracle/oradata/orcl/tbspart02.dbf                                                           ONLINE
/u01/app/oracle/oradata/orcl/tbspart03.dbf                                                           ONLINE
/u01/app/oracle/oradata/orcl/tbspart04.dbf                                                           ONLINE

FILE_NAME                                                                                            ONLINE_
---------------------------------------------------------------------------------------------------- -------
/u01/app/oracle/oradata/orcl/tb1.dbf                                                                 ONLINE
/u01/app/oracle/oradata/orcl/tb2.dbf                                                                 ONLINE
/u01/app/oracle/oradata/orcl/ttb1.dbf                                                                ONLINE

已选择14行。
原文地址:https://www.cnblogs.com/weixun/p/3228287.html