expdp之query参数 ---按指定条件导出数据

    技术2022-05-20  39

    需求:生产环境中,从A表中(3000万记录),按条件读取1000万条记录插入到B表中.要求对生产环境的影响降到最低。

     

    思路:1.由于需求不是很紧急,因此选择在业务不繁忙的中午进行。2.使用数据泵expdp 的query 按指定的条件将A表的1000万条记录导出为dmp文件。3.使用impdp导入dmp。

     

    下面模拟一下实现过程:

    一、授予导出用户report 对目录DATA_PUMP_DIR的读/写权限。C:/Users/Liangwei>sqlplus / as sysdba

    SQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 1 20:24:20 2011Copyright (c) 1982, 2010, Oracle.  All rights reserved.连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options

    SQL> col owner for a5;SQL> col DIRECTORY_NAME for a13;SQL> col DIRECTORY_PATH for a41;

    SQL> SELECT *  FROM  dba_directories  WHERE directory_name='DATA_PUMP_DIR';

    OWNER DIRECTORY_NAM DIRECTORY_PATH----- ------------- -----------------------------------------SYS   DATA_PUMP_DIR d:/oracle/Liangwei/admin/liangwei/dpdump/

     

    SQL> grant read ,write on directory  DATA_PUMP_DIR  to report;

    授权成功。

    SQL> exit

    二、编写导出脚本

    1.编写参数文件

     

    如要导出的表的查询条件如下:

    SELECT * FROM test WHERE object_type='TABLE';SELECT * FROM wflog WHERE logno=2;

     

    参数文件test.par 内容如下:

    DUMPFILE=test.dmp DIRECTORY=DATA_PUMP_DIR JOB_NAME=JOB02 TABLES= ( TEST, WFLOG ) QUERY= ( wflog:"where logno=2", test:"where OBJECT_TYPE='TABLE'" )

    2.编写导出命令

     

    D:/oracle>expdp  report/report  parfile=test.par

    Export: Release 11.2.0.1.0 - Production on 星期二 3月 1 20:48:51 2011

    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options启动 "REPORT"."JOB02":  report/******** parfile=test.par正在使用 BLOCKS 方法进行估计...处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的总估计: 128 KB处理对象类型 TABLE_EXPORT/TABLE/TABLE处理对象类型 TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS. . 导出了 "REPORT"."TEST"                             13.60 KB      44 行. . 导出了 "REPORT"."WFLOG"                            25.63 KB      18 行已成功加载/卸载了主表 "REPORT"."JOB02"******************************************************************************REPORT.JOB02 的转储文件集为:  D:/ORACLE/LIANGWEI/ADMIN/LIANGWEI/DPDUMP/TEST.DMP作业 "REPORT"."JOB02" 已于 20:49:23 成功完成

     

     

    二、导入数据D:/oracle/>impdp report/report  DUMPFILE=test.dmp DIRECTORY=DATA_PUMP_DIR JOB_NAME=JOB02

    Import: Release 11.2.0.1.0 - Production on 星期二 3月 1 20:54:12 2011

    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options已成功加载/卸载了主表 "REPORT"."JOB02"启动 "REPORT"."JOB02":  report/******** DUMPFILE=test.dmp DIRECTORY=DATA_PUMP_DIR JOB_NAME=JOB02处理对象类型 TABLE_EXPORT/TABLE/TABLE处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA. . 导入了 "REPORT"."TEST"                             13.60 KB      44 行. . 导入了 "REPORT"."WFLOG"                            25.63 KB      18 行处理对象类型 TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS作业 "REPORT"."JOB02" 已于 20:54:20 成功完成


    最新回复(0)