TTS
表空间的迁移
如果某个表空间有多个用户,那么我们在迁移的时候如果按用户导出导入的话,那将是一个麻烦费事的活,这个时候我们可以通过transport_tablespace参数进行表空间迁移,达到一次性迁移整个表空间的目的。下面通过一个实验来讲解整个实施过程及相关注意事项。
源库上要做的
create tablespace tbs_1;
create user test11 identified by 123456 default tablespace tbs_1;
grant connect,resource to test11;
conn test11
create table aa (i number);
begin
for i in 1..1000
loop
insert into aa values(i);
end loop;
commit;
end;
/
execute sys.dbms_tts.transport_set_check('tbs_1',true)
alter tablespace tbs_1 read only;
expdp system dumpfile=aa.dmp transport_tablespaces=tbs_1 logfile=aa.log
scp /u01/app/oracle/admin/my/dpdump/aa.dmp 192.168.3.202:/home/oracle/
scp /file/MY/datafile/o1_mf_tbs_1_drto8110_.dbf 192.168.3.202:/home/oracle/
目标库上要做的
mv aa.dmp /u01/app/oracle/admin/kyc/dpdump/
mv o1_mf_tbs_1_drto8110_.dbf /u01/app/oracle/oradata/KYC/datafile/
create user test11 identified by 123456;
grant connect,resource to test11;
impdp system dumpfile=aa.dmp transport_datafiles=/u01/app/oracle/oradata/KYC/datafile/o1_mf_tbs_1_drto8110_.dbf remap_schema=zy:zouy
conn test11
select * from v$tablespace;
select * from v$datafile;
alter user test default tablespace tbs_1;
alter tablespace tbs_1 read write;
select * from aa;
注意事项:
(1)、expdp需要使用system用户;
(2)、注意源库与目标库字符集完全一致,dbblock_size要一致,show parameter db_block_size
(3)、目标库用户需要事先创建,包含原库在该表空间下的所有用户;
(4)、如果该表空间只有一个用户,并且需要导入到其他用户下,impdp导入时需要使用remap_schema进行映射;
(5)、导出的dmp转储文件和ora数据文件均需要拷贝至目标库;
(6)、tablespace要进行read only和read write的状态修改;
(7)、导出导入的数据好像是没有包含过程、触发器、视图等对象,只有表数据;
(8)、导入完成之后,需要修改用户的默认表空间。
转载于:https://www.cnblogs.com/createyuan/p/7346418.html