ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【EXP IMP】 exp,imp 产生错误数据46588.21 bug(Oracle BUG:2598387)的解决方法

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

原创 Linux操作系统 作者:chicheng_cn421 时间:2011-10-28 06:40:53 0 删除 编辑
早上看到论坛上有位朋友问到 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博客 ” ,链接:https://blog.itpub.net/20335819/viewspace-709819/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-03-05

  • 博文量
    261
  • 访问量
    417490