Oracle逻辑导入数据(IMP/IMPDP)

Oracle逻辑导人数据是逻辑导出数据的逆过程,导人数据可以使用与EXP对应的IMP工具,也可以使用与EMPDP对应的IMPDP工具。本文将分别讲述如何使用IMP和IMPDP工具完成数据的导入工作,Oracle逻辑导入数据经常用来进行备份的恢复和用来做数据迁移,把要迁移的数据进行EXP/EXPDP导出后,再导入到另外一个数据库上。


使用IMP导入数据

IMP导人数据是将数据库中之前使用EXP导出的数据导入到数据库当中。IMP导入的方式也是在DOS命令窗口下完成的,根据不同的DMP文件可以进行不同方式的导入,具体如下:

导入表语法:

imp student/123456@orcl file=d:/student.dmp log=student.log 
fromuser=student touser=teacher TABLES=(stuinfo) buffer=819200

语法解析:

1、使用 imp 导入之前导出student.dmp文件中的学生信息表(stuinfo)。

2、tables指定要导入的表结构,在导入之前要确定dmp文件当中是否含有该表数据。

3、fromuser指定dmp文件中是从student用户导入到目标数据库的teacher用户。在imp导入之前要确定teacher用户下是否已经存在该表,不然会报错。

4、我们选择导入表数据时,会把表相关的索引和触发器一起导入进来。

结果如下:

Oracle逻辑导入数据(IMP/IMPDP)


导入用户语法:

imp student/123456@orcl file=d:/student.dmp log=student.log 
fromuser=student touser=teacher  buffer=819200

语法解析:

1、只需要通过fromuser指定要导出的用户,通过touser指定要导入的用户,就会把该用户中所有的数据对象和数据全部导入。


导入一个完整数据库:

imp student/123456@orcl file=d:/student.dmp log=student.log  
full=y ignore=y buffer=819200

语法解析:

1、通过full=Y指定了要导出的是完整数据库,但是前提DMP数据文件中是导出的全库数据。全库导入一般是用来做数据备份以备恢复使用,或者用来搭建测试环境时使用。


IMPDP导入数据

使用IMPDP导入数据的前提是数据是使用EMPDP导出的,同样也是在DOS窗口下直接输入IMPDP和登录数据库的用户名,即可导人数据。

impdp导到指定用户下:

impdp student/123456@orcl DIRECTORY=dir DUMPFILE=student.dmp  logfile=student_imp.log SCHEMAS=student

语法解析:

1、directory指定的是目录对象,这里的目录对象就是在使用expdp导出时创建的目录对象。

2、dumpfile指定的是要导入的dmp文件,

3、SCHEMAS指定要导入的数据是导入到哪个用户下。


impdp导入表空间:

impdp student/123456@orcl DIRECTORY=dir DUMPFILE=student_tablespace.dmp logfile=student_imp.log TABLESPACES=student

语法解析:

1、tablespaces指定要导入的是表空间下的所有对象和数据,这里导入的表空间为student表空间。


impdp导入数据库:

impdp student/123456@orcl DIRECTORY=dir DUMPFILE=student_full.dmp logfile=student_imp.log full=y

语法解析:

1、full=Y指定要导入的是数据文件中全库数据,包括各种数据库对象。这里前提是dmp文件是全库导出的数据文件。


impdp导入追加数据:

impdp student/123456@orcl DIRECTORY=dir DUMPFILE=student.dmp SCHEMAS=student TABLE_EXISTS_ACTION=append

语法解析:

1、利用 table_exists_action=append指定要导入的dmp文件中,当存在表已经在库里存在的情况下,会直接对表数据进行追加,而不会报错。