1.查看源/目标OS是否endianness相同
col platform_name for a40
SELECT * FROM V$TRANSPORTABLE_PLATFORM ORDER BY PLATFORM_NAME;
也可以使用下面查询分别在原目标库执行
SELECT d.PLATFORM_NAME,ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d
WHERE tp.PLATFORM_NAME =d.PLATFORM_NAME;
2.Source上创建测试表空间
select tablespace_name,status from dba_tablespaces;
select file_name from dba_data_files;
create tablespace anqing datafile '/u01/app/oracle/oradata/anqing/anqing01.dbf'size 50M;
create user anqing identified byanqing default tablespace anqing temporary tablespace temp;
grant connect,resource to anqing;
conn anqing/anqing;
create table anqing as select * fromall_objects;
3.创建数据泵使用的目录
create directory backup as'/u01/backup';
col owner format a5
col directory_name format a25
select * from dba_directories where directory_name='BACKUP';
4.检查表空间自包含
execute dbms_tts.transport_set_check(ts_list=>'anqing', incl_constraints=>TRUE,full_check=>FALSE); ---单向检查
--execute dbms_tts.transport_set_check(ts_list=>'anqing', incl_constraints=>TRUE,full_check=>TRUE); ---双向检查
select * fromtransport_set_violations;
5.将表空间设置成read-only
alter tablespace anqing read only;
select tablespace_name,status from dba_tablespaces;
6. 导出
$ expdp system/oracle dumpfile=anqing.dmp directory=backup transport_tablespaces=anqing transport_full_check=NO logfile=anqing.log
--transport_full_check=yes 对应第4步的full_check=yes
--transport_full_check=no 对应第4步的full_check=no
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果不同endianness需要转化
1)在源端转化方法:
rman target /
convert tablespace anqing to platform="Linux IA (32-bit)" db_file_name_convert='/u01/app/oracle/oradata/anqing/anqing01.dbf','/tmp/anqing01.dbf';
2)在目的端转化方法:
rman target /
convert datafile '/tmp/anqing01.dbf' db_file_name_convert="/tmp/","/u02/app/oracle/oradata/anqing/";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7.将Transportable Tablespace set传送到Target端
$ scp anqing.dmp 192.168.3.201:/u01/backup
$ scp anqing01.dbf 192.168.3.201:/u02/app/oracle/oradata/anqing
8.在Target 系统上Import 表空间的metadata
create user dave identified bydave;
grant connect,resource to dave;
$ impdp system/oracle directory=backup dumpfile=anqing.dmp transport_datafiles=/u02/app/oracle/oradata/anqing/anqing01.dbf remap_schema=anqing:dave logfile=anqing.log
9.查看并修改表空间状态
select tablespace_name,status from dba_tablespaces;
此时Source 和 Target 端都是read only 状态,修改2个表空间的状态:
alter tablespace anqing read write;
select tablespace_name,status from dba_tablespaces;