数据泵

http://www.cnblogs.com/zlja/archive/2010/10/08/2449379.html


创建导出路径        1.create directory dump_ehreos as '/u01/app/oracle/dump/ehreos';

查看导出路径        2.select * from dba_directories;

分配路径操作权限 3.grant read,write on directory dump_ehreos to ehreos;

建立真正的目录4.mkdir /u01/app/oracle/dump

建立真正的目录5.mkdir /u01/app/oracle/dump/ehreos

导出表格模式()6.expdp  dprm/thisisCRM directory=dump_ehreos dumpfile=dumpehreos.dmp logfile=ehreos.log tables=ehreos.t_auth_function,dbwlhr.t_hr_webserviceinfo,ehreos.ac_menu; #导出ehreos.t_auth_function,dbwlhr.t_hr_webserviceinfo,ehreos.ac_menu表

7.impdp  directory=DUMP_EHREOS0317  dumpfile=dumpehreosmenu.dmp logfile=imp150218.log  schemas=ehreos tables=ac_menu  #如果是内容想替换掉,加上这句:TABLE_EXISTS_ACTION=REPLACE。scp  root@192.168.20.115:/opt/u01/app/oracle/dumpdir/20150318.dmp   将文件复制到本地当前位置。

scp  root@192.168.20.115:/opt/u01/app/oracle/dumpdir/20150318.dmp  /opt/u01/app/oracle 将文件复制到本地对应的目录

scp  -r /opt/u01/app/oracle  root@192.168.20.115:/opt/u01/app/oracle/dumpdir/20150318.dmp   将对应的目录复制到目标服务器去

操作前提--不授权会报错

grant read,write on directory DATA_PUMP_DIR to wics;


GRANT EXP_FULL_DATABASE TO wics;



报错示例:

[oracle@localhost dpdump]$ expdp wics/wics123 directory=DATA_PUMP_DIR  dumpfile=cims0527.dmp 


logfile=cims0527.log  parallel=4 full=y


Export: Release 11.2.0.3.0 - Production on Fri May 27 09:49:25 2016


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


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORA-31631: privileges are required

ORA-39161: Full database jobs require privileges


解决方法

GRANT EXP_FULL_DATABASE TO wics;

数据泵

解决方法

grant read,write on directory DATA_PUMP_DIR to wics;



导出案例1,按表导出

expdp scott/tiger directory=dump_scott  dumpfile=tab.dmp  logfile=scott.log  tables=dept,emp

导出案例2,按用户导出

expdp scott/tiger directory=dump_scott  dumpfile=dumpscott.dmp  logfile=scott.log  schemas=scott

导出案例3,全库导出,且并行导出

expdp scott/tiger directory=dump_scott  dumpfile=full.dmp logfile=scott.log  parallel=4 

full=y




oracle按照sysdba导入导出、导入数据不需要密码

1、按照表名从一个库导出后,导入另外一个库

expdp \'/ as sysdba\'  dumpfile=part.dmp directory=DATA_PUMP_DIR  tables=表名,表名  logfile=part.log

impdp \'/ as sysdba\'  dumpfile=part.dmp  directory=DATA_PUMP_DIR   logfile=part.log   TABLE_EXISTS_ACTION=replace

2、按照数据库用户名从一个库导出后,导入另外一个库

expdp \'/ as sysdba\'  SCHEMAS=EID,EVS,JAM,FBP,APPS(用户名)   directory=DATA_PUMP_DIR  dumpfile=ljw.dmp logfile=ljw.log 

impdp \'/ as sysdba\'  full=y  directory=DATA_PUMP_DIR  dumpfile=ljw2.dmp logfile=ljw2.log TABLE_EXISTS_ACTION=replace

3、按照从一个库全库导出后,导入另外一个库

expdp \'/ as sysdba\' full=y directory=DATA_PUMP_DIR  dumpfile=ljw2.dmp logfile=ljw2.log

impdp \'/ as sysdba\' full=y directory=DATA_PUMP_DIR  dumpfile=ljw2.dmp logfile=ljw2.log TABLE_EXISTS_ACTION=replace



impdp \'/ as sysdba\'  directory=DATA_PUMP_DIR dumpfile=part.dmp  logfile=part.log  TABLE_EXISTS_ACTION=replace REMAP_SCHEMA=bse:pdahd 


REMAP_TABLESPACE=BSE_DATA:PDA_DATA,BSE_INDEX:PDA_INDEX

REMAP_SCHEMA=bse:pdahd  导出的数据是属于bse用户的,导入的时候让他属于pdahd用户

REMAP_TABLESPACE=BSE_DATA:PDA_DATA,BSE_INDEX:PDA_INDEX 导出的数据是在BSE_DATA,BSE_INDEX表空间,导入的时候由于目标数据库没有那个表空间,因此导入的目标数据库放在PDA_DATA,PDA_INDEX这两个表空间中。


样例操作

一、源数据库操作

1、切换用户

[root@crmtest ~]# su – oracle

2、连接数据库

[oracle@crmtest ~]$ sqlplus / as sysdba

SQL>  conn / as sysdba

3、创建导出路径

SQL> create directory DATA_PUMP_DIR as ' /u01/app/oracle/admin/crmdb/dpdump/';  //标黄的部分自己命名

数据泵


5、导出数据(整个库)

(1)按照用户导出数据

[oracle@crmtest ~]$  expdp  dpcrm/thisisCRM directory=DATA_PUMP_DIR  dumpfile=dyg.dmp  logfile=dyg.log  schemas=dpcrm

(说明:dpcrm/thisisCRM 按照用户导出,用户的账号密码;

directory=DATA_PUMP_DIR   ***的是上面查询出来路径的名字,不是路径的目录内容

dumpfile=dyg.dmp  导出后的文件名字,自己命名,但是文件名后缀必须是 .dmp

logfile=dyg.log   导出的日志的文件名字,自己命名,但是文件名后缀必须是 .log

schemas=dpcrm  导出的模式,这里是按照用户导出的,所有是 用户名)

备注:此命令导出数据花费时间比较长,需要等待。

6、将源库中导出的数据导入到目标数据库,一定要更改文件的所属主为oracle,所属组为:oinstall

7、导入数据库(整个库)

首先使用sql查询,查询目前数据库里面有哪些已经存在的目录

数据泵


通过查询得知,一共有4个,选择其中一个,例如选择第三个“DATA_PUMP_DIR”,需要通过ftp文件传输,把源数据通过expdb命令生成的dmp包和log日志文件导入目标数据的 /u01/app/oracle/admin/crmdb/dpdump/ 路径下面

[oracle@crmtest ~]$ impdp  dpcrm/ thisisCRM  directory= DATA_PUMP_DIR  dumpfile=dyg.dmp schemas=dpcrm logfile=dyg.log TABLE_EXISTS_ACTION=replace

(说明:

Directory为数据文件存放地址

Dumpfile导出的文件名称设置

Logfile 导出的文件日志记录

Schemas 实例名称,导出的时候写的啥,导入的时候就写啥

TABLE_EXISTS_ACTION 表存在后的操作,replace直接替换

2.  数据泵导出

数据泵导出的方法有多种,这里我们只介绍两种:

 单个用户方案导出

Expdp [用户名]/[密码]@[主机字符窜] schemas=[用户名] directory=TEST dumpfile=X.dmp logfile=X.log

 数据库全库导出

Expdp [用户名]/[密码]@[主机字符窜] full=y directory=TEST dumpfile=X.dmp logfile=X.log

实例: expdp dpcrmdb/dpcrmdb  full=y  directory=DUMP_DIR  dumpfile=dyg.dmp  logfile=dyg.log  ignore=y

3. 数据泵导入

按以上导出方式:

 单个用户方案导入

impdp [用户名]/[密码]@[主机字符窜] schemas=[用户名] directory=TEST  dumpfile=X.dmp  logfile=X.log  ignore=y

 数据库全库导入

impdp [用户名]/[密码]@[主机字符窜] full=y  directory=TEST  dumpfile=X.dmp  logfile=X.log  ignore=y

 实例: impdp  dpcrmdb/dpcrmdb  full=y  directory=DUMP_DIR  dumpfile=dyg.dmp  logfile=dyg.log  ignore=y TABLE_EXISTS_ACTION=replace

注意:directory的位置

drop directory test 删除目录



本文转自aaa超超aaa 51CTO博客,原文链接:http://blog.51cto.com/10983441/1745940
上一篇:编程实战——电影管理器之XML存储电影信息数据


下一篇:JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】