Oracle 10g 及之后导出/导入(Datapump Export/Import)工具-程序员宅基地

技术标签: 操作系统  数据库  

http://www.orafaq.com/wiki/Data_Pump

http://www.orafaq.com/wiki/Datapump

 

Datapump 是一个服务,基于大容量数据迁移的结构,用来取代旧的 import/export 工具。旧的 import/export 工具仍然可用,但不支持所有的 Oracle 10g 和 11g 的功能。这个新的工具名为 expdp 和 impdp。

本文内容

本文介绍 Oracle 10g 及之后版本导出/入工具的步骤,内容如下:

  • 开始使用 datapump 导出
  • 创建数据库目录
  • 再次尝试导出
  • 导入另一个数据库
  • 网络导入
  • 从 PL/SQL 调用
  • Oracle 11g Release 1 (11.1) Data Pump 导出和导入概述
  • Oracle 11g Release 1 (11.1) Data Pump 导出和导入模式
  • 参考资料
  • 修改记录

 

开始用 datapump 导出

$ expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
 
Export: Release 10.2.0.1.0 - 64bit Production on Friday, 31 March,  2006 11:36:07
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
 
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name DMPDIR is invalid

说明:

  • "dmpdir" 为导出目录;
  • "scott.dmp" 为导出的 datadump 文件;
  • scott 用户下的表在默认表空间 USERS 和临时表空间 TEMP 下。所以这个命令将 scott 用户把自己的表(对象)导出来;
  • 因为,Oracle 已经有这两个表空间,所以,直接导入即可。但是,如果是自己创建的表空间,就先要创建这个表空间,然后再导入。

导出失败了!因为,我们需要先创建目录!

 

创建数据库目录

执行如下命令,创建一个数据库导出目录。该目录必须指向数据库服务器的一个有效目录:

SQL> CREATE DIRECTORY dmpdir AS '/opt/oracle';
Directory created.
 
SQL> GRANT read, write ON DIRECTORY dmpdir TO scott;
Grant succeeded.

说明:

  • "dmpdir" 为导出目录,"/opt/oracle" 为数据库路径(也可以操作系统的绝对路径,如"d:\db_backup");
  • 导出目录授权。让 scott 用户对该目录可读写。这样,scott 用户才能正常访问该目录,将数据库内容和导出的日志文件放在这里。

备注:Oracle 从 Oracle 10g R2 开始,引入了一个称为 "DATA_PUMP_DIR" 的默认目录,如下所示:

SQL> SELECT directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR';
 
DIRECTORY_PATH
--------------------------------------------------------------------------------
/app/oracle/product/10.2.0/rdbms/log/

 

再次尝试导出

$ expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
 
Export: Release 10.2.0.1.0 - 64bit Production on Friday, 31 March, 2006 11:41:02
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Starting "SCOTT"."SYS_EXPORT_SCHEMA_01":  scott/********  DIRECTORY=dmpdir DUMPFILE=scott.dmp
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 175.2 MB
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TYPE/TYPE_SPEC
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/JOB
. . exported "SCOTT"."BIGEMP"                            145.2 MB 3670016 rows
. . exported "SCOTT"."DEPT"                              5.656 KB       4 rows
. . exported "SCOTT"."EMP"                               7.820 KB      14 rows
. . exported "SCOTT"."ORD_CHARGE_TAB"                    5.296 KB       2 rows
. . exported "SCOTT"."SALGRADE"                          5.585 KB       5 rows
. . exported "SCOTT"."BONUS"                                 0 KB       0 rows
. . exported "SCOTT"."NEWOBJECT1_T"                          0 KB       0 rows
. . exported "SCOTT"."T1"                                    0 KB       0 rows
Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:
  /app/oracle/scott.dmp
Job "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully completed at 11:44:50

 

导入到另一个数据库

$ impdp system/oracle DIRECTORY=dmpdir DUMPFILE=scott.dmp
 
Import: Release 10.2.0.1.0 - 64bit Production on Friday, 31 March, 2006 12:00:59
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Master table "SYSTEM"."SYS_IMPORT_FULL_02" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_02":  system/******** DIRECTORY=dmpdir DUMPFILE=scott.dmp
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TYPE/TYPE_SPEC
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "SCOTT"."BIGEMP"                            145.2 MB 3670016 rows
. . imported "SCOTT"."DEPT"                              5.656 KB       4 rows
. . imported "SCOTT"."EMP"                               7.820 KB      14 rows
. . imported "SCOTT"."ORD_CHARGE_TAB"                    5.296 KB       2 rows
. . imported "SCOTT"."SALGRADE"                          5.585 KB       5 rows
. . imported "SCOTT"."BONUS"                                 0 KB       0 rows
. . imported "SCOTT"."NEWOBJECT1_T"                          0 KB       0 rows
. . imported "SCOTT"."T1"                                    0 KB       0 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/JOB
Job "SYSTEM"."SYS_IMPORT_FULL_02" successfully completed at 12:02:22

备注:

  • expdp 和 impdp 命令都是操作系统下执行;
  • 而创建导出目录,并为其授权,都是 SQL PLUS 下执行。
  • 以上例子对于刚开始的你已经足够。更多信息,请参看 Oracle 工具指南。输入下面命令可以列出该命令的所有参数。
$ expdp help=yes
$ impdp help=yes

 

网络导入

通过网络模式导入,不需要任何中间的 dump 文件。数据,通过一个数据库链路(database link)导出,直接导入到目标数据库。例如:

SQL> create user new_scott identified by tiger;
User created.
 
SQL> grant connect, resource to new_scott;
Grant succeeded.
 
SQL> grant read, write on directory dmpdir to new_scott;
Grant succeeded.
 
SQL> grant create database link to new_scott;
Grant succeeded.

 

SQL> conn new_Scott/tiger
Connected.
 
SQL> create database link old_scott connect to scott identified by tiger  using 'orcl.oracle.com';
Database link created.

 

$ impdp new_scott/tiger DIRECTORY=dmpdir NETWORK_LINK=old_scott remap_schema=scott:new_scott

所有的工作在目标操作系统上完成。唯一一个到源操作系统的引用是通过数据库链路(database link)。

 

从 PL/SQL 调用

可以从 PL/SQL 调用 datapump。这对于每天或每周计划用 DBMS_SCHEDULER 导出很方便。

DECLARE
  hand NUMBER;
BEGIN
  hand := Dbms_DataPump.Open(operation => 'EXPORT',
                              job_mode => 'FULL',
                              job_name => 'FULLEXPJOB',
                               version => 'COMPATIBLE');
  Dbms_DataPump.Add_File(handle => hand,
                       filename => 'expdp_plsql.log',
                      directory => 'DMPDIR',
                       filetype => 3);
  Dbms_DataPump.Add_File(handle => hand,
                       filename => 'expdp_plsql.dmp',
                      directory => 'DMPDIR',
                       filetype => 1);
  -- Dbms_DataPump.Set_Parameter(handle => hand,
  --                               name => 'ESTIMATE',
  --                              value => 'STATISTICS');
  Dbms_DataPump.Start_Job(hand);
END;
/

 

说明

一般情况下,导出/入不会遇到太多问题,只要注意一下几点就行:

  • 导出目录必须存在,否则导出工具无法写 export.log 导出文件日志,会报 Ora 错误;
  • 导出使用的用户必须对导出目录有读写权限。这个显而易见;
  • 导入时,相应的表空间和用户必须已存在。这个也显而易见。

注意这三点,一般都会成功导出/导入。

 

上面是 Datapump 导出/导入的步骤。下面概述一下该工具。

 

Oracle 11g Release 1 (11.1) Data Pump 导出和导入概述

Oracle Data Pump(数据泵)技术可以使数据和元数据高速地从一个数据库移动到另一个数据库。该技术是 Oracle数据库数据移动实用工具 Data Pump Export 和 Import 的基础。也就是说,导出/导入工具是基于 Oracle 数据泵技术。

Data Pump 可以让你指定作业是否移动数据和元数据的一个子集。这是通过 Export 和 Import 参数,使用数据过滤和元数据过滤来完成。

Data Pump 导出

Data Pump 导出是一个把数据和元数据卸载到一个称为“转储文件集(dump file )”操作系统文件集的工具。转储文件集可以移动到另一个系统,并通过 Data Pump 导入工具加载。

转储文件集是由一个或多个包含表数据、数据库对象元数据和控制信息的磁盘文件组成。这些文件以专有的、二进制格式写入,只有 Data Pump 导入工具可以读取。导入期间,Data Pump Import 工具使用这些文件在转存文件集中定位每个数据库对象。

Data Pump 导入

Data Pump 导入是一个把导出的转存文件集加载到目标系统。转储文件集是由一个或多个包含表数据、数据库对象元数据和控制信息的磁盘文件组成。这些文件以专有的、二进制格式写入。

导入也可以用于直接从源数据库加载到目标数据库加载,而无需转储文件,使得导出和导入操作同时进行,最大限度地减少总时间。这称为“网络导入”。

导入也可以让你看到导入作业正在执行的所有 SQL DDL,而不实际执行的 SQL。这是通过导入 SQLFILE 参数完成的。

Data Pump API

Data Pump API 提供一个高速的机制,把所有或部分数据和元数据从一个数据库移动到另一个数据库。若使用 Data Pump API,你可以使用 DBMS_DATAPUMP PL/SQL 包提供的存储过程。Data Pump Export 和 Data Pump Import 实用工具是基于 Data Pump API。

Metadata API

元数据用程序编程接口( Metadata API)为你提供一个途径完成以下工作:

  • 检索一个对象的 XML 元数据
  • 以多种不同的方式传输 XML,包括把它传输到 SQL DDL
  • 提交 XML 以通过检索重建提取的对象

若使用元数据 API,您可以使用 DBMS_METADATA PL/SQL 包中提供的存储过程。元数据的目的,数据库中的每个实体都被模型化一个对象,它属于一个对象类型。例如,scott.emp 表是一个对象,它的对象的类型是 TABLE。当你获取一个对象的元数据时,必须指定对象类型。

 

Oracle 11g Release 1 (11.1) Data Pump 导出和导入模式

导出模式

http://www.cnblogs.com/liuning8023/archive/2012/04/11/2441602.html

导入模式

http://www.cnblogs.com/liuning8023/archive/2012/04/11/2443178.html

 

参考资料

 

修改记录

  • 第一次 2012-04-09 [UPDATE][ADD]
  • 第二次 2012-04-11 [UPDATE][ADD]

o_%E5%8E%9F%E5%88%9B.jpg

转载于:https://www.cnblogs.com/liuning8023/archive/2012/03/29/2424435.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30824277/article/details/98189917

智能推荐

11、java常用单词(转载)-程序员宅基地

文章浏览阅读898次。abstract (关键字)抽象['.bstr.kt]accessvt.访问,存取['.kses]'(n.入口,使用权)algorithmn.算法['.lg.riem]annotation[java]代码注释[.n.u'tei..n]anonymousadj.匿名的[.'n.nim.s]'(反义:directly adv.直接地,..._string转byte[]数组后exception in thread "main" java.lang.numberformatexcepti

【Linux】sort排序、uniq去重、wc统计_sort 去重-程序员宅基地

文章浏览阅读2.4w次,点赞9次,收藏56次。文章目录一、sort 排序1、语法2、参数说明3、实例二、uniq 去重1、uniq使用2、sort和uniq去重结果对比三、wc 统计一、sort 排序sort命令用于 对文本文件内容,以行为单位来排序。sort命令以空格作为字段分隔符,将一行分割为多个关键字对文件进行排序。需要注意的是除非你将输出重定向到文件中,否则sort命令并不对文件内容进行实际的排序(即文件内容没有修改),只是..._sort 去重

驱动之路三--------button驱动(input设备)_linux button input-程序员宅基地

文章浏览阅读1.7k次。开发板:smdk6410系统:Linux按键是经常要用的,通过按键产生中断,可以处理不同的功能,键盘的输入就是这么一个原理,键盘也可以作为一个字符设备去写,在 驱动之路二 中就详细阐述过设备分类的概念,也将LED驱动写成了misc设备的,在这要将button驱动基于input设备去写,现在开始写了,先是头文件 s3c_button.h#ifndef __BU_linux button input

SpringBoot2系列一:基础入门_war 包 servletcontextlistener @enablescheduling-程序员宅基地

文章浏览阅读7.1k次。一、概述Spring Boot设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。二、特性 ①创建独立的Spring应用程序 ②嵌入的Tomcat,无需部署WAR文件 ③简化Maven配置 ④自动配置Spring ⑤提供生产就绪型功能,如指标,健康检查和外部配置 ⑥开箱即用,没有代码生成,也无..._war 包 servletcontextlistener @enablescheduling

基于回归分析的股票价格预测_基于varma回归模型的多只股票价格预测模型-程序员宅基地

文章浏览阅读1.6w次,点赞6次,收藏35次。作者:chen_h微信号 & QQ:862251340微信公众号:coderpai介绍由于直接的经济利益,股票价格预测一直吸引着有兴趣投资股票市场和股票交易所的人。它也是金融界的一个重要研究课题。股票市场收益预测是一个非常复杂的问题,取决于公司财务状况和国家政策等诸多因素。这些天股票价格因公司相关新闻,政治,社会经济条件和自然灾害等诸多原因而受到影响。进行了研究以预测股指指数值以..._基于varma回归模型的多只股票价格预测模型

cdh的集成phoenix安装_CDH版Phoenix的安装(图文详解)-程序员宅基地

文章浏览阅读378次。不多说,直接上干货!写在前面的话我这里,四个节点的bigdata集群。分别为cmbigdata1、cmbigdata2、cmbigdata3和cmbigdata4。其中,cmbigdata1即做server,又做agent。cmbigdata2、cmbigdata3和cmbigdata4都是做agent。注意:CDH版本的Phoenix的安装,需要我们自己编译。1、下载2、编译(编译时间较长,耐心..._cdh集成phonix

随便推点

在Ubuntu 14.04上安装Nagios 4用于监控服务器_nagios4-程序员宅基地

文章浏览阅读5.4k次。提供:ZStack云计算 前言Nagios 4是很流行的开源监控系统。本文将介绍如何在Ubuntu 14.04上进行该系统的安装与一些基本配置,配置完毕后可以在其Web界面对你的主机进行监控。本文还将涉及Nagios Remote Plugin Executor(NRPE)插件的优化,该插件安装在需要被监控的主机上作为agent使用。使用Nagios,我们可以随时查看主机的资源使用情况、确保重要的服_nagios4

Django:查询结果新增一列、查询结果字段名称更改(1)-程序员宅基地

文章浏览阅读642次,点赞15次,收藏6次。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。工具都帮大家整理好了,安装就可直接上手!例如:将原始字段中的。

基础实验篇 | uORB消息读写与自定义实验(二)_uorb通信-程序员宅基地

文章浏览阅读283次。uORB是PX4/Pixhawk系统中非常重要且关键的模块之一,是用于无人机模块间通信的协议机制。本篇将详细介绍uORB并详细拆解uORB消息读写与自定义实验全流程(二)。_uorb通信

Linux----网络编程(IO复用之epoll系统调用函数)_void epoll_add(int epfd, int fd){ struct epoll_eve-程序员宅基地

文章浏览阅读603次。服务器端epoll.c#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h&g_void epoll_add(int epfd, int fd){ struct epoll_event ev; ev.data.fd = fd; ev

QT5.8.0与VS2013环境配置_vs2013用qt哪个版本-程序员宅基地

文章浏览阅读730次。1、下载VS2013,QT5.8.0,qt-vs-tools-msvc2013-2.1.1。  VS2013版本为:Visual Studio Ultimate 2013 with Update 4 - 简体中文.iso  QT5.8.0版本为:qt-opensource-windows-x86-msvc2013_64-5.8.0.exe,下载地址为:http://download.qt.io/a..._vs2013用qt哪个版本

springMVC视图解析器——InternalResourceViewResolver(转)-程序员宅基地

文章浏览阅读364次。springmvc在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就需要通过视图解析器。springmvc里提供了多个视图解析器,InternalResourceViewResolver就是其中之一:最常用的视图解析器:InternalResourceViewResolver当处理器返回“index”时,InternalResourceViewResolver解析器..._springmvc的jsp视图解析器:internalresourceviewresolver

推荐文章

热门文章

相关标签