数据泵导入导出数据

简介: 数据泵导入导出数据,基于表、表空间和用户

一、数据泵介绍

1、数据泵优点:

   ①改进性能(较传统的exp/imp速度提高1-2个数量级)  

   ②重启作业能力

   ③并行执行能力

   ④关联运行作业能力

   ⑤估算空间需求能力

   ⑥操作网络方式

2、数据泵组成部分:

   ①数据泵核心部分程序包:DBMS_DATAPUMP

   ②提供元数据的程序包:DBMS_MATADATA

   ③命令行客户机(实用程序):EXPDP,IMPDP

3、数据泵文件:

   ①转储文件:此文件包含对象数据

   ②日志文件:记录操作信息和结果

   ③SQL文件:将导入作业中的DDL语句写入SQLFILE指定的参数文件中

4、数据泵的目录及文件位置

   以sys或system用户完成数据泵的导入导出时,可以使用缺省的目录 DATA_PUMP_DIR通过dba_directories表可以查看;DATA_PUMP_DIR缺省目录位置是:$ORACLE_HOME/admin/database_name/dpdump


二、数据泵导入导出

  数据泵的对象可以是表、表空间和用户

1、数据泵导出

  1)按表导出

    ①全表导出

    ②按查询条件导出表

  2)按表空间导出

  3)按用户导出  

  4)导出全库

2、数据泵导入

  1)导入表

    ①导入表,不改变schema

    ②导入表,改变schema

  2)导入表空间

  3)导入到具体用户

    ①导入用户,不改变schema

    ②导入用户,改变schema

  4)导入全库


三、数据泵测试

源端

 环境:

    Oracle 11.2.0.1 

      源数据库:  vbox88

      目标数据库:vbox99


  查看数据泵目录:

   1)select * from dba_directories;

      DATA_PUMP_DIR是默认的,也可以自己创建一个新的目录

      d0ff2e54e27a5bb59df50a9931cbb3f53d54fd35

   2)创建一个目录

     create directory data_pump as '/u01/data_pump';

    其中/u01/data_pump这个目录要在linux系统中存在,没有的话先创建这个目录。

    (删除目录为:drop directory DATA_PUMP;

      b7409da6c402af98ff392098d476b4420a4e0729  

    

   3)将目录DATA_PUMP的读写权限赋予scott用户

      grant read,write on directory DATA_PUMP to scott;


1、按表导出

   导出表时应查看下表的大小

    750738a3ed517c48e435dc5b384e2f9a4d3b88ab


  1)全表导出

   expdp scott/tiger directory=DATA_PUMP dumpfile=emp1.dmp tables=emp1,dept1;

    c4203e0b7cd35ec5b36ce00b67ba1e5b636395ac

  

  2)按查询条件导出表

     将emp1表deptno为10的数据导出

      expdp scott/tiger directory=DATA_PUMP dumpfile=condition.dmp logfile=condition.log tables=emp1 query=\' WHERE deptno\=\10\'

    aa61f743061a25d23e307f9ef4bd28a6f42f0830

 

2、按表空间导出

   导出前查看下表空间对应数据文件的大小

   60015d935898c4098122db6dd7a2bfa820cedd94


  1)expdp \' / as sysdba \' directory=DATA_PUMP dumpfile=soe_tbs.dmp tablespaces=soe;

   35569da8152d1ec4a89ba685d21df24ed99059b6

   e68a35ab55f6b9e36b96c88fbaa701b77f6ba385


3、按用户导出 

   在导出用户时应查看用户所在的表空间以及表空间的大小

    4b1ebdf513bd778bb3e838684a857bc61a118e7d


   1)expdp \' / as sysdba \' directory=DATA_PUMP dumpfile=scott.dmp schemas=scott;

   41aa044f3bbfc6c2db85a592d729170678e994e0

   f192899ded5dbc5d40f8ad59f4452904804423cb

4、全库导出

  导整个数据库
    expdp system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;


目标端

  1)将源端的数据拷贝到目标端的目录下

     ①select * from dba_directories;

    6f5abcb1bc61bb2088d0e580b6c2073516b9d757 

     ② scp 192.168.3.88:/u01/data_pump/* /u01/oracle/dir

       e729916552fcb6fdab37bbf3e366b0d06da2a4bc


1、按表导入

  ①导入表,不改变schema

     impdp scott/tiger directory=DIR pumpfile=emp1.dmp

     615ac689ba81ee9105bcb6472e62521f5ecb6aa7

     

   ②导入表,改变schema

     impdp \'/ as sysdba \' directory=DIR dumpfile=emp1.dmp remap_schema=scott:wr

    c97b8e768d19bb9b79f0337d9dcf4a15a8b49be2


2、按表空间导入

   在源端查看有哪些表在使用soe表空间以及其所属用户,如果表所在的用户在目标端没有则应创建相应用户,否则在导入的时候会报错。

  51f05177bfa7f63becb246dc1bf36a5ec864599f

 1)impdp \' / as sysdba \' directory=DIR dumpfile=soe_tbs.dmp tablespaces=soe

   e84f9521c4817cdfc834996a8540e78a28ae0bfc


3、按用户导入

  ①导入用户,不改变schema

    impdp \' / as sysdba \' directory=DIR dumpfile=scott.dmp

   ②导入用户,改变schema

    impdp \' / as sysdba \' directory=DIR dumpfile=scott.dmp remap_schema=scott:wr

   98510def9e78a3599d758caff7da320e27980fba
   f1d463b255d0599e670c66ae47038586b6bf6360


四、目标库远程连接源库导入

①create directory data_pump as '/u01/data_pump';

②grant read,write on directory DATA_PUMP to zyz;

③配置tnsnames

    ORCL =

       (DESCRIPTION =

           (ADDRESS = (PROTOCOL = TCP)(HOST = xxbora)(PORT = 1521))

           (CONNECT_DATA =

                (SERVER = DEDICATED)

                (SERVICE_NAME = orcl)

            )

        )

④创建dblink

    create public database link orcl18 connect to zyz identified by zyz using 'ORCL18';

    select count(*) from zyz.userinfo@orcl18;

⑤导入数据

    impdp zyz/zyz directory=data_pump network_link=orcl18 schemas=zyz logfile=zyz.log remap_tablespace=JCTABLESPACE:ZYZTABLESPACE exclude=statistics

⑥收集统计数据

    exec dbms_stats.gather_schema_stats(ownname=>'ZYZ',estimate_percent=>10,degree=>8,cascade=>true,granularity=>'ALL');












相关文章
|
Oracle 关系型数据库 数据库
通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库
通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库
orcale导入导出dmp文件
orcale导入导出dmp文件
66 0
|
Java
HSSFWorkbook实现导入导出
HSSFWorkbook实现导入导出
201 0
|
SQL 关系型数据库 MySQL
【笔记】用户指南—数据导入和导出—使用mysqldump导入导出数据
本文介绍了通过mysqldump工具将PolarDB-X数据导入导出的几种常见场景和详细操作步骤。 PolarDB-X支持MySQL官方数据导出工具mysqldump。mysqldump命令的详细说明请参见MySQL 官方文档。
244 0
|
SQL Oracle 关系型数据库
数据泵避免个别表数据的导出
对于数据泵EXPDP/IMPDP而言,功能比普通EXP/IMP功能要强的多,因此也可以实现一些普通导出导入工具很难完成的工作。     比如今天碰到的这个问题,要导出一些表,但是其中个别表只导出结构而不导出数据。
941 0
|
SQL 关系型数据库 MySQL
用户指南—数据导入和导出—使用mysqldump导入导出数据
本文介绍了通过mysqldump工具将PolarDB-X数据导入导出的几种常见场景和详细操作步骤。 PolarDB-X支持MySQL官方数据导出工具mysqldump。mysqldump命令的详细说明请参见MySQL 官方文档。
145 0
|
SQL 数据库
数据泵如何生成导出文件的DDL脚本
在使用exp/imp时,生成对应dumpfile文件的DDL脚本非常容易,在使用命令imp时,添加参数show, show=y表示展示imp导入的时候,输出相关DDL语句(不包括insert语句),而不会真正的在数据库中执行.其实使用数据泵(expdp/impdp)也能生成对应导出dumpfile的DDL语句,参数为sqlfile。
1003 0
|
Oracle 关系型数据库 数据库
Oracle之数据泵导入/导出数据
以前习惯用imp/exp导入导出数据,现在我们来搞一把数据泵导入导出的方法。它比之于imp/exp的方式的优点自不必说---速度快! 但是很不幸,我在导出数据的时候报错了,我擦,这特么就尴尬了。
1402 0
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库 Unix