`

数据泵IMPDP 导入工具的使用

 
阅读更多

--=================================

-- 数据泵IMPDP 导入工具的使用

--=================================

   

    数据的导入导出时数据库经常处理的作业之一,Oracle 提供了IMPIMPDP 以及SQL* Loader 等工具来完成数据的导入工作,其中IMP 服务于早期的9i 之前的版本,在10g 及后续版本,Oracle 提供了数据泵高速导入工具,本文主要介绍IMPDP 的使用方法,关于高速导出工具请参照:数据泵EXPDP 导出工具的使用 SQL* Loader 请参照:SQL*Loader使用方法

 

一、数据泵的体系结构

    数据泵的体系结构在数据泵EXPDP 导出工具的使用已列出,再此不再赘述。

 

二、IMPDP 支持的接口及导入模式

    导入接口

        使用命令行带参数的

        使用命令行带参数文件

        使用命令行交互

        使用database console( GUI)

    几种常用的导入模式

        导入表

        导入方案

        导入表空间

        导入数据库

        传输表空间模式

               

       

三、演示如何导入

    1. 关于查看impdp 的帮助,使用以下命令

        [oracle@oradb ~]$ impdp - ?  [oracle@oradb ~]$ impdp - help  前者提供帮助信息并开启命令行交互模式

   

    2. 导入表

        -- 将表dept,emp 导入到scott 方案中

        impdp scott/ tiger directory= dump_scott dumpfile= tab. dmp tables= dept, emp

 

        -- 将表deptempscott 方案导入到system 方案中,对于方案的转移,必须使用remap_shcema 参数

        impdp system/ manage directory= dump_scott dumpfile= tab. dmp tables= scott. dept, scott. emp remap_schema= scott: system

 

    3. 导入方案

        -- dump_scott 目录下的schema.dmp 导入到scott 方案中

        impdp scott/ tiger directory= dump_scott dumpfile= schema . dmp schemas= scott

       

        -- scott 方案中的所有对象转移到system 方案中

        impdp system/ redhat directory= dump_scott dumpfile= schema . dmp schemas= scott remap_schema= scott: system

 

    4. 导入表空间

        impdp system/ redhat directory= dump_scott dumpfile= tablespace. dmp tablespaces= user01

       

    5. 导入数据库

        impdp system/ redhat directory= dump_scott dumpfile= full . dmp full = y      

       

    6. 将数据对象原样导回( 演示从Windows 客户端来实现,数据库基于Linux 系统)

        Windows 客户端来导出scott. emp 表,导出后删除该表,再原样导回

        C: /> expdp scott/ tiger@list2 directory= dump_scott dumpfile= emp. dmp tables= emp

       

        C: /> sqlplus scott/ tiger@list2

 

        SQL* Plus: Release 10.2.0.1.0 - Production on 星期一920 20: 50: 35 2010

 

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

 

        Connected to :

        Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

        With the Partitioning, OLAP and Data Mining options

 

        SQL> drop table emp;

 

        Table dropped.

 

        SQL> commit ;

 

        Commit complete.

        SQL> select count ( 1) from emp;

        select count ( 1) from emp

                              *

        ERROR at line 1:

        ORA- 00942: table or view does not exist

        SQL> host impdp scott/ tiger@list2 directory= dump_scott dumpfile= emp. dmp

 

        SQL> select count ( 1) from emp;

          COUNT ( 1)

        ----------

                14     

 

    7. 将导出的对象使用remap_schema 参数转移到不同的方案

        a. deptscott 用户导入到system 用户下

            expdp scott/ tiger directory= dump_scott dumpfile= dept. dmp tables= dept

               

            方法一:

            impdp system/ redhat tables= scott. dept directory= dump_scott dumpfile= dept. dmp remap_schema= scott: system

 

            方法二:

            sql> grant imp_full_database to scott;

            impdp scott/ tiger directory= dump_scott dumpfile= dept. dmp tables= dept

                  remap_schema= scott: system table_exists_action= replace

   

        b. scott 方案下的所有对象导入到system 方案下

            expdp scott/ tiger directory= dump_scott dumpfile= allobj. dmp schemas= scott

            impdp scott/ tiger directory= dump_scott dumpfile= allobj. dmp remap_schema= scott: system table_exists_action= replace

 

    8. 使用remap_datafile 参数转移到不同的数据文件( 用于不同平台之间存在不同命名方式时)

        下面的示例首先创建了一个参数文件,参数文件名为payroll. par

            directory= pump_scott

            full = y

            dumpfile= datafile. dmp

            remap_datafile= 'db$:[hrdata.payroll]tbs2.f' : '/db/hrdata/payroll/tbs2.f'   -- 指明重新映射数据文件

   

            impdp scott/ tiger PARFILE= payroll. par

   

    9. 使用remap_tablespace 参数转移到不同的表空间

        impdp scott/ scott remap_tablespace= users: tbs1 directory= dpump_scott dumpfile= users. dmp

       

    10. 并行导入:

        expdp e/ e directory= dump_e dumpfile= a_% u. dmp schemas= e parallel= 3

 

        impdp e/ e directory= dump_e dumpfile= a_% u. dmp schemas= e parallel= 3 table_exists_action= replace

 

四、数据泵impdp 参数:

    1.REMAP_DATAFILE

        该选项用于将源数据文件名转变为目标数据文件名, 在不同平台之间搬移表空间时需要该选项.

        REMAP_DATAFILE= source_datafie: target_datafile

 

    2.REMAP_SCHEMA

        该选项用于将源方案的所有对象装载到目标方案中.

        REMAP_SCHEMA= source_schema: target_schema

 

    3.REMAP_TABLESPACE

        将源表空间的所有对象导入到目标表空间中

        REMAP_TABLESPACE= source_tablespace: target: tablespace

 

    4.REUSE_DATAFILES

        该选项指定建立表空间时是否覆盖已存在的数据文件. 默认为N

        REUSE_DATAFIELS={ Y | N}

 

    5.SKIP_UNUSABLE_INDEXES

        指定导入是是否跳过不可使用的索引, 默认为N

 

    6, sqlfile  参数允许创建DDL 脚本文件

        impdp scott/ tiger directory= dump_scott dumpfile= a1. dmp sqlfile= c. sql

        默认放在directory 下,因此不要指定绝对路径

 

    7.STREAMS_CONFIGURATION

        指定是否导入流元数据( Stream Matadata), 默认值为Y.

 

    8.TABLE_EXISTS_ACTION

        该选项用于指定当表已经存在时导入作业要执行的操作, 默认为SKIP

        TABBLE_EXISTS_ACTION={ SKIP | APPEND | TRUNCATE | FRPLACE }

 

        当设置该选项为SKIP, 导入作业会跳过已存在表处理下一个对象;

        当设置为APPEND, 会追加数据

        当设置为TRUNCATE, 导入作业会截断表, 然后为其追加新数据;

        当设置为REPLACE, 导入作业会删除已存在表, 重建表并追加数据,

        注意, TRUNCATE 选项不适用与簇表和NETWORK_LINK 选项

 

    9.TRANSFORM

        该选项用于指定是否修改建立对象的DDL 语句

        TRANSFORM= transform_name: value [:object_type]

        transform_name 用于指定转换名, 其中SEGMENT_ATTRIBUTES 用于标识段属性( 物理属性, 存储属性, 表空间, 日志等信息),

        STORAGE 用于标识段存储属性, VALUE 用于指定是否包含段属性或段存储属性, object_type 用于指定对象类型.

 

        Impdp scott/ tiger directory= dump dumpfile= tab. dmp transform= segment_attributes: n: table

 

    10.TRANSPORT_DATAFILES

        该选项用于指定搬移空间时要被导入到目标数据库的数据文件

        TRANSPORT_DATAFILE= datafile_name

        Datafile_name 用于指定被复制到目标数据库的数据文件

        Impdp system/ manager DIRECTORY= dump DUMPFILE= tts. dmp

        TRANSPORT_DATAFILES=/ user01/ data/ tbs1. f’

 

五、影响数据泵性能的相关参数

        对下列参数建议如下设置

        disk_asynch_io= true

        db_block_checking= false

        db_block_checksum= false

 

        对下列参数建议设置更高的值来提高并发

        processes                    

        sessions   

        parallel_max_servers                

       

        对下列参数应尽可能的调大空间大小

        shared_pool_size                   

        undo_tablespace 

分享到:
评论

相关推荐

    oracle的impdp和expdp数据泵导入导出全备数据库-详细笔记文档总结

    Oracle 的 IMPDP 和 EXPDP 是两个强大的数据泵工具,用于将 Oracle 数据库中的数据导入或导出到其他数据库或文件中。在本文档中,我们将详细介绍如何使用 IMPDP 和 EXPDP 工具来实现全备数据库的导入和导出。 一、...

    impdp导入多个文件的三种方式

    在Oracle数据库环境中,数据泵(Data Pump)工具是用于数据导入导出的主要手段,其中`impdp`是数据泵导入工具。当我们需要一次性导入多个数据文件时,有三种主要的方法可以实现。以下将详细介绍这三种方法。 ### ...

    ORACLE数据泵impdp与expdp

    数据泵主要包括两个主要工具:EXPDP(Export Data Pump)和 IMPDP(Import Data Pump)。这两个工具与传统的 EXP 和 IMP 工具相比,具有更高的性能和更多的定制选项。 1. EXPDP(Export Data Pump): EXPDP 用于...

    使用工具IMPDP导入数据时ORA-39002、ORA-39070错误排查

    在使用Oracle Data Pump工具IMPDP(Import Data Pump)进行数据导入的过程中,可能会遇到ORA-39002和ORA-39070等错误。本文将针对这些错误的排查方法进行详细介绍,帮助用户理解问题的原因及解决策略。 ### 错误...

    oracle 10g数据泵之impdp

    Oracle 10g 数据泵(Data Pump)是一个高效的数据迁移工具,它包含了两个主要的组件:expdp(导出)和 impdp(导入)。本文主要关注 impdp,它是用于将导出的数据导入到Oracle数据库中的工具。理解 impdp 的工作原理...

    数据泵导入导出

    数据泵是Oracle数据库提供的一种高效的数据导入导出工具,主要用于数据库备份与恢复、数据迁移等场景。它比传统的`exp`和`imp`命令提供了更丰富的功能选项以及更高的性能表现。 #### 二、基本概念 在深入了解数据泵...

    oracle 数据泵与传统的导入导出的区别与实践

    与传统的导出导入工具相比,数据泵能够实现更快速的数据传输,同时提供了更多的控制选项,使得数据迁移更加灵活和安全。 2. Data Pump处理数据的方式 - 直接路径方式:这是数据泵的主要工作方式,它绕过数据库缓存...

    oracle数据泵导入

    根据题目中的描述,这里详细介绍如何使用Oracle数据泵导入功能进行数据导入。 ##### 1. 创建表空间 首先,需要创建一个新的表空间用于存放即将导入的数据。在题目中给出的例子中,创建了一个名为`ABS`的表空间,其...

    Oracle数据泵并行导入导出.zip

    Oracle数据泵(expdp/impdp)替代了传统的exp/imp工具,通过使用更高效的二进制传输格式和并行执行策略,提高了数据迁移的速度。它支持多种操作,包括完整数据库、表空间、用户、表、索引等的导出和导入。 二、并行...

    Centos7.6下oracle impdp导入和expdp导出.docx

    本文档将详细介绍如何在 Centos7.6 操作系统环境下利用 Oracle 的数据泵功能(Data Pump)来进行数据的导出(expdp)和导入(impdp)。数据泵是 Oracle 提供的一种高效的数据迁移工具,它能够帮助用户快速地将数据库...

    oracle 10g 自动清除 session 删除库 并 自动 impdp 导入备份

    自动`impdp`(Data Pump Import)导入备份是Oracle数据泵工具的一部分,用于将数据从DMP文件快速导入到数据库中。`impdp`命令支持多种选项,如`directory`, `dumpfile`, `table_exists_action`, `network_link`等,...

    oracle 数据泵详解

    Oracle 数据泵是 Oracle 10g 以后引入的一种数据迁移工具,可以方便我们把低版本的数据库数据向高版本的数据库迁移。下面是 Oracle 数据泵的详细介绍。 一、EXPDP 和 IMPDP 使用说明 EXPDP(Data Pump Export)和...

    Linux:Oracle导出导入数据泵(EXPDP,IMPDP)

    **IMPDP(Import Data Pump)** 是对应的导入工具,用于将 EXPDP 导出的文件重新导入到数据库中。同样,IMPDP 也必须在服务器上运行。以下是一些使用 IMPDP 导入数据的步骤和选项: 1. **确认 dmp 文件位置**:确保...

    oracle采用数据泵方式进行导出导入

    Oracle 数据泵(Data Pump)是 Oracle 10g 及更高版本中提供的一种高性能的数据导出和导入工具。它可以快速地将数据从一个 Oracle 数据库导出到另一个 Oracle 数据库中。数据泵方式可以实现大规模数据的导出和导入,...

    oracle 数据泵导入

    在Oracle数据库管理中,数据泵(Data Pump)是一种非常高效的数据迁移工具,它主要用于数据库对象和数据的大规模导入导出操作。本文将基于提供的文件信息,详细介绍如何利用Oracle数据泵进行数据导入,并涵盖相关的...

    oracle数据泵的方式导入导出数据库

    在使用数据泵进行数据导出或导入之前,首先需要创建一个目录对象,以便指定数据泵文件的存储位置。例如,在给定的部分内容中出现了这样的命令: ```sql SQL> CREATEDIRECTORY dump_dir AS '/home/oracle'; ``` 这...

    linux下安装oracle导入数据泵文件.docx

    导入数据泵文件使用`impdp`命令,这是一个交互式的数据泵导入工具。在描述中,给出的导入语句如下: ``` imp dp/hr_db file=/home/oracle/app/dmpfile/hr_db_20210809.dmp ignore=y FULL=y; ``` 这里的`hr_db`...

    oracle数据泵导入导出原件bat

    Oracle 数据泵是Oracle数据库系统中一个强大的数据迁移工具,它提供了高效、灵活的数据导入和导出功能。在Oracle环境中,数据泵(Data Pump)通常用于大量数据的迁移、备份和恢复,以及数据库间的同步。本篇文章将...

Global site tag (gtag.js) - Google Analytics