【EXP IMP】 exp,imp 产生错误数据46588.21 bug(Oracle BUG:2598387)的解决方法

早上看到论坛上有位朋友问到 exp出来数据在imp回数据库时 出现异常的46588.21 数据。
google了一下。问题解决如下;

帖子地址:

那位朋友的问题:
--------------------------
导出脚本:
exp  erk/erk@pen    wner=erk buffer=5242880 file=d:\dddddd.dmp compress=n statistics=none feedback=10000 log=11111111.log

导入脚本:
imp erk/erk@orcle  file=d:\dddddd.dmp   log=11111111.log  fromuser=erk  touser=erk

问题:
       导出的数据导入到其他9i数据库里出现部分数据字段原来数据为“0”,变成了 46588.21    ,字段类型  number(18,4)。其他一切正常。


昨天晚上测试发现,exp的时候 , 如果buffer设置的话就会有这个问题,具体原因不知道,大家帮我看看,我想就算我参数有问题最多备份不成功或者不能恢复啊?也不会修改我的数据啊?
现在最重要的是过去我们数据备份都是这样备份的,如果将来要恢复数据怎么才能恢复成正常的。 求求高人给看看

--------------------------

问题解决回复如下:
-----------------------
刚才google了一下,看到anbob老师已经在他的网站上给出问题分析和解决方案了
是oracle exp 的一个bug,[BUG:2598387]
是由于你在exp时设置了过大的buffer参数,引发了这个bug、
exp时去掉buffer参数 这个问题可以解决。

在oracle的8.1.7.3、8.1.7.4、9.0.1.4、9.2.0.1、9.2.0.2这几个版本会有这个问题。
另外,官方给出的解决方案是在执行exp命令导出之前,设置一下环境变量 ORA_OCI_NO_OPTIMIZED_FETCH to 1

E.g.:
UNIX csh:
setenv ORA_OCI_NO_OPTIMIZED_FETCH 1
UNIX sh,ksh,bash:
ORA_OCI_NO_OPTIMIZED_FETCH=1; export ORA_OCI_NO_OPTIMIZED_FETCH
Windows:
set ORA_OCI_NO_OPTIMIZED_FETCH=1
OpenVMS:
define/job ORA_OCI_NO_OPTIMIZED_FETCH 1

anbob老师问题解答的网页地址如下,可以看看。
http://www.anbob.com/?p=1189



原文地址: http://www.anbob.com/?p=1189

今天在pub上看到一个问题,描述是这样的

导出脚本:
exp  erk/erk@pen    wner=erk buffer=5242880 file=d:\dddddd.dmp compress=n statistics=none feedback=10000 log=11111111.log
导入脚本:
imp erk/erk@orcle file=d:\dddddd.dmp   log=11111111.log  fromuser=erk  touser=erk
问题:
导出的数据导入到其他9i数据库里出现部分数据字段原来数据为“0”,变成了 46588.21    ,字段类型  number(18,4)。其他一切正常。而且去掉buffer参数,一切变的正常
我网上要了一下原因,发现了这篇文章,记录一下,随是英文但是你也要硬着看,好文章呀

ALERT: EXPORT with large BUFFER can silently produce a dump file with corrupted data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Versions Affected
~~~~~~~~~~~~~~~~~
Export Utility (EXP)
8.1.7.3
8.1.7.4
9.0.1.4
9.2.0.1
9.2.0.2

Please note: Versions 9.0.1.0 – 9.0.1.3 and 8.1.7.0 – 8.1.7.2 have not been tested but are expected
to be affected by this problem.

Platforms Affected
~~~~~~~~~~~~~~~~~~
GENERIC

Description
~~~~~~~~~~~
After the export (EXP) process, t e produced dump file may contain
corrupted data. See [BUG:2598387] WRONG DATA ON IMPORT AFTER EXPORT VIA CONVENTIONAL PATH

Likelihood of Occurrence
~~~~~~~~~~~~~~~~~~~~~~~~
Export with large BUFFER causing data corruption.
The problem could occur when the following formula is satisfied:

BUFFER_SIZE 65535
———– >= —–
ROW_LENGTH 2

Possible Symptoms
~~~~~~~~~~~~~~~~~
The problem causes incorrect data to be loaded in the database when a dump is imported.
The problem occurs silently and so there are no errors during the export.

Workaround
~~~~~~~~~~
Before export set the environment variable ORA_OCI_NO_OPTIMIZED_FETCH to 1.
E.g.:
UNIX csh:
setenv ORA_OCI_NO_OPTIMIZED_FETCH 1
UNIX sh,ksh,bash:
ORA_OCI_NO_OPTIMIZED_FETCH=1; export ORA_OCI_NO_OPTIMIZED_FETCH
Windows:
set ORA_OCI_NO_OPTIMIZED_FETCH=1
OpenVMS:
define/job ORA_OCI_NO_OPTIMIZED_FETCH 1

Patches
~~~~~~~
No patches are currently available.

Patch for [BUG:2410612] does not solve this issue.

References
~~~~~~~~~~
WRONG DATA ON IMPORT AFTER EXPORT VIA CONVENTIONAL PATH [BUG:2598387]


以上。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20335819/viewspace-709819/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/20335819/viewspace-709819/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值