[转]Oracle数据泵的使用

使用数据泵导出数据

1、连接Oracle数据库
SQL> conn / as sysdba
已连接。

2、创建一个操作目录
SQL> create directory dump_dir as ‘e:\dump‘;
注意同时需要使用操作系统命令在硬盘上创建这个物理目录。

目录已创建。

3、使用以下命令创建一个导出文件目录
hr用户操作dump_dir目录的权限,

SQL>grant read,write on directory my_dir to scott;

授权成功。

4、使用命令expdp导出数据(可以按照用户模式导出、按照表、按照表空间导出和全库导出)

C:\>expdp scott/tiger directory=dump_dir dumpfile=20090517scotttab.dmp tables=dept,emp
s=

Export: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 15:49:00

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

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

启动 "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=20080601.dmp table

dept,emp

正在使用 BLOCKS 方法进行估计...

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 128 KB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX

处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

. . 导出了 "SCOTT"."DEPT" 5.656 KB 4 行

. . 导出了 "SCOTT"."EMP" 7.820 KB 14 行

已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"

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

SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:

E:\DUMP\20080601.DMP

作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 15:49:22 成功完成

C:\>

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

常见错误

如果没有在指定的硬盘上建立物理文件 ,则会出现如下错误提示信息:

解决的方法是现在硬盘上创建指定的物理文件目录,然后在执行expdp程序。

Oracle 中的 create directory dump_dir as ‘e:\dump‘;

命令只是在逻辑上创建了一个Oracle能够识别的目录和硬盘上的一个物理目录之间的联系,

并不能真正的在硬盘上创建物理目录。

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

C:\>expdp scott/tiger directory=dump_dir dumpfile=20080601.dmp tables=dept,emp

Export: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 15:46:19

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

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

ORA-39002: 操作无效

ORA-39070: 无法打开日志文件。

ORA-29283: 文件操作无效

ORA-06512: 在 "SYS.UTL_FILE", line 475

ORA-29283: 文件操作无效

导入命令:

impdp scott/tiger directory=dump_dir dumpfile=20080601.dmp tables=dept,emp

C:\>impdp scott/tiger directory=my_dir dumpfile=20090517scotttab.dmp tables=employee

Import: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 15:56:11

Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

已成功加载/卸载了主表 "SCOTT"."SYS_IMPORT_TABLE_01"

启动 "SCOTT"."SYS_IMPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=20080601.dmp table

dept,emp

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

. . 导入了 "SCOTT"."DEPT" 5.656 KB 4 行

. . 导入了 "SCOTT"."EMP" 7.820 KB 14 行

处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX

处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

作业 "SCOTT"."SYS_IMPORT_TABLE_01" 已于 15:56:20 成功完成

C:\>

查看结果,发现删除的数据表又已经找回来了:

SQL> set linesize 150;

SQL> select * from scott.emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7369 SMITH CLERK 7902 17-12月-80 800 20

7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30

7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30

7566 JONES MANAGER 7839 02-4月 -81 2975 20

7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30

7698 BLAKE MANAGER 7839 01-5月 -81 2850 30

7782 CLARK MANAGER 7839 09-6月 -81 2450 10

7788 SCOTT ANALYST 7566 19-4月 -87 3000 20

7839 KING PRESIDENT 17-11月-81 5000 10

7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30

7876 ADAMS CLERK 7788 23-5月 -87 1100 20

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7900 JAMES CLERK 7698 03-12月-81 950 30

7902 FORD ANALYST 7566 03-12月-81 3000 20

7934 MILLER CLERK 7782 23-1月 -82 1300 10

已选择14行。

SQL> select * from scott.dept;

DEPTNO DNAME LOC

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

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

SQL>

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

对Oracle10g中的数据泵导出数据的分析

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

Oracle10g中的数据泵只能用于服务器端,而不能用于客户端,它可以导出表、方案、表空间和整个数据库。

1、导出表

C:\>expdp scott/tiger directory=dump_dir dumpfile=20080601.dmp tables=dept,emp

2、导出方案

导出方案将方案的所有数据库对象和数据库表导出到一个文件中。

C:\>expdp scott/tiger directory=my_dir dumpfile=20090517scottschema.dmp schemas=scott

Export: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 16:04:16

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

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

启动 "HR"."SYS_EXPORT_SCHEMA_01": hr/******** directory=dump_dir dumpfile=20080601schema.dmp sche

s=hr

正在使用 BLOCKS 方法进行估计...

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 448 KB

处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE

处理对象类型 SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT

处理对象类型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE

处理对象类型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE

处理对象类型 SCHEMA_EXPORT/VIEW/VIEW

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/TRIGGER

处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . 导出了 "HR"."COUNTRIES" 6.085 KB 25 行

. . 导出了 "HR"."DEPARTMENTS" 6.632 KB 27 行

. . 导出了 "HR"."EMPLOYEES" 15.76 KB 107 行

. . 导出了 "HR"."JOBS" 6.609 KB 19 行

. . 导出了 "HR"."JOB_HISTORY" 6.585 KB 10 行

. . 导出了 "HR"."LOCATIONS" 7.710 KB 23 行

. . 导出了 "HR"."REGIONS" 5.289 KB 4 行

已成功加载/卸载了主表 "HR"."SYS_EXPORT_SCHEMA_01"

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

HR.SYS_EXPORT_SCHEMA_01 的转储文件集为:

E:\DUMP\20080601SCHEMA.DMP

作业 "HR"."SYS_EXPORT_SCHEMA_01" 已于 16:04:50 成功完成

C:\>

如果没有授予hr用户操作dump_dir目录的权限,则会出现如下错误提示信息:

C:\>expdp hr/hr directory=dump_dir dumpfile=20080601schema.dmp schemas=hr

Export: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 16:02:55

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

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

ORA-39002: 操作无效

ORA-39070: 无法打开日志文件。

ORA-39087: 目录名 DUMP_DIR 无效

3、导出表空间

expdp system/sysadmin directory=dump_dir dumpfile=tablespace.dmp tablespaces=users

C:\>expdp system/sysadmin directory=my_dir dumpfile=tablespace.dmp tablespaces=scott;

Export: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 16:09:19

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

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

启动 "SYSTEM"."SYS_EXPORT_TABLESPACE_01": system/******** directory=dump_dir dumpfile=tablespace.

p tablespaces=users

正在使用 BLOCKS 方法进行估计...

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

ORA-39139: 数据泵不支持 XMLSchema 对象。将跳过 TABLE_DATA:"OE"."PURCHASEORDER"。

使用 BLOCKS 方法的总估计: 1.187 MB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX

处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

处理对象类型 TABLE_EXPORT/TABLE/RLS_POLICY

处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

处理对象类型 TABLE_EXPORT/TABLE/TRIGGER

. . 导出了 "OE"."LINEITEM_TABLE" 283.5 KB 2232 行

. . 导出了 "OE"."ACTION_TABLE" 14.87 KB 132 行

. . 导出了 "OE"."SUBCATEGORY_REF_LIST_NESTEDTAB" 6.398 KB 21 行

. . 导出了 "OE"."PRODUCT_REF_LIST_NESTEDTAB" 12.32 KB 288 行

. . 导出了 "OE"."CATEGORIES_TAB" 13.12 KB 22 行

. . 导出了 "SCOTT"."DEPT" 5.656 KB 4 行

. . 导出了 "SCOTT"."EMP" 7.820 KB 14 行

. . 导出了 "SCOTT"."SALGRADE" 5.585 KB 5 行

. . 导出了 "SCOTT"."BONUS" 0 KB 0 行

已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_TABLESPACE_01"

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

SYSTEM.SYS_EXPORT_TABLESPACE_01 的转储文件集为:

E:\DUMP\TABLESPACE.DMP

作业 "SYSTEM"."SYS_EXPORT_TABLESPACE_01" 已经完成, 但是有 1 个错误 (于 16:09:48 完成)

C:\>

4、导出整个数据库

expdp system/sysadmin directory=dump_dir dumpfile=full.dmp full=y

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

对Oracle10g中的数据泵导入数据的分析

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

1、导入表

impdp scott/tiger directory=dump_dir dumpfile=dumptab.dmp tables=dept,emp

2、导入方案

一般只能导入自己的方案,如果想导入其他方案,必须具有EXP_FULL_DATABASE或者DBA权限。

impdp scott/tiger directory=dump_dir dumpfile=dumptab.dmp schemas=scott

3、导入表空间

impdp system/sysadmin directory=dump_dir dumpfile=tablespace.dmp tablespaces=users

4、导入整个数据库

impdp system/sysadmin directory=dump_dir dumpfile=full.dmp full=y

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

使用Oracle10g的数据泵可以移动表空间

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

使用impdp和expdp可以实现在不同的数据库之间移动表空间。在Oracle10g以前,只能在同一个操作系统平台

之间移动表空间。在Oracle10g之后,不仅可以在同一个操作系统平台之间移动表空间,还可以在不同的操作系统

之间移动表空间。用户可以通过查看数据库视图v$transportable_platform查询到哪些操作系统平台之间可以移动

表空间,即:

SQL> col platform_name format a60;

SQL> select * from v$transportable_platform order by platform_id;

PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT

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

1 Solaris[tm] OE (32-bit) Big

2 Solaris[tm] OE (64-bit) Big

3 HP-UX (64-bit) Big

4 HP-UX IA (64-bit) Big

5 HP Tru64 UNIX Little

6 AIX-Based Systems (64-bit) Big

7 Microsoft Windows IA (32-bit) Little

8 Microsoft Windows IA (64-bit) Little

9 IBM zSeries Based Linux Big

10 Linux IA (32-bit) Little

11 Linux IA (64-bit) Little

PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT

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

12 Microsoft Windows 64-bit for AMD Little

13 Linux 64-bit for AMD Little

15 HP Open VMS Little

16 Apple Mac OS Big

17 Solaris Operating System (x86) Little

18 IBM Power Based Linux Big

已选择17行。

DBA 经常完成的任务

要移动表空间必须满足如下条件:

1、原数据库和目标数据库必须有相同的数据库字符集和国家字符集

2、不能移动到具有同名表空间的目标数据库中。如果出现同名,只能使用ALTER TABLESPACE RENAME

命令更改源数据库或者目标数据库的表空间名称。

3、不能移动SYSTEM或者SYS用户对象所在的表空间。

4、要将表空间在不同的操作系统之间移动,必须将初始化参数COMPATIBLE参数设置为10.0以上。

因为Oracle10g以前的版本不支持在不同操作系统之间移动表空间。

5、要移动的表空间集合必须满足自包含,可以使用DBMS_TTS的过程TRANSPORT_SET_CHECK检查

是否自包含,然后在临时表transprot_set_violations内查询检查结果。

以下是移动表空间的步骤,以移动USERS表空间为例子:

第一步:设置表空间为只读表空间:

alter tablespace users read only;

第二步:使用expdp导出表空间

expdp 用户名/口令 directory=目录名称 dumpfile=导出文件名称 tablespaces=表空间名称

例如:

expdp system/sysadmin directory=dump_dir dumpfile=tablespace.dmp tablespaces=users;

第三步:使用操作系统命令将导出文件和传输表空间的数据文件复制到目标数据库中。

第四步:在目标数据库上使用IMPDP将源数据库的导出内容导入到目标数据库中,IMPDP导入表空间的

命令格式如下:

IMP 用户名称/口令 directory=目录名称 dumpfile=导出文件名称 tablespaces=表空间名称

datafiles=;数据文件名称‘

例如:

impdp system/sysadmin directory=dump_dir dumpfile=tablespace.dmp tablespaces=users

transport_datafiles=D:\oracle\oradata\oramgr\user01.dbf;

第五步:使用一下命令将原数据库的传输表空间恢复为可读写

alter tablespace users read write;

时间: 2024-11-08 08:52:15

[转]Oracle数据泵的使用的相关文章

Oracle数据泵expdp/impdp

Oracle11g以后的新特性使得默认条件下在分配表空间时忽略空表,以减少表空间的资源占用,这样使得在使用Oracle的exp导出用户数据时就会忽略空表,这样就会造成数据的不完整,当然在使用exp导出数据时也不是没有办法,这个以前有提到过,在此就不做过多的赘述了http://jim123.blog.51cto.com/4763600/1934205.使用这种方法是可以解决在使用exp导出用户数据时不会忽略空表,但是还有更为高效的办法就是使用expdp/impdp --Oracle数据泵,来对Or

Oracle数据泵(Data Dump)错误汇集

Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的错误案例,都会补充在此篇. 错误案例1: ORA-39065: DISPATCH 中出现意外的主进程异常错误:ORA-44002: 对象名无效 Windows 平台错误提示: Linux平台错误提示 解决方法: [[email protected] admin]$

oracle 数据泵

Oracle数据泵导入导出案例 Oracle数据库导入导出工具,可以使用exp/imp,但这是比较早期的工具.本文主要介绍数据泵expdp/impdp工具的使用. 建立数据泵目录 使用数据泵需要先建directory create directory dump_scott as'/home/oracle/dump/scott' 查看建立的目录 Select * from dba_directories 赋权 Grant read,write on directory dump_scott tos

Oracle 数据泵导入导出总结

Oracle 数据泵(IMPDP/EXPDP)导入导出总结 Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统exp/imp就会非常耗时,而数据泵方式就因此脱引而出,下面就详细总结一下数据泵的使用方法,希望能给初学者带来帮助. 一.新建逻辑目录 最好以system等管理员创建逻辑目录,Oracle不会自动创建实际的物理目录“D:\oracleData”(

oracle表分区、表分析及oracle数据泵文件导入导出开心版

1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到要的那个打开,嘿嘿,我们得找到什么时候. 这时候,有个人告诉你,你把文件按照特定的规律存在不同的文件夹中,这样的话你就会好找很多. 哇,突然你开窍了,你说,对啊,你好牛逼啊,我怎么没想到呢?分开之后我在找的话就会快很多啊,所以你很高兴,也很服他.于是你就开始做了. --这个不同的文件夹就是不同的分区

oracle 数据泵导出表

oracle 数据泵导出演示步骤 1.使用 oracle 用户创建目录 mkdir software_bak [[email protected] ~]$ cd software_bak/ [[email protected] software_bak]$ pwd /home/oracle/software_bak 2.建立目录并授权 SQL> show user; USER is "SYSTEM" SQL> create directory software_bak as

03.01 Oracle数据泵导出导出(expdp/impdp)命令举例(上)

Oracle数据泵导出导出(expdp/impdp)命令举例(上) ##实验目的: 使用数据泵迁移数据 ##实验环境: Oracle 11.2.0.4,利用数据库自带的scott示例用户进行试验测试 实验步骤概述: 1.首先需要创建Directory 2.使用expdp导出用户数据 2.1 只导出scott用户的元数据,且不包含统计信息: 2.2 只导出scott用户的数据: 2.3 只导出scott用户下的emp,dept表及数据: 2.4 只导出scott用户下的emp,dept表结构: 2

Oracle数据泵的使用

几乎所有DBA都熟悉oracle的导出和导入实用程序,它们将数据装载进或卸载出数据库,在oracle  database 10g和11g中,你必须使用更通用更强大的数据泵导出和导入(Data Pump Export and Import)实用程序导出和导入数据. 以前的导出和导入实用程序在oracle database 11g中仍然可以使用,但是Oracle强烈建议使用数据泵(Data Pump)技术,因为它提供了更多的高级特性.例如,你可以中断导出/导入作业,然后恢复它们:可以重新启动已失败的

Oracle 数据泵详解

一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2)在数据库用户之间移动对象. 3)在数据库之间移动对象 4)实现表空间搬移. 二.数据泵导出导入与传统导出导入的区别 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IM

Oracle数据泵原理及应用

Oracle数据库的备份历史 在信息系统中,数据库的备份是必不可少的一个步骤. 在Oracle数据中,数据的备份和还原在10g版本之前,一直使用的是IMPORT/EXPORT 的导入导出方式.最大的缺点就是速度慢.效率低.当这种方式用于企业级的项目中的时候,缺点就暴露出来了. 对于大数据的企业项目,数据的备份和还原因为采用IMPORT/EXPORT的方式而降低效率. 数据泵导入导出与传统导入导出的区别 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的E