data pump(数据泵)

先给出oracle给出的一个定义:

“Oracle Data Pump technology enables very high-speed movement of data and metadata from one database to another.“  

听起来很牛的玩意,理论暂不去考虑,先来几个操作过过瘾;

Blog:    http://blog.csdn.net/perfect_db

SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production


查看一下预定义的目录情况

SQL> select * from dba_directories;
OWNER                DIRECTORY_NAME                 DIRECTORY_PATH
-------------------- ------------------------------ -----------------------------------------------------------------
SYS                  SUBDIR                         C:\oracle\product\10.2.0\db_1\demo\schema\order_entry\/2002/Sep
SYS                  XMLDIR                         C:\oracle\product\10.2.0\db_1\demo\schema\order_entry\
SYS                  MEDIA_DIR                      C:\oracle\product\10.2.0\db_1\demo\schema\product_media\
SYS                  LOG_FILE_DIR                   C:\oracle\product\10.2.0\db_1\demo\schema\log\
SYS                  WORK_DIR                       C:\ADE\aime_vista_ship\oracle/work
SYS                  DATA_FILE_DIR                  C:\oracle\product\10.2.0\db_1\demo\schema\sales_history\
SYS                  DATA_PUMP_DIR                  C:\oracle\product\10.2.0\admin\zmmctest\dpdump\
SYS                  ADMIN_DIR                      C:\ADE\aime_vista_ship\oracle/md/admin

已选择8行


 

在C盘下新建数据泵导入导出数据目录和日志目录etl、etl_log

之后用PL/SQL 在数据库中注册刚才创建数据泵导入导出数据目录和日志目录

 

SQL>create directory data_dir as 'c:\etl'

目录已创建

SQL>create directory log_dir as 'c:\etl_log'

目录已创建

随后就把这两个目录的读写权限授予用户A

SQL>grant read,write on directory data_dir to orabw

授权成功

SQL>grant read,write on directory log_dir to orabw

授权成功


SQL> select * from dba_directories;
OWNER                DIRECTORY_NAME                 DIRECTORY_PATH
-------------------- ------------------------------ -----------------------------------------------------------------
SYS                  LOG_DIR                        c:\etl_log
SYS                  DATA_DIR                       c:\etl

SYS                  SUBDIR                         C:\oracle\product\10.2.0\db_1\demo\schema\order_entry\/2002/Sep
SYS                  XMLDIR                         C:\oracle\product\10.2.0\db_1\demo\schema\order_entry\
SYS                  MEDIA_DIR                      C:\oracle\product\10.2.0\db_1\demo\schema\product_media\
SYS                  LOG_FILE_DIR                   C:\oracle\product\10.2.0\db_1\demo\schema\log\
SYS                  WORK_DIR                       C:\ADE\aime_vista_ship\oracle/work
SYS                  DATA_FILE_DIR                  C:\oracle\product\10.2.0\db_1\demo\schema\sales_history\
SYS                  DATA_PUMP_DIR                  C:\oracle\product\10.2.0\admin\zmmctest\dpdump\
SYS                  ADMIN_DIR                      C:\ADE\aime_vista_ship\oracle/md/admin

已选择10行


再在 c:\etl 里创建数据泵导出文件并编辑,文件名称为expdp01.txt ,内容如下:

 

DIRECTORY=DATA_DIR
USERID=ORABW/ORABW
TABLES=PRODUCTS
CONTENT=ALL
DUMPFILE=expdat.DMP
LOGFILE=LOG_DIR:ETL_LOG.TXT

 

 

执行导出

C:\Documents and Settings\Administrator>expdp parfile=c:\etl\expdp01.txt
Export: Release 10.2.0.3.0 - Production on 星期二, 13 8月, 2013 18:40:05
Copyright (c) 2003, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "ORABW"."SYS_EXPORT_TABLE_01":  parfile=c:\etl\expdp01.txt
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 0 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/COMMENT
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "ORABW"."PRODUCTS"                       120 KB       80 行
已成功加载/卸载了主表 "ORABW"."SYS_EXPORT_TABLE_01"
******************************************************************************
ORABW.SYS_EXPORT_TABLE_01 的转储文件集为:
  C:\ETL\EXPDAT.DMP
作业 "ORABW"."SYS_EXPORT_TABLE_01" 已于 18:40:15 成功完成


这样就把表PRODUCTS的信息导了出来,包括与该表所有有关的对象,具体信息参考上面信息;

然后就可以把导出的包含该表信息的EXPDAT.DMP导入到相应的数据库中;

导入时也可以用一个 parfile文件,也可以用导出的那个;例如:

C:\Documents and Settings\Administrator>impdp parfile=c:\etl\expdp01.txt
Import: Release 10.2.0.3.0 - Production on 星期二, 13 8月, 2013 19:07:40
Copyright (c) 2003, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "ORABW"."SYS_IMPORT_TABLE_01"
启动 "ORABW"."SYS_IMPORT_TABLE_01":  parfile=c:\etl\expdp01.txt
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "ORABW"."PRODUCTS"                       120 KB       80 行
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/COMMENT
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "ORABW"."SYS_IMPORT_TABLE_01" 已于 19:07:45 成功完成


Ok,到此告一段落。


 

-----------------------------------------------------------------------------------------------------------------------

博文所有内容均属原创,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

Blog:    http://blog.csdn.net/perfect_db

Email:   perfect_db@sina.com

   QQ:   787266309



posted on 2013-08-13 19:36  you Richer  阅读(464)  评论(0编辑  收藏  举报