使用RMAN传输表空间复制数据

一、检查平台是否支持

在源库和目标库执行以下语句:

SQL> SELECT d.NAME, i.VERSION, d.PLATFORM_NAME, ENDIAN_FORMAT
2 FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d, V$INSTANCE i
3 WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME
4 and d.DB_UNIQUE_NAME = i.INSTANCE_NAME;


实例名数据库版本操作系统平台字节顺序
---------- --------------- ------------------------------ ---------------
JSSWEB 10.2.0.1.0 Microsoft Windows IA (32-bit) Little

 

二、检查待传输表空间是否自包含

使用DBMS_TTS包的TRANSPORT_SET_CHECK过程来验证待传输表空间集是否自包含,TRANSPORT_SET_CHECK过程可以以两种方式执行:非严格方式和严格方式

例:

SQL> exec dbms_tts.transport_set_check('jssweb', TRUE);
PL/SQL 过程已成功完成。
SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;
未选定行


如果表空间集满足自包含检查,则视图返回空记录。

三、检查备份

四、生成可传输集

连接到目标数据库: JSSWEB (DBID=3402005373)
RMAN>transport tablespace jssweb
2>tablespace destination 'd:\backup\td'
3>auxiliary destination 'd:\backup\ad'
4>;

五、复制文件到目标平台
方式方法太多,没啥技术含量,跳过。

六、执行导入脚本

注意,导入表空间在源平台所属的用户必须存在,另外一旦复制到目标库后文件路径如果发生变化,一定要修改impscript.sql 文件中相应的路径。

除了用脚本导入之外,你还可以直接通过impdp 命令
导入(实际dbms_streams_tablespace_adm.attach_tablespaces 函数就是调用的impdp),例如:
[oracle@jsslinux dpdump]$ impdp system/verysafe DUMPFILE=dmpfile.dmp DIRECTORY=DATA_PUMP_DIR TRANSPORT_DATAFILES=/opt/oratmp/oradata/JSSWEB.DBF

 

posted @ 2012-12-28 15:05  南宫元耘  阅读(571)  评论(0编辑  收藏  举报