您的位置:首页 > 数据库 > Oracle

ORACLE 一个用数据泵expdp/impdp导入导出的事例

2018-02-01 11:26 381 查看
<<一张导数据的单>>

1、导出源库

导出服务器IP和sid:10.150.33.100

导出用户:ODSPRO

导出对象(表):

ZISCS0001                        

ZISCS0020

ZISCS0040

ZISCSB168

ZISCS0023

ZISCS0034

EVER_ALL

SB_INFO

NW_MAPPING_CODE_YTH

ZISBI_POWER

ZISFIB052

执行导出时间:2017/04/13

2、导入目标库

导入数据来源:上面导出的数据

导入服务器IP和sid: 10.150.33.241

导入后预估大小: 67G

导入用户:miners

导出日志:不需要

导入时间:2017-04-13

导入要求:目标库中没有导入的表

TABLE_EXISTS_ACTION=SKIP      --不处理,保留原来的表

注意,1 如果导入用户存在数据,请自行删除待导入用户的数据

   2 如果是提供数据导入,需要提供用数据泵导出的数据

<<一张导数据的单>>

(一)导出库:

1)先抽查其中一张表看是否为该用户的
select OWNER from dba_tables where TABLE_NAME='ZISCS0001';

2)可以通过dba_directories 来查看系统中已创建的目录
select * from dba_directories;

3)对于创建的目录必须授予用户读写目录的权限
grant read,write on directory dump_scott to user;

4)如果没有导出的文件夹路径,就df -h 看看空间,然后新建
create or replace directory expdp_dir as '/home/oradba/expdp_dir';

5)写一个参数文件

$ vi expdp_0413.par

tables=ODSPRO.ZISCS0001

,ODSPRO.ZISCS0020

,ODSPRO.ZISCS0040

,ODSPRO.ZISCSB168

,ODSPRO.ZISCS0023

,ODSPRO.ZISCS0034

,ODSPRO.EVER_ALL

,ODSPRO.SB_INFO

,ODSPRO.NW_MAPPING_CODE_YTH

,ODSPRO.ZISBI_POWER
,ODSPRO.ZISFIB052

6)vi编辑导出命令
expdp  "'/ as sysdba'" directory=EXPDP_DIR dumpfile=odspro_%U.dmp logfile=expdp_0427.log parfile=expdp_0413.par PARALLEL=4 COMPRESSION=ALL job_name=0413

--因为数据大,开并行,文件系统自定名_%U,加压缩,job_name一定要加

--大数据导入的时候要时刻注意df -h,有可能归档日志把磁盘撑爆

7)用nohup命令执行

$ nohup sh impdp_miners_20170330.sh > 1.txt &

$ tail -f 1.txt

(二)导入库:


1)$ df -h --确认存放目录空间足够,不然会宕机

2)把导出文件传输到目标库

3)查看用户的默认表空间

SQL>  select USERNAME,DEFAULT_TABLESPACE from dba_users where USERNAME='MINERS';

USERNAME                       DEFAULT_TABLESPACE

------------------------------ ------------------------------
MINERS                         TBRSH

4)确保该表空间的大小足够

TABLESPACE_NAME                 TOTAL(G)   USED(G)   FREE(G)  USED_PCT

------------------------------ --------- --------- --------- ---------

UNDOTBS1                           32.00      0.04     31.96      0.13

USERS                               0.00      0.00      0.00     20.00

TBRSH                             751.00    259.01    491.99     34.49

SYSAUX                              0.59      0.25      0.34     42.26

SYSTEM                              1.00      0.61      0.39     60.77

                               --------- --------- ---------
sum                               784.59    259.91    524.68

5)vi编辑导入命令

$ vi impdp_miners_20170414.sh

impdp "'/ as sysdba'" directory=impdp dumpfile=odspro.dmp logfile=impdp_20170414.log REMAP_SCHEMA=ODSPRO:miners REMAP_TABLESPACE= other_data:TBRSH,YD_DATA:TBRSHZD_DATA:TBRSH,
PART_DATA:TBRSH TABLE_EXISTS_ACTION=skip job_name=20170414

6)用nohup命令执行

$ nohup sh impdp_miners_20170414.sh > 1.txt &

$ tail -f 1.txt 





ORA-39083: Object type TABLE:"MINERS"."ZISBI_POWER" failed to create with error:

ORA-00959: tablespace 'ZISBI_POWER_2008' does not exist




--出现报错,停止导入

7)利用ATTACH 重新连接上还在进行的JOB

$ impdp attach=20170414

Import: Release 11.2.0.4.0 - Production on Fri Apr 14 10:48:32 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Username: / as sysdba





Import> stop
Are you sure you wish to stop this job ([yes]/no): yes

8)重新编辑,把缺少的表空间名加上

$ vi impdp_miners_20170414.sh
impdp "'/ as sysdba'" directory=impdp dumpfile=odspro.dmp logfile=impdp_20160414.log REMAP_SCHEMA=ODSPRO:miners REMAP_TABLESPACE ODS_PRO_DEFAULT:TBRSH, ODS_CS_YX:TBRSH,OPUPW:TBRSH,ZISBI_POWER_2008:TBRSH,PORTION:TBRSH  TABLE_EXISTS_ACTION=skip job_name=0414

9)导入完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  expdp impdp 数据泵