一、选择可移植表空间
要想移植表空间,该表空间必须是自包含的。
使用下列方法查看表空间是否为自包含
begin
dbms_tts.transpoort_set_check('TABLESPACE_NAME',true);
end;
如果没有返回错误,则表空间为自包含的。
当然如果表空间是非自包含的,也可以在导出时使用命令行参数transport_full_check=y。但如果在导入时使用该参数需要同时使用newwork_link参数。
二、生成可移植表空间集
可移植表空间集包括导出的转储文件和表空间的数据文件的拷贝。
首先:alter tablespace tablespace_name read only;
然后导出:
expdp user/password directory=dir_name dumpfile=dump_file_name.dmp transport_tablespaces=tablespace_name
最后将转储文件和数据文件的拷贝转移到目标数据库可以访问的位置。
三、导入表空间
impdp user/password directory=dir_name dumpfile=dump_file_name.dmp transport_datafiles='data_file_path_name'
原表空间中的对象所属的默认必须在目标数据库也存在,要不然导入将失败。如果没有应该创建它们。