一、检查平台是否支持
在源库和目标库执行以下语句:
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