今天搭建测试环境,建库后,把生产库的dmp导入到测试库,有几个dmp开始导入两个比较小1G,左右导入第一个没问题,导入第二个说dmp没检测通过,开始以为是dmp有损坏,后来经查是由于导出的dmp是11g库下的,我导入的库是10g,早知道让他们用expdp导出指定版本就省事了,不过还好文件不大1G左右,我用ultraedit打开dmp文件修改了下文件头把 “V11.02.00”替换为“V10.02.01”,再传到服务器,正常导入了,不幸的是这个导入后我发现下面要导入的dmp32G多,这可犯愁了,弄到本地我的ultraedit也打不开这么大的文件啊,而且这么大的文件弄到本地也很耗费时间。
后来经查资料通过linux sed命令即可把第一行改了,命令为:
sed -i '1s/V11.02.00/V10.02.01/' test.dmp --替换第一行出现的字符
注意虽然是修改第一行但是也耗费了10分钟左右的时间,这个命令执行的时候会出现一个临时文件,临时文件一直增长到和test.dmp大小一致后消失,修改完成,我猜应该是sed修改的时候需要对文件进行重组,具体原理自己想吧,不说了,怕说错,这种方法感觉虽然也不是很快,但是我知道的最快的办法了,搞定,正常导入!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20576390/viewspace-769660/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20576390/viewspace-769660/