oracle dump只需要,只有一个dump文件,啥信息也没给的前提下怎么去正确导入该dump到oracle数据库...

踩坑过程:客户直接给了一个dump文件,啥信息也没给的前提下怎么去正确导入该dump文件

1.首先预估大约需要多少空间。。dump文件发现该文件大小54个G,保守估计导入后会扩大到一倍,所以新建一个用户,分配一个表空间100G,并分配该用户dba权限(实际其实只需要imp执行权限就行,但是为了避免可能会带来其他因为权限而导致导入时间排查太久,故而一次性到位,直接给dba权限)

06ee5471fa33fc309e162b2122e29ef3.png

2.据排查发现其实oracle利用dump格式导入导出有两套命令,exp/imp 和 expdp/impdp,且必须一一匹配,也就是说源端用exp命令导出的,这边也必须用imp命令导入,反之亦然。

在我们不知道dump文件是用什么命令导出的时候,我们只能去试,大胆去测试就行。

发现用dmp的时候出现如下错误

IMP-00038: Could not convert to environment character set’s handle

IMP-00000: Import terminated unsuccessfully

很重要的两个错误信息,这两个错误信息就告诉我们源端导出的dump文件命令是用的expdp,所以我们导入的时候要用impdp

3.好了问题又来了,可能有的同学会去百度查资料发现,impdp是属于完全相同的库导入导出,需要知道用户名和表空间,建跟源端一样的才能导入,不要急,慢慢来

不管怎样,大胆导一次试下(就用之前开始建好的用户和表空间)

a6d85c614f2193a5adc4ffc1f3d41410.png

好,到此到家就会发现,导入的时候它会提示你的,用户名如果不对,会直接报用户名不存在,这个时候再建一个一摸一样的用户名就行

88cbcc557025b643a53e8f9e6df5a59b.png

紧接着,表空间也给出了错误的信息提示,再把之前建好的表空间名字修改下就行,也不需要重建表空间。

然后接着再往下执行

548f79f8eff9306d2f8200193239ab85.png

至此抽取成功,检查表里数据发现确实已经抽取完成。。

实际抽取命令:impdp 用户名/密码@实例名 directory=dump文件存放的路径的别名 dumpfile=dump文件名

再说下dump文件存放的路径,两种,这边就说一种简单的,常见的就是去查下服务器默认的dump文件存放路径,然后把dump文件放到该目录下,查看方法命令如下

select * from DBA_DIRECTORIES;

2e940c30916fb1c92d62fa7ad408c0f7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值