ORACLE-利用数据泵(expdp\impdp)导出导入用户表

在之前写过的一篇博客里说到如何通过exp和imp导出导入用户表,而在Oracle10g开始,引入了数据泵工具,这种工具包含之前版本的所有的导出导入工具的功能,并且速度更快更安全。
数据泵命令:

  • expdp:导出工具
  • impdp:导入工具

实验目的

将scott用户的表导出,然后导入到hr用户

实验过程

在Oracle10g\11g\12c,为了系统的安全,不允许再使用绝对路径,而是采用了一种映射的方式:绝对路径→目录对象。通过read和write该目录对象,以获取绝对路径的信息。
可以通过以下语句查询系统中目录对象的信息。

select * from dba_directories;

在这里插入图片描述
从上图中可以看到,有一个叫做DATA_PUMP_DIR的目录,该目录对象为expdp的默认目录对象。我们将这个目录对象作为之后导出的dmp文件的存放路径。赋予scott用户read和write该目录对象的权限。

grant read,write on directory DATA_PUMP_DIR to scott;

有了以上的准备工作之后,我们终于可以开始导出用户表数据了。

expdp导出用户表【逻辑备份】

在导出用户表之前,捋一下思路。

  • directory=DATA_PUMP_DIR【dmp文件存放的目录对象名称】
  • dumpfile=scott.dmp【dmp文件名】
  • tables=(ex1,ex2)【导出的表名称】

现在开始导用户表
1、打开cmd
2、运行以下命令:

expdp scott/tiger@Q directory=DATA_PUMP_DIR dumpfile=scott.dmp  tables=(ex1,ex2)

expdp username/password@db_name directory=目录对象名 dumpfile=dmp文件名 tables=(table1,table2)
可以看到在目录对象DATA_PUMP_DIR所指的绝对路径下生成了一个文件名为SCOTT的dmp二进制文件。

impdp导入用户表数据【逻辑恢复】

在导入数据之前,先给用户hr赋予read和write该默认目录对象的权限。

grant read,write on directory DATA_PUMP_DIR to hr;

现在把scott.dmp的数据导入hr用户。
1、打开cmd
2、运行以下命令:

impdp hr/hr@Q remap_schema=scott:hr directory=DATA_PUMP_DIR dumpfile=scott.dmp

impdp username/password@db_name remap_schema=user1:user2 dicectory=目录对象名 dumpfile=dmp文件名
其中remap_schema=user1:user2是指从用户1导入到用户2。可以看到dmp数据已经导入hr用户。

总结

1、在进行逻辑恢复时, 是利用逻辑备份的dmp文件进行的恢复,只能恢复到进行逻辑备份的时刻的数据。在那之后的数据更新不能恢复。
2、要想了解更多的关于expdp和impdp命令的知识,可以在cmd运行以下语句获取:

expdp -help
impdp -help

以上就是利用数据泵导出导入用户表的方法。

发布了23 篇原创文章 · 获赞 8 · 访问量 4121

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/103539663