1. 创建目录

使用数据泵之前,需要创建一个存放文件的目录。 这个目录要写入Oracle的数据字典中才能识别。

(1)先查看一下已经存在的目录:

SQL> col owner format a5

SQL> col directory_name format a25

SQL> select * from dba_directories;

OWNER DIRECTORY_NAME            DIRECTORY_PATH

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

SYS   BACKUP                    /u01/backup

(2)把我们把backup 这个目录删除掉,在重新创建一下

SQL> drop directory backup;

Directory dropped.

SQL> select * from dba_directories;

SQL> create directory backup as '/u01/backup';

Directory created.

SQL> select * from dba_directories;

OWNER DIRECTORY_NAME            DIRECTORY_PATH

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

SYS   BACKUP                    /u01/backup

(3)注意事项:

我这里是使用sys用户来进行操作的。 如果是其他用户,那么就需要对这个用户进行赋权。

SQL> grant create any directory to system;

Grant succeeded.

SQL> select * from dba_sys_privs where grantee='SYSTEM';

grantee        privilege                       adm

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

system        create any directory             no

system       global query rewrite              no

system       create materialized view          no

system       create table                     no

system       unlimited tablespace             yes

system       select any table                  no

如果是其他用户使用sys创建的目录,也需要进行赋权,如:

SQL> grant read,write on directory backup to SYSTEM;

Grant succeeded.

2. 创建测试数据

我们需要演示expdp/impdp的一些功能,所以需要创建2个用户和对应的表空间,并且创建一些测试的数据。 SQL 代码如下:

SQL> create tablespace dave datafile '/u01/app/oracle/oradata/dave/dave01.dbf' size 50m;

SQL> create tablespace bl datafile '/u01/app/oracle/oradata/dave/bl01.dbf' size 50m;

SQL> create user dave identified by dave default tablespace dave temporary tablespace temp;

SQL> create user bl identified by bl default tablespace bl temporary tablespace temp;

SQL> grant read,write on directory backup to dave,bl;

SQL> grant connect,resource to dave,bl;

SQL> conn dave/dave;

Connected.

SQL> create table dave(id number,name varchar2(10));

Table created.

SQL> begin

2  for i in 1 .. 10 loop

3  insert into dave values(i,'dave');

4  end loop;

5  end;

6  /

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

SQL> select * from dave;

ID NAME

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

1 dave

2 dave

3 dave

4 dave

5 dave

6 dave

7 dave

8 dave

9 dave

10 dave

10 rows selected.

SQL> conn bl/bl;

Connected.

SQL> create table bl(id number,name varchar2(10));

Table created.

SQL> begin

2  for i in 10 .. 20 loop

3  insert into bl values(i,'bl');

4  end loop;

5  commit;

6  end;

7  /

PL/SQL procedure successfully completed.

SQL> select * from bl;

ID NAME

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

10 bl

11 bl

12 bl

13 bl

14 bl

15 bl

16 bl

17 bl

18 bl

19 bl

20 bl

11 rows selected.

3. 开始测试

3.1 FULL=Y全库导出

(1)不指定Job_name

[oracle@qs-dmm-rh2 ~]$ expdp /'/ as sysdba/' directory=backup full=y dumpfile=fullexp.dmp logfile=fullexp.log parallel=2;

-- 注意使用sys 的格式,还有full=y 导出的是非sys和system用户的对象。

Export: Release 10.2.0.4.0 - Production on Friday, 18 March, 2011 15:05:54

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

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

Starting "SYS"."SYS_EXPORT_FULL_02":  '/******** AS SYSDBA' directory=backup full=y dumpfile=fullexp.dmp logfile=fullexp.log parallel=2

Estimate in progress using BLOCKS method...

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 18.68 MB

……

……

Master table "SYS"."SYS_EXPORT_FULL_02" successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.SYS_EXPORT_FULL_02 is:

/u01/backup/fullexp.dmp

Job "SYS"."SYS_EXPORT_FULL_02" successfully completed at 15:07:27

expdp/impd 是Job形式的,会调用DBMS_DATAPUMP PL/SQL包,这个API提供高速的导出导入功能;还有DBMS_METADATA PL/SQL包,这个包是将metadata(对象定义)存储在XML里。 所有的进程都能load 和unload 这些metadata。

在备份���间,会自动的生成一张与Job_name 相同名称的表, 该表在备份期间保存metadata数据。 当备份技术后,自动删除该表。

我们可以使用SQL:

SQL>select *  FROM dba_datapump_jobs

查看Job 的信息。 如果意外情况导致备份Job失败,那么对应保存metadata的表,还是会存在。 这个时候,如果查询dba_datapump_jobs,会显示该Job为not running。 这时候,我们只需要drop 掉对应的表,在查询dba_datapump_jobs。 就没有记录了。 这个也是一种处理方法。

在开始我就说了,这里没有指定Job name。 所以系统自动给我们生成了一个:SYS_EXPORT_FULL_02。

默认是从SYS_EXPORT_FULL_01开始,因为我之前有一个没有运行的Job,所以这里从2开始了。

(2)指定Job_name

[oracle@qs-dmm-rh2 ~]$ expdp /'/ as sysdba/' directory=backup full=y dumpfile=fullexp3.dmp logfile=fullexp3.log parallel=2 job_name=daveJob;

--在这里我指定了Job_name

Export: Release 10.2.0.4.0 - Production on Friday, 18 March, 2011 15:29:56

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

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

Starting "SYS"."DAVEJOB":  '/******** AS SYSDBA' directory=backup full=y dumpfile=fullexp3.dmp logfile=fullexp3.log parallel=2 job_name=daveJob

Estimate in progress using BLOCKS method...

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 18.68 MB

……

……

……

Master table "SYS"."DAVEJOB" successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.DAVEJOB is:

/u01/backup/fullexp3.dmp

Job "SYS"."DAVEJOB" successfully completed at 15:31:06

3.2 全库导入

[oracle@qs-dmm-rh2 archivelog]$ impdp /'/ as sysdba/' directory=backup full=y dumpfile=fullexp3.dmp logfile=fullexp3.log parallel=2 job_name=daveJob table_exists_action=replace;

注意: 导入的过程会生成归档日志,所以,如果是Data Guard 环境,只需要导入主库就可以了。

3.3  导出表

$ expdp  /'/ as sysdba/' directory=backup dumpfile=table.dmp logfile=table.log tables=dave.dave,dave.dba;

注意: 这里必须是同一个schema下的表

或者:

$expdp  dave/dave directory=backup dumpfile=table.dmp logfile=table.log tables=dave, dba;

3.4 导入表

$impdp dave/dave directory=backup dumpfile=table.dmp logfile=table.log tables=dave,dba;

3.5 导出用户

$ expdp  /'/ as sysdba/' directory=backup dumpfile=user.dmp logfile=user.log schemas=dave,bl;

这里是同时导出多个用户

3.6 导入用户

$ impdp  /'/ as sysdba/' directory=backup dumpfile=user.dmp logfile=user.log schemas=dave,bl table_exists_action=replace;

3.7 导出表空间

$ expdp  /'/ as sysdba/' directory=backup dumpfile=tbs.dmp logfile=tbs.log tablespaces=dave,bl;

--同时导出2个表空间

3.8 导入表空间

$ impdp  /'/ as sysdba/' directory=backup dumpfile=user.dmp logfile=user.log tablespaces=dave table_exists_action=replace;

--导入一个表空间

$ impdp  /'/ as sysdba/' directory=backup dumpfile=user.dmp logfile=user.log tablespaces=dave,bl table_exists_action=replace;

--导入2个表空间

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-09/43891.htm

Oracle expdp/impdp 使用示例的更多相关文章

  1. oracle expdp/impdp 用法详解

    http://hi.baidu.com/hzfsai/item/4a4b3fc4b1cf7e51ad00efbd oracle expdp/impdp 用法详解 Data Pump 反映了整个导出/导 ...

  2. oracle expdp/impdp/可传输表空间

    oracle expdp/impdp/可传输表空间/及一些参数 Oracle data pump 导出操作能够将表.索引.约束.权限.PLSQL包.同义词等对象从数据库导出,并将它们保存在一种非文本格 ...

  3. ORACLE expdp/impdp详解

    ORCALE10G提供了新的导入导出工具,数据泵.Oracle官方对此的形容是:Oracle DataPump technology enables Very High-Speed movement ...

  4. ORACLE expdp/impdp详解(转)

    ORCALE10G提供了新的导入导出工具,数据泵.Oracle官方对此的形容是:Oracle DataPump technology enables Very High-Speed movement ...

  5. Oracle EXPDP/IMPDP示例

    待整理: 参考DAVE博客 http://blog.csdn.net/tianlesoftware/article/details/6260138

  6. Oracle expdp impdp中 exclude/include 的使用

    exclude和include参数能够在使用expdp或impdp是对特定的对象或对象类型进行筛选或过滤.比如因工作的需要导出特定的表或不导出特定的表.视图以及存储过程.索引.约束.授权统计信息等等. ...

  7. ORACLE expdp \ impdp \ exp \ imp

    (转自:http://www.cnblogs.com/lanzi/archive/2011/01/06/1927731.html) EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导 ...

  8. Oracle expdp/impdp导出导入命令及数据库备份

    使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...

  9. Oracle expdp/impdp导出导入命令及数据库备份(转)

    使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...

随机推荐

  1. for, for..in, in, for...of的区别

    for是ES5里做数组循环里最常用的 for (var i = 0; i < array.length; i++) { // todo } for...in是ES5里用来遍历对象属性用的 var ...

  2. 采用navicat导出表结构及数据insert声明

    旧navicat有一段时间,查找navicat真的很方便,它可以支持各种数据库的. 他一直认为无处不在sql文件比较麻烦,每个表会生成一个sql档,不方便开展进口业务.今天,它已突然发现了一个批次sq ...

  3. axios 提交 application/x-www-form-urlencoded

    最近工作比较忙 , 喜欢上了用有道云做笔记 , 写博客就是为了记录自己的学习的点点滴滴 , 如果能对其他人有帮助当然最好了 , 我一定要将这个习惯进行下去 .. ..... 我们以前的前后交互方式一般 ...

  4. sgu209:Areas(计算几何)

    意甲冠军: 给一些直.这架飞机被分成了很多这些线性块.每个块的需求面积封闭曲线图. 分析: ①我们应要求交点22的直线: ②每行上的交点的重排序,借此来离散一整行(正反两条边): ③对于连向一个点的几 ...

  5. 全栈工程师之路(二)—— JavaScript(网页前端脚本语言)

    javascript 是可以运行在网页前端的脚本语言,可以基于 html 之上实现更丰富的交互(网页内容的交互显示).异步回调.多线程.定时器.动画等. hello_world.html <ht ...

  6. iText 制作PDF

    前言 由于在MVC项目中需要使用PDF,所以自己抽空也来看看itext,以便于丰富自己的知识吧.在此也简单的记录一下,说不定以后可能还用的到. 在此您可以下载你想使用的版本http://sourcef ...

  7. python 教程 第二十一章、 扩展Python

    第二十一章. 扩展Python /* D:\Python27\Lib\Extest-1.0\Extest2.c */ #include <stdio.h> #include <std ...

  8. WPF 走马灯 文字滚动 自定义控件

    原文:WPF 走马灯 文字滚动 自定义控件 /// <summary> /// Label走马灯自定义控件 /// </summary> [ToolboxBitmap(type ...

  9. WPF党旗和国徽!

    原文:WPF党旗和国徽! 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangyisen0713/article/details/18087007 ...

  10. 用WPF轻松打造iTunes CoverFlow效果

    原文:用WPF轻松打造iTunes CoverFlow效果 用WPF轻松打造iTunes CoverFlow效果                                             ...