Mac 恢复dmp文件数据到数据库表
软件环境:Mac电脑上安装的docker中安装的并且运行的镜像,参考自该博客docker安装oracle
我所运行安装的oracle版本为:
Oracle Database 11g Express Edition Release 11.2.0.2.0 – 64bit Production
PL/SQL Release 11.2.0.2.0 – Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 – Production
NLSRTL Version 11.2.0.2.0 – Production
安装好以后需要通过语句将电脑上的dmp文件拷贝到docker镜像中相应的目录中
执行步骤:
- 首先需要查看电脑上已经运行过哪些镜像,且启动oracle镜像。
docker ps -a
2. 启动镜像
docker start 3c4b6430ef81
- 将dmp文件拷贝到之前创建的文件夹中
docker cp /Users/qinglutaxue/Desktop/ZKFJJS.dmp
recursing_edison:/u01/app/oracle/product/11.2.0/xe/oracle_test
- 进入镜像,执行导入语句
docker exec -it 3c4b6430ef81 /bin/bash
下面这句imp语句是重点:
imp cox/cox123456 file=/u01/app/oracle/product/11.2.0/xe/oracle_test/ZKFJJS.dmp
buffer=10240000 commit=yes
tables=YBJS_ZHOUKOU1,YBJS_ZHOUKOU2,YBJS_ZHOUKOU3
touser=cox ignore=y
这句im导入语句的写入非常重要,你可能一开始写的是这个语句
imp cox/cox123456 file=/u01/app/oracle/product/11.2.0/xe/oracle_test/ZKFJJS.dmp ignore=y full=y;
但是它大概率可能会运行失败,但是失败他会有提示的。
而上一句imp语句中,buffer指的是扩充的表空间;tables指的是dmp文件中所包含的表明,这个表明可以根据运行失败的提示看到
此时看到如上图所示的 import terminated successfully with warnings.语句的时候,就表示已经导入成功,虽然他还会提示 abnormal end of export file 但是此时查看数据库表,已经有数据了。那么此时目的就达到了。
备注:你可能会用到的。
由于这个dmp是从其他人得到的,所以我使用了UltraEdit 来查看dmp的版本号,发现是
V12版本的,但是由于我安装的是V11的版本,所以我需要在这里将这个版本号修改为V11,然后我才去操作的上述步骤。至于不修改能不能成功还没有进行尝试。
2022年03月18日09:00:45 更新:
亲测,在我的Oracle版本下,如果不对这个dmp文件的版本号进行修改的话,是无法运行成功的。所以如果需要在11版本下导入12c的版本的dmp文件是必须要对版本号进行修改的。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35834.html