前言

今天王子要分享的内容是关于Oracle的一个实战内容,Oracle的数据泵。

网上有很多关于此的内容,但很多都是复制粘贴别人的,导致很多小伙伴想要使用的时候不能直接上手,所以这篇文章一定能让你更清晰的理解数据泵。

开始之前王子先介绍一下自己的环境,这里使用的是比较常用的WIN10系统,Oracle数据库也是安装在本机上的,环境比较简单。

数据泵的导入

导入的数据文件可能是别人导出给你的,也可能是你自己导出的,王子这里就是别人导出的,文件名字是YD.DMP。

在进行操作之前,一定要问清楚表空间名字,如果表空间命名不统一,可能会导致导入失败的问题。

所以第一步就是建立表空间,语句如下:

create tablespace VIEWHIGH
datafile 'D:/app/admin/oradata/orcl/VIEWHIGH'
size 1M autoextend on next 50M maxsize unlimited;

这里的datafile路径一般选择你本地oracle的数据文件路径。

之后,我们可以建立一个新的用户来导入数据用,这个用户名也可以提前问好,最好用户名一致,否则需要做一次用户名的映射,这个我们下文再说。

建立用户语句如下:

create user DRGS_INIT
  identified by "vhiadsh"
  default tablespace VIEWHIGH
  profile DEFAULT
  ACCOUNT UNLOCK;

建立用户后需要给用户授权,语句如下:

--给新建用户授DBA权限
grant dba to DRGS_INIT;
grant unlimited tablespace to DRGS_INIT;

接下来我们需要在本地的磁盘中创建一个文件夹,作为数据泵文件夹来使用,同时把DMP文件放入到此文件夹下。

之后使用如下语句创建数据泵:

create directory data_dir as '/usr/oracle' ;-- 注意:windows 路径为反斜杠:c:\oracle

这里的data_dir是我们自定义的名字,导入的时候与它一致即可。

之后就是导入操作了,注意,导入的命令不属于sql哦,打开本地的CMD命令行,输入如下语句即可:

impdp drgs_init/vhiadsh@192.168.1.188/orcl directory=data_dir dumpfile=YD.DMP REMAP_SCHEMA=viewhigh:drgs_init
EXCLUDE=USER logfile=expdp.log

接下来对这条语句做一下解释。

前边就是正常的用户名/密码和oracle数据库地址,directory指定的就是我们自定义的data_dir,dumpfile就是DMP文件名,REMAP_SCHEMA=原用户:现用户,也就是我们前文说到的用户映射,如果用户名一致,则不需要映射,EXCLUDE=USER指的是排除掉用户,因为我们已经自己创建好了用户,所以就把用户排除掉,logfile指定的是日志文件名,执行语句后日志文件会在我们的data_dir路径下。

到这里数据泵的导入就结束了。

数据泵的导出

相比于导入,导出的工作就很简单了。

同导入操作一样,我们也需要创建一个目录,并通过以下语句创建数据泵:

create directory dump_dir as 'e:\dump'; 

之后我们直接执行导出命令就可以了,命令如下:

expdp cospace/123456@orclWG directory=dump_dir file=COSPACE.dmp schemas=cospace logfile=expdp.log

schemas指的是要导出的用户名,dumpfile指的是要导出的DMP文件名,directory指定刚刚自定义的dump_dir,logfile指定日志文件名,执行语句后会在dump_dir路径下。

到这里,数据泵的导出也结束了。

总结

今天王子向大家分享了Oracle数据泵的导入导出的实战过程,内容还是比较简单的,相信小伙伴们可以很容易的上手实践。

如果实践中遇到什么问题可以留言,与王子一起讨论。

往期文章推荐:

JVM专栏

消息中间件专栏

并发编程专栏

Oracle数据泵的导入和导出-LMLPHP

11-24 21:30