dimp 逻辑导入

dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。

dimp 工具名称有两种写法 dimp 和 dimpdp。两者语法完全相同。唯一的区别在于,dimp 导入的文件必须存放在客户端,dexpdp 导入的文件必须存放在服务器端。

3.1 使用 dimp 工具

dimp 工具需要从命令行启动。在 cmd 命令行工具中找到 dimp 所在安装目录/dmdbms/bin,输入 dimp 和参数后回车。参数在下一节详细介绍。

语法如下:

dimp PARAMETER=value { PARAMETER=value }
或
dimpdp  PARAMETER=value { PARAMETER=value }

PARAMETER:dimp 参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。

value:参数取值。

例 将逻辑备份采用 FULL 方式完全导入到用户名和密码为 SYSDBA,IP 地址为 192.168.0.248,端口号为 8888 的数据库。导入文件名为 db_str.dmp,导入的日志文件名为 db_str.log,路径为/mnt/data/dexp。

./dimp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 FILE=db_str.dmp DIRECTORY=/mnt/data/dexp LOG=db_str.log FULL=Y

3.2 dimp 参数一览表

本节提供 dimp 的参数一览表,供用户快速参考。

表3.1 dimp参数一览表
参数 含义 备注
USERID 数据库的连接信息 必选
FILE 输入文件,即dexp导出的文件 必选
DIRECTORY 导入文件所在目录 可选
FULL 导入整个数据库 可选,四者中选其一。缺省为SCHEMAS
OWNER 导入指定的用户名下的模式
SCHEMAS 导入的模式列表
TABLES 表名列表,指定导入的tables名称。不支持对外部表进行导入
PARALLEL 用于指定导入的过程中所使用的线程数目 可选
TABLE_PARALLEL 用于指定导入的过程中每个表所使用的子线程数目 可选。在FAST_LOADY时有效
IGNORE 忽略创建错误 (N)。如果表已经存在则向表中插入数据,否则报错表已经存在。 可选
TABLE_EXISTS_ACTION 需要的导入表在目标库中存在时采取的操作[SKIP| APPEND | TRUNCATE | REPLACE] 可选
FAST_LOAD 是否使用dmfldr进行数据导入(N) 可选
FLDR_ORDER 使用dmfldr是否需要严格按顺序来导数据(Y) 可选
COMMIT_ROWS 批量提交的行数(5000) 可选
EXCLUDE 忽略指定的对象 (CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS)。格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) 可选。例如 EXCLUDE=( CONSTRAINT)
GRANTS 导入权限 (Y)  可选
CONSTRAINTS 导入约束 (Y) 可选
INDEXES 导入索引 (Y) 可选
TRIGGERS 导入触发器(Y 可选
ROWS 导入数据行 (Y) 可选
LOG 日志文件 可选
NOLOGFILE 不使用日志文件(N) 可选
NOLOG 屏幕上不显示日志信息(N) 可选
DUMMY 交互信息处理: 打印(P)。取值Y/N 可选
Y:打印所有交互信息。N:不打印交互信息。
LOG_WRITE 日志信息实时写入文件(N) 可选
PARFILE 参数文件名,如果dimp的参数很多,可以存成参数文件 可选
FEEDBACK 显示每 x (0) 的进度 可选
COMPILE 编译过程, 程序包和函数 (Y) 可选
INDEXFILE 将表的索引/约束信息写入指定的文件 可选
INDEXFIRST 导入时先建索引(N) 可选
REMAP_SCHEMA SOURCE_SCHEMATARGET_SCHEMA SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA 可选
ENCRYPT_PASSWORD 数据的加密密钥 可选。和dexp中的ENCRYPT_PASSWORD设置的密钥一样
ENCRYPT_NAME 数据的加密算法的名称 可选。和dexp中的ENCRYPT_NAME设置的加密算法一样
SHOW/ DESCRIBE 只列出文件内容 (N) 可选
TASK_THREAD_NUMBER 设置dmfldr处理用户数据的线程数目 可选
BUFFER_NODE_SIZE 设置dmfldr读入文件缓冲区大小 可选
TASK_SEND_NODE_NUMBER 用于设置dmfldr发送节点个数[16,65535] 可选
LOB_NOT_FAST_LOAD 如果一个表含有大字段,那么不使用dmfldr,因为dmfldr是一行一行提交的 可选
PRIMARY_CONFLICT 主键冲突的处理方式[IGNORE|OVERWRITE|OVERWRITE2],默认报错 可选
TABLE_FIRST 是否强制先导入表 (缺省N),Y表示先导入表,N正常导入 可选
SHOW_SERVER_INFO 是否显示服务器信息 (缺省N),Y表示显示导出文件对应服务器信息,实际不导入,N表示不显示导出文件对应服务器信息,正常导入 可选
IGNORE_INIT_PARA 不忽略建库参数差异(0), 忽略CASE_SENSITIVE(1),忽略LENGTH_IN_CHAR(2),忽略CASE_SENSITIVE和LENGTH_IN_CHAR(3) 可选
AUTO_FREE_KEY 导入数据完成后, 是否释放密钥(N):是(Y), 否(N) 可选
REMAP_TABLE 格式(SOURCE_SCHEMA.SOURCE_TABLE:TARGET_TABLE),
将SOURCE_TABLE中的数据导入到TARGET_TABLE中
可选
REMAP_TABLESPACE 格式(SOURCE_TABLESPACE:TARGET_TABLESPACE)
将SOURCE_TABLESPACE表空间映射到TARGET_TABLESPACE表空间中
可选
SIMPLE_LOG 导入日志是否使用简要日志(N) 可选
HELP 显示帮助信息 可选

3.3 dimp 参数详解

3.3.1 特殊参数

特殊参数中介绍了必选参数的和最常用的可选参数。

3.3.1.1 USERID

USERID 用于指定数据库的连接信息,必选参数。用法请参考 dexp 中 USERID。

3.3.1.2 FILE

FILE 用于指定明确导入 dexp 导出的文件(可以包含路径)。为必选参数。

语法如下:

FILE=<文件>

例 之前导出的文件路径为:FILE=/mnt/data/dexp/db_str.dmp,那么导入文件可以写成如下所示:

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log DIRECTORY=/mnt/data/dimp

若 FILE 没有指定文件路径,则可在 DIRECTORY 中指定。

说明

如果FILE指定的文件包含生成路径,则忽略DIRECTORY中的路径;
如果FILE没有指定路径时,使用DIRECTORY中指定的路径;
如果FILE和DIRECTORY都没有指定路径,则使用系统当前路径。

3.3.1.3 LOG

LOG 用于明确指定导入的日志文件名称(可以包含路径),可以包含多个文件,用逗号分隔。可选参数。如果不选用 LOG 参数(来明确指定日志文件名称),那么默认导出日志文件名称为 dimp.log。

语法如下:

LOG=<文件名>

例 指定日志文件名为 db_str.log。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dimp
说明

如果LOG指定的文件包含生成路径,则忽略DIRECTORY中的路径;
如果LOG没有指定路径时,使用DIRECTORY中指定的路径;
如果LOG和DIRECTORY都没有指定路径,则使用FILE指定的路径。

LOG 文件记载了导出对象的统计信息。供用户查看导出内容。详细的日志内容和 dexp LOG 中一样,请参考 dexp 的 LOG。

和 LOG 有关的参数还有 NOLOGFILE、NOLOG 和 LOG_WRITE。NOLOGFILE=Y 用于设置不使用日志文件。NOLOG=Y 用于设置不在屏幕上显示日志信息。LOG_WRITE=Y 用于设置日志的实时打印(到日志文件)功能。

3.3.1.4 DIRECTORY

DIRECTORY 用于指定导入文件及日志文件生成的路径。可选参数,缺省为 dimp 所在路径。

语法如下:

DIRECTORY=<path>

<path>:导入文件路径和日志文件生成的路径。

如果 FILE 和 LOG 参数指定的文件包含生成路径,则 FILE 和 LOG 参数中指定的路径将替代 DIRECTORY 所指定的路径;如果 FILE 和 LOG 参数指定的文件未包含路径信息,则导入文件路径和日志生成的文件路径都是 DIRECTORY 指定的路径;如果都没有指定路径,程序将根据当前的运行环境来设置相应的导出路径,一般为当前路径。

例 1 没有指定路径,使用当前路径。

./dimp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y

例 2 指定 FILE 使用/mnt/data/dexp 路径,LOG 使用/mnt/data/dimp 路径。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp
说明

FILE和LOG中指定的路径,优先级高于DIRECTORY中指定的路径;
当FILE和LOG不指定路径时,才使用DIRECTORY指定的路径;
如果都没有指定路径,则使用系统当前路径。

3.3.1.5 四种级别的导入方式

针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导入方式可供选择。一次导出只能指定一种方式。可选参数,缺省为 SCHEMAS。

小窍门

导入方式可以和导出方式不一致。
例如:当导出方式不为FULL时,导入时也可以指定为FULL方式,此时 的FULL会将导出文件包含的全部内容导入到指定的实例中。

3.3.1.5.1 FULL

FULL 方式导入整个数据库。

语法如下:

FULL=Y

例 设置 FULL=Y,导入整个数据库,导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dimp
3.3.1.5.2 OWNER

OWNER 方式导入一个或多个用户拥有的所有对象。

语法如下:

OWNER=<用户名>{,<用户名>}

例 设置 OWNER=USER01,导入用户 USER01 所拥有的对象全部导出。导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
OWNER=USER01 DIRECTORY=/mnt/data/dimp
3.3.1.5.3 SCHEMAS

SCHEMAS 方式的导入一个或多个模式下的所有对象。

语法如下:

SCHEMAS=<模式名>{,<模式名>}

例 设置 SCHEMAS=USER01,导入模式 USER01 模式下的所有对象。导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
SCHEMAS=USER01 DIRECTORY=/mnt/data/dimp
说明

一般情况下,OWNER与SCHEMAS导入导出是相同的。 但是用户可以包含多个模式,在这种情况下SCHEMAS的导入导出是OWNER导入导出的一个子集。

3.3.1.5.4 TABLES

TABLES 方式导入一个或多个指定的表或表分区。导入所有数据行、约束、索引等信息。

语法如下:

TABLES=<表名>{,<表名>}

例 设置 TABLES=table1,table2,导入 table1,table2 两张表的所有数据和信息。导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
TABLES=table1,table2 DIRECTORY=/mnt/data/dimp

和 TABLES 导入有关的参数还有 EXCLUDE,用来指定导入时过滤掉某类对象。

3.3.2 普通参数

3.3.2.1 PARALLEL

PARALLEL 用于指定导入的过程中所使用的线程数目。可选参数,缺省为单线程。如果 CPU 核数为 N 的话,那一般来说 PARALLEL 为 N 或者 N+1 最合适。

语法如下:

PARALLEL=<num>

<num>:线程数。整数类型,取值范围:1~100,缺省为 1。

例 设置 PARALLELl=2 时,则线程数为 2。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dimp PARALLEL=2

3.3.2.2 TABLE_PARALLEL

TABLE_PARALLEL 在 FAST_LOAD 为 Y 时有效,用于指定导入每张表所使用的线程数。可选参数,缺省为单线程。如果 CPU 核数为 N 的话,那一般来说 TABLE_PARALLEL 为 N 或者 N+1 最合适。在 MPP 模式下会转换成单线程。

语法如下:

TABLE_PARALLEL=<num>

\

<num>:线程数。整数类型,取值范围 1~16,缺省值为 1。

例 设置 TABLE_PARALLEL=3 时则线程数为 3。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dimp TABLE_PARALLEL=3

3.3.2.3 IGNORE

IGNORE 指定忽略创建数据库对象(表、类、java 类、domain、sequence、
comment、view、synonym、trigger、package、dblink、user、存储过程/函数、role 对象创建、权限授权语句、索引、约束等)错误。可选参数。缺省为 N,不忽略。

语法如下:

IGNORE=Y/N

Y:忽略导入时所产生的创建数据库对象错误并继续执行。

N:不忽略导入时所产生的创建数据库对象错误,遇到错误即停止执行并报错,缺省值。

3.3.2.4 TABLE_EXISTS_ACTION

TABLE_EXISTS_ACTION 用于要导入的表已经存在时的处理方式。默认为直接报错。

语法如下:

TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]

SKIP:跳过此表。

APPEND:直接向现有表中导入数据

TRUNCATE:先删除现有表中的数据,再向表中导入数据

REPLACE:先删除现有表,再导数据

3.3.2.5 FAST_LOAD

FAST_LOAD 用于设置是否使用 dmfldr 进行数据导入,缺省为 N。

语法如下:

FAST_LOAD=Y/N

Y:是。

N:否,缺省值。

注意

当FAST_LOAD=Y时才可以设置TABLE_PARALLEL参数,否则TABLE_PARALLEL参数无效。

3.3.2.6 FLDR_ORDER

FLDR_ORDER 用于设置使用 dmfldr 时,是否严格按导出顺序来导入数据。可选参数。

语法如下:

FLDR_ORDER=Y/N

Y:表示按照导出顺序来导入数据,缺省值。

N:表示不按照导出顺序来导入,数据的创建为随机生成。

3.3.2.7 COMMIT_ROWS

COMMIT_ROWS 用于设置批量提交的行数,默认为 5000 行。用户可以根据实际情况调整每次提交的行数,以达到性能的最佳点。一般情况下可不设置。可选参数。

语法如下:

COMMIT_ROWS=<num>

<num>:行数。取值范围:1~1000000,缺省为 5000。

3.3.2.8 EXCLUDE

EXCLUDE 用来批量设置导入时忽略的对象种类。可选参数。

语法如下:

EXCLUDE=(<对象种类名>{,<对象种类名>})

<对象种类名>:包括 CONSTRAINTS、INDEXES、ROWS、TRIGGERS、GRANTS。

例 设置 EXCLUDE=(CONSTRAINTS),将当前用户下的 table1、table2 的对象信息导入时不导入约束。

./dimp SYSDBA/SYSDBA FILE=/mnt/data/db_str.dmp LOG=db_str.log
TABLES=table1,table2 EXCLUDE=/(CONSTRAINTS/)DIRECTORY=/mnt/data/dimp

3.3.2.9 GRANTS、CONSTRAINTS、INDEXES、TRIGGERS、ROWS

这些参数用来指定某类对象是否被导入。类别分别为约束、权限、索引、触发器和数据。

语法如下:

GRANTS=Y/N
CONSTRAINTS=Y/N
INDEXS=Y/N
TRIGGERS=Y/N
ROWS=Y/N

GRANTS:设置是否导入权限,可选参数。取值范围:Y/N。Y:导入权限,缺省值;N:不导入权限。

CONSTRAINTS:设置是否导入约束,可选参数。取值范围:Y/N。Y:导入约束,缺省值;N:不导入约束。

INDEXES:设置是否导入索引,可选参数。取值范围:Y/N。Y:导入索引,缺省值;N:不导入索引。

TRIGGERS:设置是否导入触发器,可选参数。取值范围:Y/N。Y:导入触发器,缺省值;N:不导入触发器。

ROWS:设置是否导入数据,可选参数。取值范围:Y/N。Y:导入数据,缺省值;N:不导入数据。

例 设置 ROWS=N 不导入表中的数据。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp NOLOGFILE=Y FULL=Y DIRECTORY=/mnt/data/dimp ROWS=N

3.3.2.10 NOLOGFILE

NOLOGFILE 用于设置是否使用日志文件。可选参数。

语法如下:

NOLOGFILE=Y/N

Y:不使用日志文件。此时即使存在 LOG 参数,LOG 参数也为无效。

N:使用日志文件,缺省值。

例 设置 NOLOGFILE=Y,不使用日志文件。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp NOLOGFILE=Y FULL=Y

3.3.2.11 NOLOG

NOLOG 设置屏幕上是否显示日志信息。可选参数。缺省为 N,显示日志信息。

语法如下:

NOLOG=Y/N

Y:不显示。

N:显示,缺省值。

例 设置 NOLOG=Y 屏幕不显示日志信息。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log NOLOG=Y FULL=Y DIRECTORY=/mnt/data/dimp

3.3.2.12 LOG_WRITE

LOG_WRITE 用于日志信息实时写入日志文件。可选参数。

语法如下:

LOG_WRITE=Y/N

Y:一边将日志内容打印到屏幕上,一边将日志内容写入日志文件。

N:日志内容先在屏幕上全部打印完毕再写入日志文件,缺省值。

3.3.2.13 DUMMY

DUMMY 用于设置交互信息处理。可选参数,缺省使用 P 打印交互信息。

语法如下:

DUMMY=P/Y/N

P:打印交互信息,默认方式。

Y:不打印交互信息,所有交互都按 YES 处理。

N:不打印交互信息,所有交互都按 NO 处理。

3.3.2.14 PARFILE

PARFILE 用于将常用的参数设置保存到文件中,然后使用参数文件 PARFILE 进行导出、导入操作。可选参数。

语法如下:

PARFILE=<path>

<path>:PARFILE 文件的绝对路径。

例 在 dimp 中使用 PARFILE,设置路径 PARFILE=/mnt/data/dimp/para.txt。

./dimp USERID=SYSDBA/SYSDBA PARFILE=/mnt/data/dimp/para.txt

其中,参数文件/mnt/data/dimp/para.txt 的内容如下:

FILE=/mnt/data/dexp/db_str.dmp

LOG=db_str.log

TABLES=table1

DIRECTORY=/mnt/data/dimp

3.3.2.15 FEEDBACK

FEEDBACK 用来指明在导入数据的过程中每间隔多少行打印一次进度信息。可选参数。

当参数缺省时,缺省值为 0,只打印导入表的总行数。

语法如下:

FEEDBACK=<num>

<num>:表间隔的行数。正整数。缺省为 0,只打印导入表的总行数。

例 将文件 dexp.dmp 中的对象和数据导入到数据库时,要求在导出的过程中每隔 100 行打印一次进度信息。

./dimp SYSDBA/SYSDBA FULL=Y FILE=/mnt/data/dexp/dexp.dmp LOG=db_str.log
DIRECTORY=/mnt/data/dimp FEEDBACK=100

3.3.2.16 COMPILE

如果导入时包含过程/函数、视图、物化视图、触发器、类和包,那么导入时会执行一个编译语句(alter...compile)。COMPILE 用于设置是否在导入时,对过程或函数执行编译。

编译相当于执行重建操作,用于检查过程或函数是否还有效。编译成功,说明对象是有效的;编译失败,说明对象不存在或发生改变,导致重建操作失败。编译失败,导入停止。

不编译就不检查有效性,直接导入。

语法如下:

COMPILE=N/Y

Y:执行,缺省值。

N:不执行。

例 导入的过程中含有函数 FUN_01,那么导入时会自动执行如下语句:

alter function "SYSDBA"."FUN_01" compile;

如果不想编译,需要设置 COMPILE=N。

3.3.2.17 INDEXFILE

用于将表的索引/约束创建信息写入指定的文件。

语法如下:

INDEXFILE=<文件>

例 设置 INDEXFILE=/mnt/data/dimp/dimp.log。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
INDEXFILE=/mnt/data/dimp/dimp.log

3.3.2.18 INDEXFIRST

INDEXFIRST 用于设置导入时是否先建索引。可选参数。

创建索引的过程是先遍历数据再创建索引树。数据量比较大时,应该选择 INDEXFIRST=Y,先创建索引再导入数据,这样就避免创建索引之前遍历大量数据而耗费时间;数据量小时,可任意选择。

语法如下:

INDEXFIRST=Y/N

Y:是。

N:否,缺省值。

3.3.2.19 REMAP_SCHEMA

将源模式中的数据导入到目标模式中。可选参数。

语法如下:

<SOURCE_SCHEMA>:<TARGET_SCHEMA>

<SOURCE_SCHEMA>:源模式。如果指定的源模式不存在,则导入到对象原来所在的模式。

<TARGET_SCHEMA>:目标模式。如果目标模式不存在,先创建目标模式,再继续导入。

例 将 SYSDBA 模式中的数据导入到 PRERSON 模式中。

./dimp SYSDBA/SYSDBA FILE=/mnt/data/dexp/imp_exp.dmp DIRECTORY=/mnt/data/dimp
FULL=Y REMAP_SCHEMA=SYSDBA:PERSON

3.3.2.20 ENCRYPT_PASSWORD、ENCRYPT_NAME

如果数据文件是通过加密后得到的,在数据文件导入到数据库时,需要提供加密密钥和加密算法。同时,在 1 个小时内密码只有 10 次错误机会。

语法如下:

ENCRYPT_PASSWORD=<加密密钥>

ENCRYPT_NAME=<加密算法>

<加密密钥>:与导出文件的加密密钥相同。

<加密算法>:与导出文件的加密算法相同。导出加密算法缺省的情况下,此处加密密码可不写。

例 将 2.3.3.15 中导出的数据再导入进来。

./dimp SYSDBA/SYSDBA FILE=/mnt/data/dexp/dk15.dmp LOG=db_str19.log

FULL=Y DIRECTORY=/mnt/data/dimp ENCRYPT_PASSWORD=abcdefg ENCRYPT_NAME=DES_CBC

3.3.2.21 SHOW/DESCRIBE

SHOW/DESCRIBE 用于设置是否打印 dexp 导出的数据文件的内容列表。可选参数。

语法如下:

SHOW=Y/N 
或
DESCRIBE=Y/N

Y:是。

N:否,缺省值。

例 想查看/mnt/data/dexp/中 db_str.dmp 文件的内容列表。

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp SHOW=Y

打印结果如下:

--------------------------------导出文件列表信息--------------------------------

共包含1个文件,文件如下:

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp SHOW=Y

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

- 导出文件为 FULL 方式导出,共包含以下 7 个模式

模式PERSON 含有 4 个表,分别为:

ADDRESS ADDRESS_TYPE PERSON PERSON_TYPE

模式PRODUCTION 含有 7 个表,分别为:

PRODUCT_CATEGORY PRODUCT_SUBCATEGORY PRODUCT LOCATION PRODUCT_INVENTORY
PRODUCT_REVIEW PRODUCT_VENDOR

模式PURCHASING 含有 5 个表,分别为:

VENDOR VENDOR_ADDRESS VENDOR_PERSON PURCHASEORDER_HEADER PURCHASEORDER_DETAIL

模式RESOURCES 含有 4 个表,分别为:

DEPARTMENT EMPLOYEE EMPLOYEE_ADDRESS EMPLOYEE_DEPARTMENT

模式SALES 含有 5 个表,分别为:

CUSTOMER CUSTOMER_ADDRESS SALESPERSON SALESORDER_HEADER SALESORDER_DETAIL

模式SYSDBA 含有 1 个表,分别为:

TAB1

模式OTHER 含有 10 个表,分别为:

DEPARTMENT EMPSALARY ACCOUNT ACTIONS READER READERAUDIT DEPTTAB EMPTAB SALGRADE

COMPANYHOLIDAYS

3.3.2.22 TASK_THREAD_NUMBER

TASK_THEAD_NUMBER 用于设置 dmfldr 处理用户数据的线程数目。可选参数,缺省值为 CPU 个数。但当 CPU 个数大于 8 时,默认值都被置为 8。

语法如下:

TASK_THEAD_NUMBER=<num>

<num>:线程数。取值范围:1~128,缺省为 CPU 个数(8 及 8 以内)。

3.3.2.23 BUFFER_NODE_SIZE

BUFFER_NODE_SIZE 用于设置 dmfldr 指定读取文件缓冲区页大小。可选参数,缺省为 10。

值越大,缓冲区的页数越多,每次可以读取的数据就越多,每次发送到服务器的数据也就越多,效率越高。但其大小受 dmfldr 客户端内存大小限制。

语法如下:

BUFFER_NODE_SIZE=<size_num>

<size_num>:缓冲区页数。整数类型,取值范围:1~2048,缺省为 10。单位为 M。

3.3.2.24 TASK_SEND_NODE_NUMBER

TASK_SEND_NODE_NUMBER 用于设置 dmfldr 发送节点个数。可选参数。

语法如下:

TASK_SEND_NODE_NUMBER=<num>

<num>:节点个数。整数类型,取值范围:16~65535。在系统内存够的情况下可以适当的设大数值以提升效率。缺省情况下,由程序自动计算。

3.3.2.25 LOB_NOT_FAST_LOAD

LOB_NOT_FAST_LOAD 用于设置当表中含有大字段时不使用 dmfldr,而使用普通的 INSERT 进行插入,根据 COMMIT_ROWS 参数决定提交的行数。因为当表中有大字段的时候,dmfldr 是一行一行提交表数据。

语法如下:

LOB_NOT_FAST_LOAD=Y

3.3.2.26 PRIMARY_CONFLICT

PPIMARY_CONFLICT 用于设置主键冲突的处理方式。可选参数,不设置此参数时主键冲突报错,设置时不报错,可指定对主键冲突的数据进行不同的处理。

语法如下:

PRIMARY_CONFLICT=[IGNORE|OVERWRITE|OVERWRITE2]

IGNORE:不覆盖主键冲突行数据。

OVERWRITE:覆盖主键冲突行数据,删除原表有冲突的行。

OVERWRITE2:覆盖主键冲突行数据,更新原表有冲突的行。

3.3.2.27 TABLE_FIRST

TABLE_FIRST 用于控制是否强制先导入表对象。可选参数,缺省为 N。

语法如下:

TABLE_FIRST=Y/N

N:正常导入,缺省值。顺序为:1.没有依赖的对象(除了表之外的数据库对象);2.有依赖的 class;3.表;4.依赖对象。

Y:强制先导入表。顺序为:1.表;2.没有依赖的对象(除了表之外的数据库对象);3.有依赖的 class;4.依赖对象。

3.3.2.28 SHOW_SERVER_INFO

SHOW_SERVER_INFO 用于控制是否显示服务器信息。可选参数,缺省为 N。

语法如下:

SHOW_SERVER_INFO=Y/N

N:不显示导出文件对应服务器信息,正常导入,缺省值。

Y:显示导出文件对应服务器信息,实际不导入。

3.3.2.29 IGNORE_INIT_PARA

IGNORE_INIT_PARA 用于指定源库和目标库之间忽略差异的建库参数。取值范围:0、1、2 和 3。缺省为 0。

0:不忽略;

1:忽略 CASE_SENSITIVE 参数差异;

2:忽略 LENGTH_IN_CHAR 参数差异;

3:忽略 CASE_SENSITIVE、LENGTH_IN_CHAR 参数差异可选参数。

语法如下:

IGNORE_INIT_PARA=<num>

<num>:需要忽略的建库参数代号。取值范围:0、1、2 和 3,缺省为 0。

3.3.2.30 AUTO_FREE_KEY

如果数据文件是通过工作模式为 WORK_MODE_KID 的加密算法加密后得到的,则可通过 AUTO_FREE_KEY 指定在数据导入完成后是否释放加密文件使用的密钥,密钥释放后该数据文件将无法使用。

语法如下:

AUTO_FREE_KEY=Y/N

Y:是。

N:否,缺省值。

3.3.2.31 REMAP_TABLE

将源表中的数据导入到目的表中。可选参数。

语法如下:

[<SOURCE_SCHEMA>].<SOURCE_TABLE>:<TARGET_TABLE>

<SOURCE_SCHEMA>:源表的模式。如果缺省则代表所有模式下的 <SOURCE_TABLE> 都是源表。目的表存在则报错。

<SOURCE_TABLE>:源表。

<TARGET_TABLE>:目的表。

例 将源表 T1 中的数据导入到目的表 T2 中。

./dimp SYSDBA/SYSDBA FILE=/mnt/data/dexp/imp_exp.dmp DIRECTORY=/mnt/data/dimp FULL=Y REMAP_TABLE=T1:T2

3.3.2.32 REMAP_TABLESPACE

将源表空间中的数据导入到目的表空间中。使用该参数的前提是导出文件中包含源表表空间。可选参数。

语法如下:

<SOURCE_TABLESPACE>:<TARGET_TABLESPACE>

<SOURCE_TABLESPACE>:源表空间。

<TARGET_TABLESPACE>:目的表空间。

例 将 MAIN 表空间中的数据导入到 TS 表空间。

./dimp SYSDBA/SYSDBA FILE=/mnt/data/dexp/imp_exp.dmp DIRECTORY=/mnt/data/dimp FULL=Y REMAP_TABLESPACE=MAIN:TS

3.3.2.33 SIMPLE_LOG

SIMPLE_LOG 用于设置导入日志是否只打印简要日志,简要日志只打印导入对象个数和导入表数据行数。可选参数。

语法如下:

SIMPLE_LOG=N/Y

N:导入日志不使用简要日志,缺省值。

Y:导入日志使用简要日志。

3.3.2.34 HELP

输入 dimp HELP 即可查看帮助信息。

语法如下:

HELP

例 使用 HELP 查看帮助信息。

./dimp HELP

HELP 信息会显示 dimp 版本信息以及所有参数的大致信息,供用户快速参考。

微信扫码
分享文档
扫一扫
联系客服