EXP在9R2上导出时报错ORA-3113和ORA-24324

今天同事在导出的时候碰到了错误,EXP的过程中出现了ORA-3113ORA-24324错误。

 

 

导出过程如下:

bash-3.00$ exp shgov file=jg080424.dmp wner=shgov buffer=300000000

Export: Release 9.2.0.1.0 - Production on 星期四 4 24 14:27:27 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

口令:

连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的用户...
.
正在导出 pre-schema 过程对象和操作
.
正在导出用户 SHGOV 的外部函数库名称
.
导出 PUBLIC 类型同义词
.
导出私有类型同义词
.
正在导出用户 SHGOV 的对象类型定义
即将导出 SHGOV 的对象 ...
.
正在导出数据库链接
.
正在导出序号
.
正在导出群集定义
.
即将导出 SHGOV 的表通过常规路径 ...
. .
正在导出表                               A          0 行被导出
. .
正在导出表                 BYSS_FPAGE_DATA         12 行被导出
. .
正在导出表                       CAT_BUYER       7447 行被导出
. .
正在导出表                      CAT_DEALER      14331 行被导出
. .
正在导出表                  CAT_ENTERPRISE      23472 行被导出
. .
正在导出表                  CAT_GOVERNMENT        452 行被导出
. .
正在导出表                         CAT_ORG      31350 行被导出
. .
正在导出表                CAT_PLAT_PRODUCT    1369020 行被导出
.
.
.
. .
正在导出表                SHGOV_HOS_CHARGE          0 行被导出
. .
正在导出表      SHGOV_MED_RETAILPRICE_DIFF        134 行被导出
. .
正在导出表                     SHGOV_ORDER
EXP-00056:
遇到 ORACLE 错误 600
ORA-00600:
内部错误代码,参数: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]
EXP-00056:
遇到 ORACLE 错误 24324
ORA-24324:
未初始化服务句柄
EXP-00056:
遇到 ORACLE 错误 24324
ORA-24324:
未初始化服务句柄
EXP-00056:
遇到 ORACLE 错误 24324
ORA-24324:
未初始化服务句柄
EXP-00056:
遇到 ORACLE 错误 24324
ORA-24324:
未初始化服务句柄
EXP-00000:
导出终止失败

需要说明的是,第一次导出的时候出现的是ORA-3113错误和ORA-24324错误,而随后出现的都是ORA-600错误。

第一次出现错误时的错误日志为:

EXP-00056: 遇到 ORACLE 错误 3113
ORA-03113:
通信通道的文件结束
EXP-00056:
遇到 ORACLE 错误 24324
ORA-24324:
未初始化服务句柄
EXP-00056:
遇到 ORACLE 错误 24324
ORA-24324:
未初始化服务句柄
EXP-00056:
遇到 ORACLE 错误 24324
ORA-24324:
未初始化服务句柄
EXP-00056:
遇到 ORACLE 错误 24324
ORA-24324:
未初始化服务句柄
EXP-00000:
导出终止失败

在后台的alert文件中可以看到ORA-600错误:

第一次出现的错误信息为:

Thu Apr 24 13:46:17 2008
Errors in file /oracle/admin/orcl/udump/orcl_ora_18129.trc:
ORA-07445:
出现异常: 核心转储 [kghidmp()+908] [SIGBUS] [Invalid address alignment] [0xD2BDD2A9] [] []

随后的错误信息为:

Thu Apr 24 14:02:22 2008
Errors in file /oracle/admin/orcl/udump/orcl_ora_18489.trc:
ORA-00600:
内部错误代码,参数: [17182], [0xFC8BA080], [], [], [], [], [], []
Thu Apr 24 14:02:23 2008
Errors in file /oracle/admin/orcl/udump/orcl_ora_18489.trc:
ORA-07445:
出现异常: 核心转储 [kgidmp()+828] [SIGBUS] [Invalid address alignment] [0x18454D51] [] []
ORA-00600:
内部错误代码,参数: [17182], [0xFC8BA080], [], [], [], [], [], []
Thu Apr 24 14:02:24 2008
Errors in file /oracle/admin/orcl/udump/orcl_ora_18489.trc:
ORA-07445:
出现异常: 核心转储 [kgidmp()+828] [SIGBUS] [Invalid address alignment] [0x18454D51] [] []
ORA-07445:
出现异常: 核心转储 [kgidmp()+828] [SIGBUS] [Invalid address alignment] [0x18454D51] [] []
ORA-00600:
内部错误代码,参数: [17182], [0xFC8BA080], [], [], [], [], [], []
Thu Apr 24 14:02:25 2008
Errors in file /oracle/admin/orcl/udump/orcl_ora_18489.trc:
ORA-07445:
出现异常: 核心转储 [kgidmp()+828] [SIGBUS] [Invalid address alignment] [0x18454D51] [] []
ORA-07445:
出现异常: 核心转储 [kgidmp()+828] [SIGBUS] [Invalid address alignment] [0x18454D51] [] []
ORA-07445:
出现异常: 核心转储 [kgidmp()+828] [SIGBUS] [Invalid address alignment] [0x18454D51] [] []
ORA-00600:
内部错误代码,参数: [17182], [0xFC8BA080], [], [], [], [], [], []

进一步检查详细的错误信息:

*** 2008-04-24 13:46:17.051
ksedmp: internal or fatal error
ORA-07445:
出现异常: 核心转储 [kghidmp()+908] [SIGBUS] [Invalid address alignment] [0xD2BDD2A9] [] []
Current SQL statement for this session:
SELECT /*+NESTED_TABLE_GET_REFS+*/ "SHGOV"."SHGOV_ORDER".* FROM "SHGOV"."SHGOV_ORDER"

查询了一下METALINK,发现和Doc ID:  Note:413345.1中的描述极为类似,无论是导出时碰到的错误信息,还是导致问题出现的SQL语句,都完全一样,不过也有不同点,就是当前表只是一个普通表,而不是一个分区表。

SQL> SELECT TABLE_NAME, OWNER, PARTITIONED FROM DBA_TABLES
  2  WHERE TABLE_NAME = 'SHGOV_ORDER'
  3  AND WNER = 'SHGOV';

TABLE_NAME                     OWNER                          PAR
------------------------------ ------------------------------ ---
SHGOV_ORDER                    SHGOV                          NO

而且可能正是由于上面的不同,导致后台报错的7445错误号并不相同。

Oracle给出的解决方法是设置初始化参数"_optim_adjust_for_part_skews"=false,然后重启数据库,或者升级数据库版本到9205以上。

可是无论哪种方式代价都比较大,尝试使用DIRECT方式导出,并不导出统计,发现居然将问题绕过去了:

bash-3.00$ exp shgov file=jg080424.dmp buffer=20480000 direct=y recordlength=65534 statistics=none

Export: Release 9.2.0.1.0 - Production on 星期四 4 24 15:03:44 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

口令:

连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的用户...
.
正在导出 pre-schema 过程对象和操作
.
正在导出用户 SHGOV 的外部函数库名称
.
导出 PUBLIC 类型同义词
.
导出私有类型同义词
.
正在导出用户 SHGOV 的对象类型定义
即将导出 SHGOV 的对象 ...
.
正在导出数据库链接
.
正在导出序号
.
正在导出群集定义
.
即将导出 SHGOV 的表通过直接路径 ...
. .
正在导出表                               A          0 行被导出
. .
正在导出表                 BYSS_FPAGE_DATA         12 行被导出
. .
正在导出表                       CAT_BUYER       7447 行被导出
. .
正在导出表                      CAT_DEALER      14331 行被导出
. .
正在导出表                  CAT_ENTERPRISE      23472 行被导出
. .
正在导出表                  CAT_GOVERNMENT        452 行被导出
. .
正在导出表                         CAT_ORG      31350 行被导出
. .
正在导出表                CAT_PLAT_PRODUCT    1369020 行被导出
.
.
.
. .
正在导出表                SHGOV_HOS_CHARGE          0 行被导出
. .
正在导出表      SHGOV_MED_RETAILPRICE_DIFF        134 行被导出
. .
正在导出表                     SHGOV_ORDER     420836 行被导出
. .
正在导出表                 SHGOV_ORDER_ADD      26476 行被导出
. .
正在导出表         SHGOV_ORD_ORDER_RECEIVE          0 行被导出
.
.
.
. .
正在导出表                     USR_USERBAK          0 行被导出
. .
正在导出表                   USR_USER_ROLE          7 行被导出
. .
正在导出表                USR_USER_ROLE_BK       1407 行被导出
. .
正在导出表                    USR_USR_PLAT         22 行被导出
. .
正在导出表                 USR_USR_PLAT_BK        527 行被导出
.
正在导出同义词
.
正在导出视图
.
正在导出存储的过程
.
正在导出运算符
.
正在导出引用完整性约束条件
.
正在导出触发器
.
正在导出索引类型
.
正在导出位图, 功能性索引和可扩展索引
.
正在导出后期表活动
.
正在导出实体化视图
.
正在导出快照日志
.
正在导出作业队列
.
正在导出刷新组和子组
.
正在导出维
.
正在导出 post-schema 过程对象和操作
.
正在导出统计
在没有警告的情况下成功终止导出。

其实很多时候,Oracle给出的解决方法并不是唯一的方法,以当前的情况为例,很可能Oracle给出的方法最解决这个问题的唯一方法。但是这是对常规导出而言,而对于大多数人来说,其实存在很多变通的方法来避过这个问题,比如采用直接路径导出,比如跳过问题表,甚至重建问题表等等。

大多数情况不要着急按照Oracle给出的方案进行,自己多测试测试,很可能就可以找到符合你目标的最佳解决方法。

 

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

转载于:http://blog.itpub.net/4227/viewspace-254780/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值