简单操作实现Oracle数据导入导出
  

justgonnab Lv9发表于 2019-1-30 11:42

数据库操作难免在我们IT日常运维支持过程中用到,但是其中少不了数据库中数据的导入导出来实现数据库结构化数据的恢复和备份,可以说是简单高效,对用户来说可以通过IMP、EXP、IMPDP、EXPDP等工具实现一键式傻瓜备份与恢复。

接下来就说说数据库的导入和导出。

在Oracle 10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导入导出工具EXPDP和IMPDP。使用EXPDP和IMPDP时应该注意:
EXP和IMP是客户段工具程序,它们既可以在客户端使用,也可以在服务器端使用。
EXPDP和IMPDP是服务端的工具,他们只能在Oracle服务端使用,不能在客户端使用。
IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。
在日常使用中,IMPDP和EXPDP的数据导出速度会快于IMP和EXP,所以数据泵的效率还是非常高的。

那么如果需要导出备份数据我们怎么办?
首先数据库的用户名、密码、地址和SID需要提前知晓,然后就可以执行我们的导出操作了。
先上命令:
EXPDP 用户名/密码@地址/SID DIRECTORY=备份路径 DUMPFILE=备份文件名称  LOGFILE=日志名称

命令其实很简单,提示的部分对号入座即可,然后将其保存在txt文件中,最后修改后缀为.bat执行即可。

但是这样的话不会成功,提示如下:



未命名图片.png


百度一下ora代码就知道问题所在了。这个问题在于Oracle数据库中没有备份路径的目录,需要在Oracle数据库中创建此路径。

打开plsql或者cmd登陆数据库,输入如下命令:
SQL> CREATE DIRECTORY bak AS 'D:\bak'
注:这里的bak是和bat文件同一目录下的一个文件夹。
这样数据库就知道了备份的路径。

再次执行上面的命令就OK了!

记得最后查看下备份日志,看是否报错:



微信截图_20190130112247.png

显示成功完成就没有问题啦,如果有warning的话就得看情况了,Error就很杯具了……

导入数据进行恢复的话其实关键步骤是一样的,创建表空间、创建用户、分配表空间等准备操作就不赘述了,可以查看之前写过的文章。

这里直接上导入命令:
IMPDP 用户名/密码@地址/SID DIRECTORY=导入的dmp包路径 DUMPFILE=dmp包名称 FROMUSER=将要导入的用户名称 TOUSER=导入后的用户名称 LOGFILE=日志名称

当然这样直接使用bat文件或者粘贴到cmd中执行是不可以的,同样需要在Oracle数据库中创建路径(如果路径已知就略过此步骤)。

打开plsql或者cmd登陆数据库,输入如下命令:
SQL> CREATE DIRECTORY dmp AS 'D:\dmp'
注:这里的dmp是和bat文件同一目录下的一个文件夹,其存放将要导入数据库的dmp文件。

最后就可以顺利执行了,当然也不要忘了最后看一眼导入日志。

喜欢这篇分享吗?喜欢就给楼主打点赏吧!点个赞也是极大的鼓励!

发帖可获得5S豆;若您的分享被加精或推荐优秀等,将获得更多S豆奖励,了解更多S豆奖励信息

完善手机号和公司名称,让服务更省心更便捷!立即完善

LaoYang Lv9发表于 2019-2-11 22:54
  
还是第一个占楼的索,分享不错
Luoxiaoxin Lv3发表于 2019-2-12 09:52
  
楼主辛苦,感谢分享
新手492784 Lv1发表于 2019-2-12 17:50
  
楼主辛苦,感谢分享
XZH Lv4发表于 2019-2-14 08:39
  
感谢分享
feeling Lv28发表于 2019-2-14 09:33
  
学习一下
kevinking Lv2发表于 2019-2-14 09:57
  
不错,感谢分享。
rico Lv2发表于 2019-2-14 13:52
  
感谢分享,抽空研究下,学习了
赵无忌 Lv7发表于 2019-2-15 08:44
  
差点以为来到itpub了
厌児 Lv11发表于 2019-2-16 21:21
  
感谢楼主的分享呢