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

恢复管理器: 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) 另一个程序正在使用此文件,进程无法访问。

上一篇:手机卫士05-自定义对话框


下一篇:飞天2.0 | 万物智能的基础服务