【数据迁移】使用传输表空间迁移数据

恢复管理器: Release 11.1.0.6.0 - Production on 星期六 8月 21 23:23:22 2010

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

连接到目标数据库: ORCL (DBID=1253972717)

RMAN>transport tablespace users
2>tablespace destination 'f:\lib\tbsd'
3>auxiliary  destination 'f:\lib\auxd'
4>datapump directory dump_dir
5>dump file 'user.dmp'
6>import script. 'user.sql'
7>export log 'user.log';
=====================================================
使用目标数据库控制文件替代恢复目录
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
使用 SID='fuak' 创建自动实例
=======================================================
供自动实例使用的初始化参数:
db_name=ORCL
compatible=11.1.0.0.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_ORCL_fuak
large_pool_size=1M
shared_pool_size=110M
processes=50
#No auxiliary parameter file used
db_create_file_dest=f:\lib\ad
control_files=f:\lib\ad/cntrl_tspitr_ORCL_fuak.f

启动自动实例 ORCL
Oracle 实例已启动
系统全局区域总计     205070336 字节
Fixed Size                     1332104 字节
Variable Size                146803832 字节
Database Buffers              50331648 字节
Redo Buffers                   6602752 字节
自动实例已创建
====================================================
内存脚本的内容:
{
# set the until clause
set until  scn 1773870;
# 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 于 21-8月 -10
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=44 设备类型=DISK
分配的通道: ORA_AUX_DISK_2
通道 ORA_AUX_DISK_2: SID=43 设备类型=DISK
分配的通道: ORA_AUX_DISK_3
通道 ORA_AUX_DISK_3: SID=41 设备类型=DISK

通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_1: 正在还原控制文件
通道 ORA_AUX_DISK_1: 正在读取备份片段 F:\ORACL\PRODUCT\11.1.0\DB_1\DATABASE\CTRL_C-1253972717-20100821-02.CTL
通道 ORA_AUX_DISK_1: 段句柄 = F:\ORACL\PRODUCT\11.1.0\DB_1\DATABASE\CTRL_C-1253972717-20100821-02.CTL 标记 = TAG20100821T221141
通道 ORA_AUX_DISK_1: 已还原备份片段 1
通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=F:\LIB\AD\CNTRL_TSPITR_ORCL_FUAK.F
完成 restore 于 21-8月 -10
====================================================
sql 语句: alter database mount clone database
sql 语句: alter system archive log current
sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;

内存脚本的内容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until  scn 1773870;
# 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  3 to new;
# set an omf destination filename for restore
set newname for clone datafile  2 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  4 to
 "f:\lib\td\USERS01.DBF";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxiliary tablespaces
restore clone datafile  1, 3, 2, 4;
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  3 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  4 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace  "USERS", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;
alter clone database open resetlogs;
}

正在执行内存脚本
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_TEMP_%U_.TMP
启动 restore 于 21-8月 -10
使用通道 ORA_AUX_DISK_1
使用通道 ORA_AUX_DISK_2
使用通道 ORA_AUX_DISK_3

通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_AUX_DISK_1: 将数据文件 00003 还原到 F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_UNDOTBS1_%U_.DBF
通道 ORA_AUX_DISK_1: 正在读取备份片段 F:\BACKUP\ORCL_14LLU7MS_36_1_14LLU7MS.BAK
通道 ORA_AUX_DISK_2: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_2: 正在指定从备份集还原的数据文件
通道 ORA_AUX_DISK_2: 将数据文件 00004 还原到 F:\LIB\TD\USERS01.DBF
通道 ORA_AUX_DISK_2: 正在读取备份片段 F:\BACKUP\ORCL_16LLU7OV_38_1_16LLU7OV.BAK
通道 ORA_AUX_DISK_3: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_3: 正在指定从备份集还原的数据文件
通道 ORA_AUX_DISK_3: 将数据文件 00002 还原到 F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_SYSAUX_%U_.DBF
通道 ORA_AUX_DISK_3: 正在读取备份片段 F:\BACKUP\ORCL_13LLU7MK_35_1_13LLU7MK.BAK
通道 ORA_AUX_DISK_2: 段句柄 = F:\BACKUP\ORCL_16LLU7OV_38_1_16LLU7OV.BAK 标记 = FULL
通道 ORA_AUX_DISK_2: 已还原备份片段 1
通道 ORA_AUX_DISK_2: 还原完成, 用时: 00:00:01
通道 ORA_AUX_DISK_2: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_2: 正在指定从备份集还原的数据文件
通道 ORA_AUX_DISK_2: 将数据文件 00001 还原到 F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_SYSTEM_%U_.DBF
通道 ORA_AUX_DISK_2: 正在读取备份片段 F:\BACKUP\ORCL_12LLU7MD_34_1_12LLU7MD.BAK
通道 ORA_AUX_DISK_1: 段句柄 = F:\BACKUP\ORCL_14LLU7MS_36_1_14LLU7MS.BAK 标记 = FULL
通道 ORA_AUX_DISK_1: 已还原备份片段 1
通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:17
通道 ORA_AUX_DISK_2: 段句柄 = F:\BACKUP\ORCL_12LLU7MD_34_1_12LLU7MD.BAK 标记 = FULL
通道 ORA_AUX_DISK_2: 已还原备份片段 1
通道 ORA_AUX_DISK_2: 还原完成, 用时: 00:01:16
通道 ORA_AUX_DISK_3: 段句柄 = F:\BACKUP\ORCL_13LLU7MK_35_1_13LLU7MK.BAK 标记 = FULL
通道 ORA_AUX_DISK_3: 已还原备份片段 1
通道 ORA_AUX_DISK_3: 还原完成, 用时: 00:01:17
完成 restore 于 21-8月 -10

数据文件 1 已转换成数据文件副本
输入数据文件副本 RECID=6 STAMP=727658776 文件名=F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_SYSTEM_66ZVYFBQ_.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=7 STAMP=727658776 文件名=F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_UNDOTBS1_66ZVYC8S_.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=8 STAMP=727658776 文件名=F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_SYSAUX_66ZVYCTC_.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=9 STAMP=727658776 文件名=F:\LIB\TD\USERS01.DBF

sql 语句: alter database datafile  1 online
sql 语句: alter database datafile  3 online
sql 语句: alter database datafile  2 online
sql 语句: alter database datafile  4 online
启动 recover 于 21-8月 -10
使用通道 ORA_AUX_DISK_1
使用通道 ORA_AUX_DISK_2
使用通道 ORA_AUX_DISK_3

正在开始介质的恢复
线程 1 序列 17 的归档日志已作为文件 F:\ORACL\ARCHIVE1\ARC1_17_726448405.LOG 存在于磁盘上
线程 1 序列 18 的归档日志已作为文件 F:\ORACL\ARCHIVE1\ARC1_18_726448405.LOG 存在于磁盘上
线程 1 序列 19 的归档日志已作为文件 F:\ORACL\ARCHIVE1\ARC1_19_726448405.LOG 存在于磁盘上
线程 1 序列 20 的归档日志已作为文件 F:\ORACL\ARCHIVE1\ARC1_20_726448405.LOG 存在于磁盘上
线程 1 序列 21 的归档日志已作为文件 F:\ORACL\ARCHIVE1\ARC1_21_726448405.LOG 存在于磁盘上
归档日志文件名=F:\ORACL\ARCHIVE1\ARC1_17_726448405.LOG 线程=1 序列=17
归档日志文件名=F:\ORACL\ARCHIVE1\ARC1_18_726448405.LOG 线程=1 序列=18
归档日志文件名=F:\ORACL\ARCHIVE1\ARC1_19_726448405.LOG 线程=1 序列=19
归档日志文件名=F:\ORACL\ARCHIVE1\ARC1_20_726448405.LOG 线程=1 序列=20
归档日志文件名=F:\ORACL\ARCHIVE1\ARC1_21_726448405.LOG 线程=1 序列=21
介质恢复完成, 用时: 00:00:03
完成 recover 于 21-8月 -10
=================================================
数据库已打开
内存脚本的内容:
{
#mark read only the tablespace that will be exported
sql clone "alter tablespace USERS read only";
# export the tablespaces in the recovery set
host 'expdp userid=
'********'
 transport_tablespaces= USERS dumpfile=
users2.dmp directory=
dump_dir logfile=
users2.log';
}
正在执行内存脚本

sql 语句: alter tablespace USERS read only

主机命令完成
/*
   The following command may be used to import the tablespaces.
   Substitute values for and .
   impdp directory= dumpfile= 'users2.dmp' transport_datafiles= f:\lib\td\USERS01.DBF
*/
--------------------------------------------------------------
-- Start of sample PL/SQL script. for importing the tablespaces
--------------------------------------------------------------
-- creating directory objects
CREATE DIRECTORY STREAMS$DIROBJ$1 AS  'f:\lib\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 :=  'users2.dmp';
  dump_file.directory_object := 'dump_dir';
  -- forming list of datafiles for import
  tbs_files( 1).file_name :=  'USERS01.DBF';
  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;
--------------------------------------------------------------
-- End of sample PL/SQL script
--------------------------------------------------------------

删除自动实例
关闭自动实例
Oracle 实例已关闭
自动实例已删除
=======================================================================
删除自动实例
自动实例已删除
DBGANY:     Mismatched message length! [23:28:04.718] (krmiduem)
DBGANY:     Mismatched message length! [23:28:04.718] (krmiduem)
 MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS
RMAN-00571: ===========================================================
RMAN-00600: internal error, arguments [3045] [] [] [] []
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: transport tablespace 命令 (在 08/21/2010 23:28:04 上) 失败
ORA-27056: 无法删除文件
OSD-04024: 无法删除文件。
O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问。

时间: 2024-08-26 08:12:54

【数据迁移】使用传输表空间迁移数据的相关文章

【MOS】如何利用RMAN可传输表空间迁移数据库到不同字节序的平台(文档 ID 1983639.1)

如何利用 RMAN 可传输表空间迁移数据库到不同字节序的平台 (文档 ID 1983639.1) 适用于: Oracle Database - Enterprise Edition - 版本 10.1.0.2 到 12.1.0.1 [发行版 10.1 到 12.1]本文档所含信息适用于所有平台******************* 警告 ************* Document 1334152.1 Corrupt IOT when using Transportable Tablespace

海量数据迁移之传输表空间(一)

在自己接触的很多的数据迁移工作中,使用外部表在一定程度上达到了系统的预期,对于增量,批量的数据迁移效果还是不错的,但是也不能停步不前,在很多限定的场景中,有很多物理迁移中使用传统方法还是相当不错的,传输表空间就是一个样例. 最近的有一个数据迁移任务是需要把一些全新的数据表迁移到另外一个库中,因为这些表在目标库中不存在,所以使用逻辑迁移就显得有些力不从心了.尽管在速度可以接受的情况下,最大的痛处就是大量的归档文件了. 因为需要在原有的schema下增加一些全新的数据表,不是很肯定传输表空间的校验是

oracle 异构平台迁移之传输表空间一例

  第一章 传输表空间一例(win文件系统 -> linux asm )   blog 结构图:   1  场景描述 源平台为:windows xp 32系统 + oracle 11.2.0.1.0  + ORACLE_SID=orcl 目标平台:rhel6.5 + oracle 11.2.0.1.0 + asm 64位 + ORACLE_SID=orclasm 目标:要实现将自定义的应用程序表空间app1tbs,app2tbs,idxtbs从源平台传递到目标平台   注:   ① 从linux

[20170623]利用传输表空间恢复部分数据.txt

[20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解. --//这样的操作模式仅仅减少expdp生成原数据的过程. --//我想一下,rman也支持建立传输表空间的命令.我仔细看了以前的笔记,发现这样最大的有点不用设置只读,实际上它是通过建立辅组实 --//例来建立传输文件,理论讲可以恢复到特定的scn,这样可以利用它解决一些误操作的问题,还是通过例子来说明问题. 1.环

Oracle可传输表空间的总结

传输表空间综述: 不论是数据字典管理的表空间还是本地管理的表空间,都可以使用传输表空间技术:从9i开始传输表空间不需要在源数据库和目标数据库之间具有同样的DB_BLOCK_SIZE块大小:使用传输表空间迁移数据比使用数据导入导出工具迁移数据的速度要快,这是因为传输表空间只是复制包含实际数据的数据文件到目标数据库的指定位置,而使用数据导入导出工具将传输表空间对象的元数据到目标数据库. 我们知道Oracle利用imp/impdp传输表空间transport_tablespace需要满足以下条件: 1

【TTS】传输表空间Linux ->AIX 基于rman

[TTS]传输表空间Linux asm -> AIX asm 基于rman 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推

【TTS】传输表空间AIX asm -> linux asm

[TTS]传输表空间AIX asm -> linux asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用搜狗或3

【TTS】传输表空间AIX->linux基于rman

[TTS]传输表空间AIX asm -> linux asm基于rman 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐

【TTS】传输表空间Linux asm -> AIX asm

[TTS]传输表空间Linux asm -> AIX asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用QQ或3