PLSQL_数据泵导入导出数Impdp/ Expdp(概念)

2014-08-31 Created By
BaoXinjian

图片 1一、摘要


于平凡备库和数据库迁移的上,当遇特别的数据库的时段以用exp的时段往往是内需一些个钟头,耗费大量日子。oracle10g以后可以用expdp来导出数据库花费的流年如远小于exp花费的年月,而且文件为要是聊多。

 

图片 2二、exp/imp与expdp/impdp区别


(1)
把用户usera的目标导到用户userb,用法分别在fromuser=usera touser=userb
,remap_schema=’usera’:’usera’ 。

例如:imp system/passwd fromuser=usera
touser=userb file=/oracle/exp.dmp log=/oracle/exp.log;

      impdp system/passwd directory=expdp
dumpfile=expdp.dmp remap_schema=’usera’:’userb’
logfile=/oracle/exp.log;

(2)
更换表空间,用exp/imp的早晚,要想再也改表所于的表空间,需要手工去处理一下,

如alter table xxx move
tablespace_new之类的操作。

用impdp只要用remap_tablespace=’tabspace_old’:’tablespace_new’

(3) 当指定一些表明的时候,使用exp/imp
时,tables的用法是 tables=(‘table1′,’table2′,’table3′)。

expdp/impdp的用法是tables=’table1′,’table2′,’table3′

(4) 是否如导出数据行

exp (ROWS=Y 导出数实行,ROWS=N
不导出数据行)

expdp
content(ALL:对象+导出数实行,DATA_ONLY:只导出目标,METADATA_ONLY:只导出多少的笔录)

(5)
expdp是[10g]的初特点而且不得不当服务器执行。而exp/imp是通用的。

(6)
oracle11g中生出只新特色,当表无多少时,不分红segment,以节省空间,所以exp导不起空表。解决之法门是用expdp,
当然为可以安装deferred_segment_creation 参数 或者
insert一尽,再rollback,但是这样充分烦。

 

图片 3老三、导出数据


  1. 导出expdb的过程

(1). 按用户导

        expdp scott/tiger@orcl
schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

(2). 并行进程parallel

        expdp scott/tiger@orcl
directory=dpdata1 dumpfile=scott3.dmp parallel=40
job_name=scott3

(3). 按表名导

        expdp scott/tiger@orcl
TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;

(4). 按查询条件导

        expdp scott/tiger@orcl
directory=dpdata1 dumpfile=expdp.dmp Tables=emp query=’WHERE
deptno=20′;

(5). 按表空间导

        expdp system/manager
DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp
TABLESPACES=temp,example;

(6). 导整个数据库

        expdp system/manager
DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;

 

 

  1. 参数说明 – 导出expdb

(1).
CONTENT:该选项用于指定要导出的内容.默认值为ALL

      CONTENT={ALL | DATA_ONLY |
METADATA_ONLY}

      当装CONTENT为ALL
时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义

(2).
DIRECTORY:指定转储文件及日志文件所在的目:DIRECTORY=directory_object

(3).
EXCLUDE:该选项用于指定执行操作时释放而祛除对象类型或者系对象

     
EXCLUDE=object_type[:name_clause] [,….]

     
Object_type用于指定要去掉的目标类型,name_clause用于指定要解的实际对象.EXCLUDE和INCLUDE不可知而采取

      Expdp scott/tiger DIRECTORY=dump
DUMPFILE=a.dup EXCLUDE=VIEW

(4). INCLUDE:导出时带有指定的色

        (例:INCLUDE=TABLE_DATA,

             INCLUDE=TABLE:”LIKE
‘TAB%'”

             INCLUDE=TABLE:”NOT LIKE
‘TAB%’”…)

            
EXCLUDE:导出时排除之数据类型(例:EXCLUDE=TABLE:EMP)

(5).
FILESIZE:指定导出文件的极端充分尺寸,默认为0,(表示文件尺寸没有限定)(单位为bytes).

(6).
JOB_NAME:此次导出进程使的名,方便跟踪查询(可选)

(7).
FLASHBACK_SCN:指定导出特定SCN时刻的发明数据

      
FLASHBACK_SCN=scn_value:Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能够同时以

       Expdp scott/tiger DIRECTORY=dump
DUMPFILE=a.dmp

       FLASHBACK_SCN=358523

(8).
FLASHBACK_TIME:指定导出特定时间点的表数据:FLASHBACK_TIME=“TO_TIMESTAMP(time_value)”

       Expdp scott/tiger DIRECTORY=dump
DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004
14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”

(9).
TABLESPACE:指定一个表空间导出.

(10). QUERY=[schema.] [table_name:]
query_clause

       
Schema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能够跟
CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.

        Expdp scott/tiger directory=dump
dumpfiel=a.dmp Tables=emp query=’WHERE deptno=20’

(11). PARALLEL:并行操作:
指定执行导出操作的并行进程个数,默认值为1

 图片 4

 

  1. 总结

可以通过PARALLEL
参数为导出使用一个之上的线程来家喻户晓地加速作业。每个线程创建一个独自的转储文件,因此参数dumpfile
应当具有和连行度一样多之花色。

足指定通配符作为文件称,而不是显式地输入各个文件称,例如:

expdp ananda/abc123 tables=CASES
directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4
job_name=Cases_Export

专注:dumpfile
参数有一个通配符%U,它指示文件将以需要创造,格式将为expCASES_nn.dmp,其中nn
从01 开始,然后照需向达搭。

当相互模式下,状态屏幕将展示四独工作历程。(在默认模式下,只出一个历程是可见的)所有的办事进程同步取出数据,并以状态屏幕上显示她的速。

分别访问数据文件和转储目录文件系统的输入/输出通道是很关键的。否则,与维护Data
Pump
作业相关的支付可能超过并行线程的意义,并为此要减低性能。并行方式只有在表的数额多于并行值并且表很可怜时才是有效之。

 

**图片 5季、还原数据**


  1. 导入impdp的过程

(1). 导到指定用户下

        impdp scott/tiger
DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;

(2). 改变表底owner

        impdp system/manager
DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept
REMAP_SCHEMA=scott:system TABLE_EXISTS_ACTION=TRUNCATE;

(3). 导入表空间

        impdp system/manager
DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;

(4). 导入数据库

        impdb system/manager
DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

(5). 追加数据

        impdp system/manager
DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system
TABLE_EXISTS_ACTION

 

  1. 参数说明 –
    导入impdp

(1). TABBLE_EXISTS_ACTION={SKIP |
APPEND | TRUNCATE | FRPLACE }

当装该选择也SKIP时,导入作业会超过了就在表处理下一个靶;

当装也APPEND时,会追加数据;

当装为TRUNCATE时,导入作业会截断表,然后也该加新数据;

当装也REPLACE时,导入作业会删除已存在表,重建表病追加数据;

只顾,TRUNCATE选项无适用和簇表和NETWORK_LINK选项;

(2). REMAP_SCHEMA

该选择用于将源方案的装有目标装载到目标方案中:REMAP_SCHEMA=source_schema:target_schema

(3). REMAP_TABLESPACE

拿源表空间的拥有目标导入到对象表空间中:REMAP_TABLESPACE=source_tablespace:target:tablespace

(4). REMAP_DATAFILE

欠选择用于将源数据文件名转变为对象数据文件名,在不同平台里搬移表空间时或者用该选项.

REMAP_DATAFIEL=source_datafie:target_datafile

图片 6

 
**图片 7四、案例

  • 于PROD中导出数,后导入SIT环境受到
    **

Step1.
创办逻辑目录,该令不见面在操作系统创建真正的目,最好以system等管理员创建。

create directory dpdata as
‘/home/oracle/expdb’;

Step2.
查看管理理员目录(同时查看操作系统是否留存,因为Oracle并无体贴该目录是否在,如果不在,则失误)

select * from dba_directories;

Step3.
让scott用户与以指定目录的操作权限,最好盖system等管理员赋予。

grant read,write on directory dpdata to
oracle;

Step4.
在PROD测试表中导入10长条记下,并导出

create table scott.emp (
  emp_id number,
  name varchar2(50),     
  sex varchar(2),
  age number,
  country varchar(10),
  salary number
);

begin
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 10000);
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 20000);
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 30000);
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 40000);
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 50000);
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 60000);
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 70000);
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 80000);
  insert into scott.emp values (1, 'baoxinjian1', 'M', 27, 'China', 90000);
end;
commit;

Step5. 导出为dmp文件,上传至SIT

expdp sys/oracle@gavinprod TABLES=scott.emp dumpfile=empexpdp.dmp DIRECTORY=dpdata;

 Step6. 查看导出log内容

图片 8

图片 9 

Step7. 拿数据文件上传至SIT环境

 图片 10

Step8. 进行上传

impdp sys/oracle DIRECTORY=dpdata DUMPFILE=empexpdp.dmp SCHEMAS=sys;

 Step9. 查看导入Log日志内容

 图片 11

图片 12

Step10. 查看数据库表是否成功

 

Thanks and Regards

参考:
http://blog.chinaunix.net/uid-16844439-id-3213672.html

参考:http://www.2cto.com/database/201202/120126.html

参考:http://czmmiao.iteye.com/blog/2041703

图片 13

相关文章