使用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 | —— |
下面给出创建测试环境的脚本(源数据库上面执行的操作)
- 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
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)
- 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
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.确认传输的表空间是否自包含(源数据库上面执行的操作)
- SQL> exec dbms_tts.transport_set_check('ttb1',true,true);
- PL/SQL 过程已成功完成。
- SQL> select * from transport_set_violations;
- 未选定行
SQL> exec dbms_tts.transport_set_check('ttb1',true,true);
PL/SQL 过程已成功完成。
SQL> select * from transport_set_violations;
未选定行
3.备份数据库(源数据库上面执行的操作)
- 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> 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.生成传输集(源数据库上面执行的操作)
- 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
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/”目录
- [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
[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。(可选操作,这里并没有执行。)
- 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';
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';
说明:这就是第一步检查的目的,虽然这里并不需要转换。这里给出的只是转换的方法。

浙公网安备 33010602011771号