expdp/impdp实验

任务:从10.200.130.61中的crm库(注意130.61上有好几个库,注意确定是crmtest的那个库)导出ucr_crm1、uop_crm1 的所有对象和数据,导到10.200.138.9上
 

前提:
——查新源库对应schema的下总的数据的大小:
SELECT /*+parallel(a,2)*/
     A.OWNER,
     ROUND(SUM(A.BYTES) / 1024 / 1024 / 1024, 2) UG
      FROM DBA_SEGMENTS A
     WHERE A.OWNER in (
   select s.username  
    from dba_users s                                
   where s.username  in    ('ucr_crm1',                  
                            'uop_crm1')            
                            and s.account_status='OPEN')
                            GROUP BY A.OWNER ORDER BY A.OWNER;
结果大约520G                            

——查看某个用户使用了哪个表空间;
select tablespace_name, sum(bytes) / (1024 * 1024 *1024) size_G
  from dba_segments
where owner in ('UOP_CRM1','UCR_CRM1')
group by tablespace_name;


————查看操作系统对应目录下可用空间:
df -g 或df-h                                     
 
 
1.130.61创建目录对象:(以sys用户创建公用目录对象)
create directory dir as '/ngdata3/exp';

2.建立parfile
cat expdp17.par
userid="/ as sysdba"       
directory=dir              
dumpfile=expdp_17_%U.dmp
logfile=expdp_17.log
parallel=3
filesize=6G
schemas=ucr_crm1,uop_crm1
exclude=STATISTICS

dumpfile的文件数最大为3*99(个),需要根据总导出大小设置dumpfile和filesize;

3.执行导出
nohup expdp parfile=/ngdata3/exp/expdp17.par &


4.先查看df -g,空间是否够用,再将导出的dmp文件传到138.9上;
scp

5.数据库检查对应表空间及大小;
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;

或者

SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name;


——与源库的ucr_crm1、uop_crm1两个用户对比,看是否存在ucr_crm1、uop_crm1对应的表空间;存在查看其表空间剩余,不够则扩容;不存在,两种办法:1)remap将
ucr_crm1、uop_crm1两用户下的表空间映射到别的表空间;2)创建相同的表空间,注意大小;

原库需要的表空间太大,创建bigfile tablespace,执行remap
SQL> create bigfile tablespace exp datafile '/oradata/crmcs/crmcs/exp01.dbf' size 520 g;

6.导入前先查看要导入的schema下的数据情况(是否存在相应表,及表里是否有对象)原库、目标库都查,然后进行对比
select owner,segment_name,blocks,bytes from dba_segments where owner in ('UOP_CRM1','UCR_CRM1');

7.创建目录对象:
create  or replace directory dir as '/oradata/imp/exp';

6.创建导入脚本:
cat impdp17.par
userid="/ as sysdba"       
directory=dir              
dumpfile=expdp_17_%U.dmp
logfile=impdp_17.log
parallel=3
schemas=ucr_crm1,uop_crm1
table_exists_action=replace
remap_tablespace=tbs_crm_dras:exp,tbs_crm_dsta:exp,tbs_crm_hdusr1:exp,tbs_crm_iusr2:exp,tbs_crm_hiusr5:exp,tbs_crm_hiuif:exp,tbs_crm_dchnl:exp,tbs_crm_def:exp,tbs_crm_dusr5:exp,tbs_crm_hdusr3:exp,tbs_crm_hdusr5:exp,tbs_crm_iusr1:exp,tbs_crm_iusr3:exp,tbs_crm_ichnl:exp,tbs_crm_hitra1:exp,tbs_crm_ditf:exp,tbs_crm_hdtra4:exp,tbs_crm_iras:exp,tbs_crm_hdtra1:exp,tbs_crm_hduif:exp,tbs_crm_iusr5:exp,tbs_crm_hdact:exp,tbs_crm_dtra:exp,tbs_crm_hdusr2:exp,tbs_crm_duif:exp,tbs_crm_hiusr4:exp,tbs_crm_iparam:exp,tbs_crm_hdtra2:exp,tbs_crm_hiusr3:exp,tbs_crm_hiact:exp,tbs_crm_hdtra3:exp,tbs_crm_dact:exp,tbs_crm_hdusr4:exp,tbs_crm_hitra4:exp,tbs_crm_iusr4:exp,tbs_crm_iuif:exp,tbs_crm_hiusr1:exp,tbs_crm_hiusr2:exp,tbs_crm_dusr1:exp,tbs_crm_dusr2:exp,tbs_crm_itra:exp,tbs_crm_hitra2:exp,tbs_crm_iact:exp,tbs_crm_dparam:exp,tbs_crm_dusr3:exp,tbs_crm_dusr4:exp,tbs_crm_ista:exp,tbs_crm_hitra3:exp,tbs_crm_iitf:exp



7.执行导入脚本
nohup impdp parfile=/oradata/imp/exp/impdp17.par &

查看导入日志路径
/oradata/imp/exp/impdp_17.log


参考:转译,进入交互界面:

expdp \'\/ as sysdba\' attach=SYS_EXPORT_SCHEMA_02
impdp  \'\/ as sysdba\' attach=SYS_IMPORT_SCHEMA_01
请使用浏览器的分享功能分享到微信等