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
 
 
 
 
                    
                 
                
            
         
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号