使用RMAN跨平台传输表空间

实验题:

传输表空间就是把另一个平台的表空间的dmp文件和数据文件传输到另一个数据库

步骤:
1、表空间read only
查看表空间是否自包含
SYS@prod> exec dbms_tts.transport_set_check(‘TEST_1’,TRUE);

PL/SQL procedure successfully completed.

SYS@prod> select * from transport_set_violations;

no rows selected
2、导出表空间
expdp ‘sys/oracle as sysdba’ directory=e_exp dumpfile=test_1,dmp transport_tablespace=y tablespaces=test_1 log=test_1_tts.log
3、把dmp文件传输过去
转换数据文件格式,既可以在源端执行 在源端执行时候只能转换表空间不能转换单一的数据文件
convert tablespace tab_cs to platform ‘Solaris[tm] OE (32-bit)’ db_file_name_convert=’/u01/app/oracle/oradata/prod’,’/home/oracle/solaris’;
又可以在目标端执行
rman>convert tablespace tab_cs from platform ‘Solaris[tm] OE (64-bit)’ format ‘/u01/app/oracle/oradata/PROD4/PROD4/trpdata’;

rman>convert datafile ‘/u01/app/oracle/oradata/PROD4/PROD4/tbs_cs.dbf’ from platform ‘Solaris[tm] OE (64-bit)’ format ‘/u01/app/oracle/oradata/PROD4/PROD4/trpdata’;

注意:db_file_name_convert 是指定文件夹;format是指定具体位置。
4、在目标端执行导入
impdp system/oracle directory=d1 dumpfile=trans3_2.dmp transport_datafiles=’/u01/app/oracle/oradata/PROD4/PROD4/trpdata’;

现有一个从solaris操作系统中拷贝过来的数据文件(sst用户的对象)一个,属于TRPDATA 表空间,文件里面存储着sst用户的表,现在要把这个文件导入到linux平台

1、把solaris的导出数据文件转换为linux数据文件;
查看平台的字节序
select * from v$transportable_platform;

PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT

扫描二维码关注公众号,回复: 4966743 查看本文章

1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
10 Linux IA (32-bit) Little
6 AIX-Based Systems (64-bit) Big
3 HP-UX (64-bit) Big
5 HP Tru64 UNIX Little
4 HP-UX IA (64-bit) Big
11 Linux IA (64-bit) Little
15 HP Open VMS Little
8 Microsoft Windows IA (64-bit) Little

PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT


9 IBM zSeries Based Linux Big
13 Linux x86 64-bit Little
16 Apple Mac OS Big
12 Microsoft Windows x86 64-bit Little
17 Solaris Operating System (x86) Little
18 IBM Power Based Linux Big
19 HP IA Open VMS Little
20 Solaris Operating System (x86-64) Little
21 Apple Mac OS (x86-64) Little

在目标端进行转换
把solaris系统的导出文件转换为/u01/app/oracle/oradata/PROD4/PROD4/trpdata
rman target /
rman>convert datafile ‘/home/oracle/TRPDATA_6_solaris’ from platform ‘Solaris[tm] OE (64-bit)’ format ‘/u01/app/oracle/oradata/PROD4/PROD4/trpdata’;
################################################################
补充表空间转换:
RMAN> convert tablespace TBS3 to platform ‘IBM Power Based Linux’ format ‘/home/oracle/AIXTBS3.DBF’;

convert tablespace tab_cs to platform ‘Solaris[tm] OE (32-bit)’ db_file_name_convert=’/u01/app/oracle/oradata/prod’,’/home/oracle/solaris’;
#############################################################################

2、在目标库上创建目录和用户;
create directory d1 as ‘/home/oracle/’;
create user sst identified by oracle;
grant dba to sst;
3、在目标库上执行导入命令。
impdp system/oracle directory=d1 dumpfile=trans3_2.dmp transport_datafiles=’/u01/app/oracle/oradata/PROD4/PROD4/trpdata’;
4、打开表空间读写
select tablespace_name ,status from dba_tablespaces;
TRPDATA READ ONLY
alter tablespace trpdata read write;
7、查询验证导入是否正确
select status,tablespace_name from dba_tablespaces;
conn sst/oracle
select * from tab;
select * from employees;

猜你喜欢

转载自blog.csdn.net/weixin_44524950/article/details/86536823