Oracle不落地迁移方案实战

来源:这里教程网 时间:2026-03-03 20:07:00 作者:

本次客户需求是将 xxx 数据库的 7 个用户 ( 共计 7t 数据 ) 迁移至测试库,由于存储空间紧张,决定采用不落地方式导入到测试库。

但是有一点需要注意,network是不支持long字段的迁移的,所以需要单独对long字段的表进行迁移,

 

查看用户是否存在 LONG 字段的表

SQL> select OWNER,TABLE_NAME from dba_tab_columns where owner in('PRODUCT','BASE','SEC','RES','ZG','CP','SO1') and DATA_TYPE='LONG';
 
OWNER                          TABLE_NAME
------------------------------ ------------------------------
CP                             PLAN_TABLE

一、源库查询需要建的表空间

查询用户默认表空间以及关联表空间,并查出对应表空间的大小

select tablespace_name, sum(bytes) / (1024*1024*1024) size_G
from dba_segments
where owner in('PRODUCT','BASE','SEC','RES','ZG','CP','SO1')
group by tablespace_name;
 
TABLESPACE_NAME                    SIZE_G
------------------------------ ----------
ZG_IDX                         317.687744
REP                            .000427246
BASE_IDX                       15.4326172
ZC                             .000183105
SO1                            4616.41113
USERS                          5.88464355
RES                            57.7888184
GJ                             3.06890869
ZG                             1584.76373
SEC                            1.24707031
CP                             .145446777
BASE                           38.2277832
UA_IDX                         .021484375
PRODUCT                        .370910645
SEC_IDX                         1.9140625
SO1_IDX                        1117.29614
UA                             .000244141
RES_IDX                        23.7958984

可以看到有些表空间的数据量很大,一个个建数据文件非常麻烦。

这里有两种办法

1 、创建 BIGFILE 表空间 ( 缺点就是 RMAN 备份的时候全在一个文件上了,会导致很大,传输起来很麻烦 )

create BIGFILE TABLESPACE SO1 DATAFILE '+DATA/szboss/SO1.dbf' size 1G autoextend on;

2 、算好差不多需要几个32G数据文件,创建几个即可

create  TABLESPACE SO1 DATAFILE '+DATA' size 1G autoextend on;

二、表空间创建完之后开始不落地导入 ( 因为数据量略大,怕一个用户导入错了,难排查,就分了 7 个用户导 )

nohup impdp system/oracle DIRECTORY=mydata  NETWORK_LINK=expdp_dblink schemas=SO1 logfile=SO1.log &
nohup impdp system/oracle DIRECTORY=mydata  NETWORK_LINK=expdp_dblink schemas=RES logfile=RES.log &
nohup impdp system/oracle DIRECTORY=mydata  NETWORK_LINK=expdp_dblink schemas=ZG logfile=ZG.log &
nohup impdp system/oracle DIRECTORY=mydata  NETWORK_LINK=expdp_dblink schemas=SEC logfile=SEC.log &
nohup impdp system/oracle DIRECTORY=mydata  NETWORK_LINK=expdp_dblink schemas=CP logfile=CP.log &
nohup impdp system/oracle DIRECTORY=mydata  NETWORK_LINK=expdp_dblink schemas=BASE logfile=BASE.log &
nohup impdp system/oracle DIRECTORY=mydata  NETWORK_LINK=expdp_dblink schemas=PRODUCT logfile=PRODUCT.log &

三、导入long字段的表

nohup impdp system/oracle DIRECTORY=mydata  NETWORK_LINK=expdp_dblink schemas=CP tables=PLAN_TABLE logfile=PLAN_TABLE.log &

相关推荐