一、概述
- 什么是dmp文件?
dmp文件主要是从数据库导出的一种文件 - 它主要用来做什么的?
主要作用就是用来备份数据库 - 利用什么方式进行导入、导出呢?
一般会用exp命令来导出,用imp命令来导入也就是恢复数据库。
二、操作
- 需求
将由Oracle其他库已导出的dmp文件导入到Oracle生产库(dmp文件是从远端服务器主机上进行下载的) - 问题
当我通过PL/SQL工具中Import Tables加载本地事先下载好的文件,点击Import按钮后,Log日志显示导入错误信息,具体如图片所示:
说明:因为我安装的数据库是Oracle 11g的,事先从别的库导出来的dmp文件版本是Oracle 12c的,所以将12c的文件(高版本)导入到11g(低版本)库中是不兼容的,但将低版本的文件导入到高版本的库中是可以兼容的。 - 解决办法
(1)我们可以通过安装AlxcTools工具来转换版本就可以轻松愉悦的解决
(2)想要下载的小伙伴可以点击此处进行下载,欢迎点击此处 - 补充
我们除了可以采用PL/SQL工具栏中Import Tables进行导入,我们一般常用做法是通过命令行进行dmp文件的导入
SERVICE_NAME(服务名)以及DATABASE(数据库名)都可以通过本地C:\Oracle\app\menglei\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora文件里面找到(此处是我的本地路径)
//tables=()括号中写入要导入库中的哪几个表名称,你可以指定
imp SERVICE_NAME@DATABASE file=C:\TEMP_ENB.dmp fromuser=gis touser=gis tables=(TEMP_11_BX, TEMP_12_BX)
注意:
- 接下来我来演示一下怎么通过cmd命令行进行操作
(1)command + R,打开cmd窗口
(2)将上述imp命令粘贴到窗口中,点击回车。这个时候会提示输入口令(该口令为你要将dmp文件导入生产库的密码,不要理解错;我刚开始以为是我安装的oracle时候,当时设置的用户口令,但是我还将这个口令忘记了)
在这里记录一下,如有需要的小伙伴可以参考:
若Oracle忘记密码怎么办?
打开cmd,输入sqlplus /nolog,回车;
输入“conn / as sysdba”;
输入“alter user sys identified by 新密码”
- 总结
以上就是我在工作当中,所遇到的一些问题。如果我的文章对您有一丢丢的帮助,对于我来说都是在不断前行过程中莫大的欣慰,如果哪块内容有不对地方也希望得到大家的指点,最后希望我和大家一起加油、进步!!!