已经有了表空间的数据文件,和元数据dump文件,如何把这个表空间传输到异构表空间中?
查询异构传输平台信息:
COLUMN PLATFORM_NAME FORMAT A40
SELECT PLATFORM_ID, PLATFORM_NAME, ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM
ORDER BY PLATFORM_ID;
在RMAN中执行转换:
CONVERT DATAFILE '/home/oracle/scripts/trpdata_6.dbf' --数据文件位置
TO PLATFORM="Linux x86 64-bit" --到哪个平台
FROM PLATFORM="Solaris[tm] OE (32-bit)" --从哪个平台过来的
DB_FILE_NAME_CONVERT='/home/oracle/scripts/ trpdata_6.dbf','/u01/app/oracle/oradata/PRODCDB/PDBPROD1/trpdata_6.dbf'; --产生的数据文件路径
此时查询表空间,发现没有迁移过来的表空间。
这是因为刚刚只是产生了数据文件,还没有用表空间的元数据文件。
创建目录
create directory dir1 as '/home/oracle/scripts';
创建用户并给权限
create user trans_user identified by oracle;
grant connect,resource,unlimited tablespace to trans_user;
impdp导入
impdp system/oracle@pdbprod1 directory=dir1 dumpfile=trans3_2.dmp TRANSPORT_DATAFILES=/u01/app/oracle/oradata/PRODCDB/PDBPROD1/trpdata_6.dbf
再次查看表空间,发现表空间已经传入数据库
表空间恢复读写模式
alter tablespace TRANS_TBS read write;