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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dba_lily/article/details/79225950
<<一张导数据的单>>


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)导入完成

展开阅读全文

没有更多推荐了,返回首页