Oracle impdp参数说明和导入数据库的SQL语句写法
一、impdp导入数据库的SQL写法
1、按用户导入schemas=SYSTEM,数据库名EFMIS
impdp system/orcl@orcl (@orcl 可以不加) dumpfile=EFMIS.DMP directory=tian schemas=SYSTEM;
2、并行进程PARALLEL
impdp system/orcl@orcl (@orcl 可以不加) dumpfile=EFMIS.DMP directory=tian parallel=40 job_name=SYSTEM;
3、按表名导入
impdp system/orcl@orcl (@orcl 可以不加) tables=name,age dumpfile=EFMIS.DMP directory=tian;
4、按查询条件导入
impdp system/orcl@orcl (@orcl 可以不加) tables=name,age dumpfile=EFMIS.DMP directory=tian;
5、导入整个数据库
impdp system/orcl@orcl (@orcl 可以不加) directory=tian dumpfile=EFMIS.DMP full=y;
6、按表空间导入
impdp system/orcl@orcl (@orcl 可以不加) tablespaces=name,age dumpfile=EFMIS.DMP directory=tian;
以上如果想要连log日志一起导入,直接在dumpfile=EFMIS.DMP后加上logfile=EFMIS.LOG即可
如果数据表中表已经存在,会提示错误,在后面加上ignore=y就可以了
例如:impdp system/orcl@orcl (@orcl 可以不加) dumpfile=EFMIS.DMP logfile=EFMIS.LOGdirectory=tian full=y;
程序报错:expdp ORA-14460: only one COMPRESS or NOCOMPRESS clause may be specified
如果程序导入报错可以加入:TRANSFORM=segment_attributes:n
impdp参数表:
参数名称 | 默认值 | 设置格式 | 说明 |
ATTACH | | ATTACH= [schema_name.]job_name | 设置客户会话与已存在的作业之间的关联 |
CONTENT | ALL | CONTENT= {ALL|DATA_ONLY|METADATA_ONLY} | 设置要导出的内容,设置为ALL时,会导入对象定义及其数据;设置为DATA_ONLY时,只导入数据;设置为METADATA_ONLY时,只导入对象定义 |
DIRECTORY | | DIRECTORY=’文件目录’ | 指定导入文件的目录 |
DUMPFILE | expdat.dmp | DUMPFILE=’文件名称.dmp’ | 指定导出文件名称 |
ESTIMATE | BLOCKS | BLOCKS|STATISTICS | 设置计算磁盘空间的方法 |
ESTIMATE_ONLY | N | ESTIMATE_ONLY={Y|N} | 只估算导出操作所需要的表空间,而不执行导出 |
EXCLUDE | | EXCLUDE=对象类型.对象名称 | 设置不导入的对象 |
FLASHBACK_SCN | | FLASHBACK_SCN=SCN号 | 只导入SCN时刻的表数据 |
FLASHBACK_TIME | | FLASHBACK_TIME= ”TO_TIMESTAMP(time-value)” | 只导入指定时间的表数据 |
FULL | N | FULL=Y | 是否导入整个导出文件的全部数据库 |
HELP | N | HELP=Y | 是否显示IMPDP命令参数的帮助信息 |
INCLUDE | | INCLUDE= Object_type[:name_clause][,…] | 设置要导入的对象,这个选项不能和EXCLUDE同时使用 |
JOB_NAME | SYS_EXPORT_ <mode>_NN | JOB_NAME=作业名称 | 设置导入作业的名称 |
LOG_FILE | export.log | LOGFILE= [directory_object:]file_name | 设置导入日志文件的名称 |
NETWORK_LINK | | NETWORK_LINK= source_database_link | 设置执行导入操作的数据库链名 |
NOLOGFILE | N | NOLOGFILE={Y|N} | 禁止生成导入日志文件 |
PARALLEL | 1 | PARALLEL=参数 | 设置并行导入的并行进程个数 |
PARFILE | | PARFILE= [directory_path]file_name | 使用参数文件设置参数 |
QUERY | | QUERY= [schema.][table_name:]query_clause | 在这个选项中指定WHERE条件诗句,使IMPDP只导入这个查询结果的数据 |
REMAP_DATAFILE | | REMAP_DATAFILE= source_datafile:target_datafile | 将源数据文件转变为目标数据文件名,在不同平台之间移动表空间时使用这个参数 |
REMAP_SCHEMA | | REMAP_SCHEMA= source_schema:target_schema | 将源方案的所有对象导入到目标方案中 |
REMAP_TABLESPACE | | REMAP_TABLESPACE= Source_tablespace:target_tablespace | 将源表空间的所有对象移到目标表空间中 |
REUSE_DATAFILES | N | REUSE_DATAFILES={Y|N} | 是否覆盖已存在的数据文件,设置为N时不覆盖 |
SCHEMAS | 当前登录用户 | SCHEMAS=方案名称[,…] | 方案导入时要导入的方案 |
SKIP_UNUSABLE_INDEXES | N | SKIP_UNUSABLE_INDEXES={Y|N} | 是否导入不能使用的索引 |
TABLES | | TABLES= [schema_name.]table_name [:partition_name][,…] | 表导出时要导出的表名称 |
SQLFILE | | SQLFILE= [directory_object:]file_name | 将导入过程中需要执行的DDL诗句写到指定的SQL脚本文件中 |
STATUS | 0 | STATUS=[整数] | 显示导入作业进程的详细状态 |
STREAMS_CONFIGURATION | Y | STREAMS_CONFIGURATION={Y|N} | 设置是否要导入流源数据(Stream Metadata) |
TABLE_EXISTS_ACTION | SKIP | TABLE_EXISTS_ACTION= {SKIP|APPEND|TRUNCATE|REPLACE} | 设置当表已经存在时应该执行的操作,SKIP表示跳过这张已存在的表,处理下一个对象;APPEND表示为表追加数据;TRUNCATE表示截断表,并为其追加数据;REPLACE表示删除已存在的表,重新建立表并添加数据 |
TABLES | | TABLES= [schema_name.]table_name [:partition_name] | 设置要导入的表名 |
TABLESPACES | | TABLESPACES= Tablespace_name[,…] | 表空间导入时要导入的表空间名称 |
TRANSFORM | | TRANSFORM= Transform_name:value[:object_type] | 设置是否修改建立对象的DDL语句 |
TRANSPORT_DATAFILES | | TRANSPORT_DATAFILES= datafile_name | 指定移动表空间时要导入到目标数据库的数据文件名称 |
TRANSPORT_TABLESPACES | | TRANSPORT_TABLESPACES= Tablespace_name[,…] | 进行表空间模式导入 |
TRANSPORT_FULL_CHECK | N | TRANSPORT_FULL_CHECK={Y|N} | 检查表空间之间的关联关系,这个值设置为y时,只要已移动的表空间和未移动的表空间存在关联关系,就提示出错;设置为N时,只检查单方依赖,例如如果索引表空间移动了,而基表表空间未移动,会出现错误消息。但如果基表移动了,而索引表空间未移动,则不提示出错 |
VERSION | COMPATIBLE | VERSION={COMPATIBLE |LATEST|version_string} | 指定目标数据库的数据库版本 |