ORA-03120: two-task conversion routine: integer overflow

今天在导入imp数据库对象的时候,碰到一个错误:"ORA-03120: two-task conversion routine: integer overflow",查询metalink此问题为9.2.0.8.0平台的一个bug。
解决办法有两个:
1.To implement the solution, it will be necessary to apply the one-off patch for Bug 5671074 to the 9.2.0.8 database.
2.客户端用9.2.0.8.0导入也可以解决这个问题。
问题重现:

1. 9.2.0.1.0客户端导出9.2.0.7.0的数据库下的owner
$ exp leiz/ecc@db_9208 file=./leiz.dmp wner=leiz
Connected to: Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
Note: grants on tables/views/sequences/roles will not be exported
About to export specified users ...
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user leiz
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user leiz
About to export leiz's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export leiz's tables via Conventional Path ...
. . exporting table                    "ARAP_DJLX"         13 rows imported
. . exporting table              "SM_USERANDCLERK"          4 rows imported
. . exporting table           "SM_USER_MANAGEROLE"        379 rows imported
. . exporting table                 "SM_USER_ROLE"       1694 rows imported
. . exporting table              "SQLEXPERT_PLAN1"          0 rows imported
. . exporting table              "TOAD_PLAN_TABLE"        629 rows imported
. . exporting table                                                       
. . exporting table                  "XX_EXSYSTEM"          1 rows imported
. . exporting table                "XX_EXSYSTEM_B"          1 rows imported
. . exporting table              "XX_IDCONTRASTPK"    3303732 rows imported
. . exporting table                      "XX_XLOG"    1670747 rows imported
. exporting synonyms
. exporting views
. exporting stored procedures
. exporting operators
. exporting referential integrity constraints
. exporting triggers
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully without warnings.

2. 9.2.0.1.0客户端导入(同一台客户端) 导入9.2.0.8 数据库服务器
$ imp ecc_view/ecc@leiz file=./leiz.dmp fromuser=leiz touser=ecc_view
Connected to: Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
Export file created by EXPORT:V09.02.00 via conventional path
Warning: the objects were exported by leiz, not by you
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. . importing table                    "ARAP_DJLX"         13 rows imported
. . importing table              "SM_USERANDCLERK"          4 rows imported
. . importing table           "SM_USER_MANAGEROLE"        379 rows imported
. . importing table                 "SM_USER_ROLE"       1694 rows imported
. . importing table              "SQLEXPERT_PLAN1"          0 rows imported
. . importing table              "TOAD_PLAN_TABLE"        629 rows imported
.....
. . importing table                  "XX_EXSYSTEM"          1 rows imported
. . importing table                "XX_EXSYSTEM_B"          1 rows imported
. . importing table              "XX_IDCONTRASTPK"    3303732 rows imported
. . importing table                      "XX_XLOG"    1670747 rows imported
About to enable constraints...
IMP-00003: ORACLE error 3120 encountered
ORA-03120: two-task conversion routine: integer overflow
IMP-00003: ORACLE error 3120 encountered
ORA-03120: two-task conversion routine: integer overflow
IMP-00000: Import terminated unsuccessfully

    刚刚碰到这个错误的时候,以为是客户端的问题,但是在不同版本之间进行数据导入的2个规则我都满足:
规则1.   低版本的exp/imp客户端可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp客户端不能连接到低版本的数据库服务器。
规则2.   高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件),没有问题啊,那我尝试把9.2.0.1.0的客户端换成了9.2.0.7.0的exp导出的数据库的那台服务器,但是重复imp操作后,问题仍然重现。查了metalink,原因是9.2.0.8.0平台的一个bug:
    After applying the 9.2.0.8 patchset, compilation of functions and/or materialized view refreshes that reference remote databases via database links start failing. It can occur for any PL/SQL that references a remote object via database link where the 'Endianness' of the two platforms differs. If one platform. is 'Big-Endian', and another platform. is 'Little-Endian', then this bug can be triggered between them.
   
To resolve ORA-03120, this solution is given:To implement the solution, it will be necessary to apply the one-off patch for Bug 5671074 to the 9.2.0.8 database.

3.用9.2.0.8.0客户端导入9.2.0.8.0数据库服务器,问题解决。
$ imp ecc_view/ecc@leiz file=./leiz.dmp fromuser=leiz touser=ecc_view
Import: Release 9.2.0.8.0 - Production on 星期三 4月 29 12:50:58 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
连接到: Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
经由常规路径导出由EXPORT:V09.02.00创建的文件
警告: 此对象由 leiz 导出, 而不是当前用户
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
. 正在将leiz的对象导入到 ECC_VIEW
. . 正在导入表                       "SM_ROLE"        244行被导入
成功终止导入.

参考文献:
1. metalink连接

 Subject: OERR: ORA 3120 two-task conversion routine: integer overflow
  Doc ID: 19796.1 Type: REFERENCE
  Modified Date : 10-JUN-1999 Status: PUBLISHED

Bug No. 5671074
Filed 19-NOV-2006 Updated 05-MAR-2008
Product Oracle Server - Enterprise Edition Product Version 9.2.0.8
Platform Microsoft Windows Server 2003 Platform. Version No Data
Database Version 9.2.0.8 Affects Platforms Generic
Severity Complete Loss of Service Status Development to Q/A
Base Bug N/A Fixed in Product Version 9.2.0.99
 
2.《详述ORA-03120: two-task conversion routine: integer overflow》 http://www.dba-oracle.com/t_ora_03120_two_task_conversion_routine_integer_overflow.htm

3.《Endian单词的由来》 http://www.eygle.com/digest/2007/01/whats_mean_endian.html

4.  原创《不同版本间的数据库导入导出》 http://space.itpub.net/9252210/viewspace-557898

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

转载于:http://blog.itpub.net/9252210/viewspace-592262/

你可能感兴趣的:(ORA-03120: two-task conversion routine: integer overflow)