ITPub博客

首页 > 数据库 > Oracle > exp/imp和expdp/impdp区别以及应用实例

exp/imp和expdp/impdp区别以及应用实例

原创 Oracle 作者:风行年华 时间:2014-04-24 11:51:29 0 删除 编辑
由于需要把部分用户的数据迁移到另外一台服务器上面,所有优先考虑了exp/imp命令导入导出,结果出现了EXP-00104: datatype (BINARY_FLOAT) of column BF in table SYSTEM.TEST_BINARY_FLOAT is not supported, table will not be exported这样的错误,由于在10g之后就引入了expdp这样比exp更好的工具,现在就考虑了使用expdp来进行导出。
expdp之于exp的优势在于花费时间要少,导出的文件要小,另外就像上面所述对文件属性有更大的支持。
1、对于exp/imp导出语句是这样的:
exp username/password@ip/sid file=/tmp/140423.dmp  full=y
scp /tmp/140423.dmp  root@ip1:/home/oracle/
imp username/password@ip/sid  file=/home/oracle/140423.dmp full=Y   这样就是把该用户下所有的数据都给拷贝过来了。
其他的一些资料可以查看exp  help=y:

You can let Export prompt you for parameters by entering the EXP
command followed by your username/password:

     Example: EXP SCOTT/TIGER

Or, you can control how Export runs by entering the EXP command followed
by various arguments. To specify parameters, you use keywords:

     Format:  EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
     Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
               or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

USERID must be the first parameter on the command line.

Keyword    Description (Default)      Keyword      Description (Default)
--------------------------------------------------------------------------
USERID     username/password          FULL         export entire file (N)
BUFFER     size of data buffer        OWNER        list of owner usernames
FILE       output files (EXPDAT.DMP)  TABLES       list of table names
COMPRESS   import into one extent (Y) RECORDLENGTH length of IO record
GRANTS     export grants (Y)          INCTYPE      incremental export type
INDEXES    export indexes (Y)         RECORD       track incr. export (Y)
DIRECT     direct path (N)            TRIGGERS     export triggers (Y)
LOG        log file of screen output  STATISTICS   analyze objects (ESTIMATE)
ROWS       export data rows (Y)       PARFILE      parameter filename
CONSISTENT cross-table consistency(N) CONSTRAINTS  export constraints (Y)

OBJECT_CONSISTENT    transaction set to read only during object export (N)
FEEDBACK             display progress every x rows (0)
FILESIZE             maximum size of each dump file
FLASHBACK_SCN        SCN used to set session snapshot back to
FLASHBACK_TIME       time used to get the SCN closest to the specified time
QUERY                select clause used to export a subset of a table
RESUMABLE            suspend when a space related error is encountered(N)
RESUMABLE_NAME       text string used to identify resumable statement
RESUMABLE_TIMEOUT    wait time for RESUMABLE
TTS_FULL_CHECK       perform full or partial dependency check for TTS
VOLSIZE              number of bytes to write to each tape volume
TABLESPACES          list of tablespaces to export
TRANSPORT_TABLESPACE export transportable tablespace metadata (N)
TEMPLATE             template name which invokes iAS mode export

imp help=y:
Example: IMP SCOTT/TIGER

Or, you can control how Import runs by entering the IMP command followed
by various arguments. To specify parameters, you use keywords:

     Format:  IMP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
     Example: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
               or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

USERID must be the first parameter on the command line.

Keyword  Description (Default)       Keyword      Description (Default)
--------------------------------------------------------------------------
USERID   username/password           FULL         import entire file (N)
BUFFER   size of data buffer         FROMUSER     list of owner usernames
FILE     input files (EXPDAT.DMP)    TOUSER       list of usernames
SHOW     just list file contents (N) TABLES       list of table names
IGNORE   ignore create errors (N)    RECORDLENGTH length of IO record
GRANTS   import grants (Y)           INCTYPE      incremental import type
INDEXES  import indexes (Y)          COMMIT       commit array insert (N)
ROWS     import data rows (Y)        PARFILE      parameter filename
LOG      log file of screen output   CONSTRAINTS  import constraints (Y)
DESTROY                overwrite tablespace data file (N)
INDEXFILE              write table/index info to specified file
SKIP_UNUSABLE_INDEXES  skip maintenance of unusable indexes (N)
FEEDBACK               display progress every x rows(0)
TOID_NOVALIDATE        skip validation of specified type ids
FILESIZE               maximum size of each dump file
STATISTICS             import precomputed statistics (always)
RESUMABLE              suspend when a space related error is encountered(N)
RESUMABLE_NAME         text string used to identify resumable statement
RESUMABLE_TIMEOUT      wait time for RESUMABLE
COMPILE                compile procedures, packages, and functions (Y)
STREAMS_CONFIGURATION  import streams general metadata (Y)
STREAMS_INSTANTIATION  import streams instantiation metadata (N)
DATA_ONLY              import only data (N)
VOLSIZE                number of bytes in file on each volume of a file on tape

The following keywords only apply to transportable tablespaces
TRANSPORT_TABLESPACE import transportable tablespace metadata (N)
TABLESPACES tablespaces to be transported into database
DATAFILES datafiles to be transported into database
TTS_OWNERS users that own data in the transportable tablespace set

以上属性个别比较好使的:
tables=(table1,table2)
query=\”where docid =100\”    或者  query=’where docid =100’   或者query=’’where docid =100’’
其他类似。
2、对于expdp/impdp相关资料如下:
      A服务器: 首先进入sqlplus创建一个目录:
                     create or replace directory expidras ‘/tmp';
                     给用户授权对目录的权限;
                     grant read,write ondirectory expdir to users;
                     然后exit在$里面导出scott用户对象   
                     expdp username/password@ip/sid dumpfile=140423.dmp  directory=expdir      schemas=username
      B服务器: impdp username/password@ip/sid dumpfile=140423.dmp  directory=dump_file                                           SCHEMAS=username   logfile=import.log cluster=N
      这样用户名为username的数据就算是导入到了B服务器里面去了。
第一次在导数据的时候出现了一个问题:
ORA-31693: Table data object "" failed to load/unload and is being skipped due to error:
ORA-31640: unable to open dump file "/tmp/140423.dmp" for read
ORA-19505: failed to identify file "/tmp/140423.dmp"
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
查找了许多资料看到:11g R2的IMPDP 增加了一个参数设置:CLUSTER,在设置了parallel参数>1的情况下, 可以支持多个节点的同时导入工作.默认的值是y。只要改回来就咩有问题了。
   一些小结总结下:1、expdp help=y

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


The Data Pump export utility provides a mechanism for transferring data objects
between Oracle databases. The utility is invoked with the following command:

   Example: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

You can control how Export runs by entering the 'expdp' command followed
by various parameters. To specify parameters, you use keywords:

   Format:  expdp KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
   Example: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
               or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

USERID must be the first parameter on the command line.

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

The available keywords and their descriptions follow. Default values are listed within square brackets.
ATTACH

1ATTACH

    该选项用于在客户会话与已存在导出任务之间建立关联.语法如下

    ATTACH=[schema_name.]job_name

    Schema_name指定方案名,job_name指定作业名.如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:

    Expdp scott/tiger ATTACH=scott.export_job

 

2CONTENT

    该选项用于指定要导出的内容.默认值为ALL

    CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

    设置CONTENTALL,将导出对象定义及其所有数据.DATA_ONLY,只导出对象数据,METADATA_ONLY,只导出对象定义。

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump CONTENT=METADATA_ONLY

 

3 DIRECTORY

指定dump文件和日志文件所在的目录,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录。

 

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

先在对应的位置创建物理文件夹,如D:/backup

建立目录并授予相应用户对目录的读写权限:

    SQL> create or replace directory backup as d:/backup;

    SQL> grant read,write on directory backup to SYSTEM;

 

4 DUMPFILE

    用于指定dump文件的名称,默认名称为expdat.dmp

    DUMPFILE=[directory_object:]file_name [,.]

    Directory_object用于指定目录对象名,file_name用于指定转储文件名.如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象:

Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp

 

5ESTIMATE

    指定估算被导出表所占用磁盘空间的方法.默认值是BLOCKS

        EXTIMATE={BLOCKS | STATISTICS}

    设置为BLOCKS,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS,根据最近统计值估算对象占用空间:

Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump

6. EXTIMATE_ONLY

    指定是否只估算导出作业所占用的磁盘空间,默认值为N

        EXTIMATE_ONLY={Y | N}

    设置为Y,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,N,不仅估算对象所占用的磁盘空间,还会执行导出操作.

    Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

7. EXCLUDE

    该选项用于指定执行操作时要排除对象类型或相关对象

        EXCLUDE=object_type[:name_clause] [,.]

    Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDEINCLUDE不能同时使用。

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW

8. FILESIZE

    指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)

9. FLASHBACK_SCN

    指定导出特定SCN时刻的表数据。FLASHBACK_SCN=scn_value

    Scn_value用于标识SCN.FLASHBACK_SCNFLASHBACK_TIME不能同时使用:

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=358523

10. FLASHBACK_TIME

    指定导出特定时间点的表数据

    FLASHBACK_TIME=TO_TIMESTAMP(time_value)

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME= TO_TIMESTAMP(25-08-2004 14:35:00,DD-MM-YYYY HH24:MI:SS)

11. FULL

    指定数据库模式导出,默认为N FULL={Y | N} 。为Y,标识执行数据库导出.

12. HELP

    指定是否显示EXPDP命令行选项的帮助信息,默认为N。当设置为Y,会显示导出选项的帮助信息. Expdp help=y

13. INCLUDE

    指定导出时要包含的对象类型及相关对象。INCLUDE = object_type[:name_clause] [, ]

14. JOB_NAME

    指定要导出作用的名称,默认为SYS_XXX JOB_NAME=jobname_string

15. LOGFILE

    指定导出日志文件的名称,默认名称为export.log

        LOGFILE=[directory_object:]file_name

    Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log

16. NETWORK_LINK

    指定数据库链接名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.

17. NOLOGFILE

    该选项用于指定禁止生成导出日志文件,默认值为N.

18. PARALLEL

指定执行导出操作的并行进程个数,默认值为1

19. PARFILE

    指定导出参数文件的名称。PARFILE=[directory_path] file_name

20. QUERY

    用于指定过滤导出数据的where条件

        QUERY=[schema.] [table_name:] query_clause

    Schema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用. 

    Expdp scott/tiger directory=dump dumpfiel=a.dmp Tables=emp query=WHERE deptno=20

21. SCHEMAS

    该方案用于指定执行方案模式导出,默认为当前用户方案.

22. STATUS

    指定显示导出作用进程的详细状态,默认值为0

23. TABLES

    指定表模式导出

        TABLES=[schema_name.]table_name[:partition_name][,]

    Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.

24. TABLESPACES

    指定要导出表空间列表

25. TRANSPORT_FULL_CHECK

    该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N. 当设置为Y,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.

26. TRANSPORT_TABLESPACES

    指定执行表空间模式导出

27. VERSION

    指定被导出对象的数据库版本,默认值为COMPATIBLE.

    VERSION={COMPATIBLE | LATEST | version_string}

    COMPATIBLE,会根据初始化参数COMPATIBLE生成对象元数据;LATEST,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.

IMPDP命令行选项与EXPDP有很多相同的,不同的有:

1REMAP_DATAFILE

    该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.

    REMAP_DATAFIEL=source_datafie:target_datafile

2REMAP_SCHEMA

    该选项用于将源方案的所有对象装载到目标方案中.

    REMAP_SCHEMA=source_schema:target_schema

3REMAP_TABLESPACE

    将源表空间的所有对象导入到目标表空间中

    REMAP_TABLESPACE=source_tablespace:target_tablespace

4REUSE_DATAFILES

    该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N

    REUSE_DATAFIELS={Y | N}

5SKIP_UNUSABLE_INDEXES

    指定导入是是否跳过不可使用的索引,默认为N

6SQLFILE

    指定将导入要指定的索引DDL操作写入到SQL脚本中。

    SQLFILE=[directory_object:]file_name

    Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql

7STREAMS_CONFIGURATION

    指定是否导入流元数据(Stream Matadata),默认值为Y.

8TABLE_EXISTS_ACTION

    该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP

        TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }

    当设置该选项为SKIP,导入作业会跳过已存在表处理下一个对象;当设置为APPEND,会追加数据,TRUNCATE,导入作业会截断表,然后为其追加新数据;当设置为REPLACE,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项

9TRANSFORM

    该选项用于指定是否修改建立对象的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

10TRANSPORT_DATAFILES

    该选项用于指定搬移空间时要被导入到目标数据库的数据文件。

        TRANSPORT_DATAFILE=datafile_name

    Datafile_name用于指定被复制到目标数据库的数据文件

Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp TRANSPORT_DATAFILES=/user01/data/tbs1.f





转自:http://mmxiong.blog.163.com/blog/static/20613301120123244463983/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26773184/viewspace-1148419/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-11-22

  • 博文量
    18
  • 访问量
    41362