首页 > 数据库 > mysql教程 > Oracle数据泵的使用

Oracle数据泵的使用

WBOY
发布: 2016-06-07 15:30:53
原创
1262 人浏览过

http://hi.baidu.com/hanbingxiaoshi/item/63724f51aad754968c12edae 1、连接Oracle数据库 SQL conn / as sysdba 已连接。 2、创建一个操作目录 SQL create directory dump_dir as 'e:dump'; 注意同时需要使用操作系统命令在硬盘上创建这个物理目录。 目录


http://hi.baidu.com/hanbingxiaoshi/item/63724f51aad754968c12edae


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

2、创建一个操作目录
SQL> create directory dump_dir as 'e:dump';

注意同时需要使用操作系统命令在硬盘上创建这个物理目录。

目录已创建。

3、使用以下命令创建一个导出文件目录
SQL> grant read,write on directory dump_dir to scott;

授权成功。

4、使用命令expdp导出数据


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: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:DUMP20080601.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=dump_dir dumpfile=20080601.dmp tables=dept,emp

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 工作经理 HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- --- ---------- ---------- ----------
7369 史密斯职员 7902 17-Dece-80 800 20
7499 艾伦推销员 7698 2 月 20 日 -81 1600 300 30
7521 病房推销员 7698 2 月 22 日 -81 1250 500 30
7566 琼斯经理 7839 02-4 月 -81 2975 20
7654 马丁推销员 7698 28-9 月 -81 1250 1400 30
7698 布莱克 经理 7839 01-May -81 2850 30
7782 克拉克经理 7839 09-6 月 -81 2450 10
7788 斯科特 分析师 7566 4 月 19 日 -87 3000 20
7839 国王 总统 17-Novell-81 5000 10
7844 特纳推销员 7698 08-九月 -81 1500 0 30
7876 ADAMS 职员 7788 5 月 23 日 -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 hr/hr directory=dump_dir dumpfile=20080601schema.dmp schemas=hr
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: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:DUMP20080601SCHEMA.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=dump_dir dumpfile=tablespace.dmp tablespaces=users

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:DUMPTABLESPACE.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 适用于 AMD 的 Microsoft Windows 64 位                             小
         13 适用于 AMD 的 Linux 64 位                                         小
         15 HP 开放式 VMS                                                  小
         16 苹果 Mac 操作系统                                                大
         17 Solaris 操作系统 (x86)                               小
         18 基于 IBM Power 的 Linux                                        大

已选择17行。

要移动表空间必须满足以下条件:
1、原数据库和目标数据库必须有相同的数据库字符集和国家字符集
2、不能移动到具有同名表空间的目标数据库中。如果出现同名,只能使用ALTER TABLESPACE RENAME
命令更改源数据库或目标数据库的表空间名称。
3、不能移动SYSTEM或者SYS用户对象所在的表空间。
4、巅峰表空间在不同的操作系统之间移动,必须将初始化参数COMPATIBLE参数设置为10.0以上。
因为Oracle10g以前的版本不支持在不同网络之间的移动表空间。
5、要移动的表空间集合必须满足自包含,可以使用DBMS_TTS的过程TRANSPORT_SET_CHECK检查
是否自包含,然后临时表transprot_set_violations内查询检查结果。

以下是移动表空间的步骤,以移动USERS表空间为例:
第一步:设置表空间为串口表空间:
更改表空间用户只读;

第二步:使用expdp导出表空间
expdp用户名/口令directory=目录名称dumpfile=导出文件名称transport_tablespaces=表空间名称

例如:
expdp system/sysadmin 目录=dump_dir dumpfile=tablespace.dmp 表空间=users;

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

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

IMP用户名称/口令directory=目录名称dumpfile=导出文件名称transport_tablespaces=表空间名称
Transport_datafiles=;数据文件名称'

例如: 
impdp system/sysadmin 目录=dump_dir dumpfile=tablespace.dmp 表空间=users
Transport_datafiles=D:oracleoradataoramgruser01.dbf;

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


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板