数据泵IMPDP 导入工具的使用

系统 1502 0

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

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

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

   

    数据的导入导出时数据库经常处理的作业之一, Oracle 提供了 IMP IMPDP 以及 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

 

        -- 将表 dept emp scott 方案导入到 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 星期一 9 20 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 . dept scott 用户导入到 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 冷备份

 

SPFILE 错误导致数据库无法启动

 

Oracle 用户、对象权限、系统权限

 

Oracle 角色、配置文件

 

  Oracle 联机重做日志文件(ONLINE LOG FILE)

 

  Oracle 控制文件(CONTROLFILE)

 

  Oracle 表空间与数据文件

 

Oracle 归档日志

 

 

 

数据泵IMPDP 导入工具的使用


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论