用errorstack event來定位exp導出時direct=y參數報錯的問題

 

1.exp導出時加上direct=y參數出錯,顯示ora-00942錯誤顯示表格不存在,經檢查表格是存在的。

 EXP-00056:

ORA-00942:

SQL> conn amy/amy@test129

已連線.

SQL> select count(*) from class_info;

 COUNT(*)

----------

        6

 

2.errorstack event來定位問題

打開errorstack

 SQL>alter system set events '942 trace name errorstack level 1';

 

再執行報錯的exp

 

關閉errorstack

SQL>alter system set events'942 trace name errorstack off';

 

3.查看警告日志文件

[oracle@MESTEST bdump]$ tail -n 10 alert_mes.log

Sat Nov 20 15:37:22 2010

OS Pid: 13391 executed alter system set events '942 trace name errorstack level 1'

Sat Nov 20 15:37:28 2010

Errors in file /opt/oracle/admin/mes/udump/mes_ora_13403.trc:

ORA-00942: table or view does not exist

OS Pid: 13405 executed alter system set events '942 trace name errorstack off'

 

4.檢查警告日志中出現的trace文件,發現是有系統表SYS.EXPCOMPRESSEDTAB不存在導致的,

[oracle@MESTEST bdump]$ more /opt/oracle/admin/mes/udump/mes_ora_13403.trc

 

*** SESSION ID:(74.48444) 2010-11-20 15:37:27.982

*** 2010-11-20 15:37:27.982

ksedmp: internal or fatal error

ORA-00942: table or view does not exist

Current SQL statement for this session:

SELECT COUNT(*) FROM SYS.EXPCOMPRESSEDTAB WHERE TOBJ$ = :1

 

5.查找/opt/oracle/9205/rdbms/admin /catexp.sql腳本中關於SYS.EXPCOMPRESSEDTAB的腳本並執行。

REM

REM View to see if a table is compressed (new for 10i).

REM

CREATE OR REPLACE VIEW sys.expcompressedtab

   (SPARE1, TOBJ$) AS

       SELECT s.spare1, t.obj#

       FROM  sys.tab$ t, sys.seg$ s

       WHERE t.ts#   = s.ts#

       AND   t.file# = s.file#

       AND   t.block# = s.block#

       AND   s.type# = 5

       AND   (bitand(s.spare1,4096) = 4096 OR bitand(s.spare1,2048) = 2048)

/

GRANT SELECT ON sys.expcompressedtab TO PUBLIC;

 

6.再執行帶direct=y的導出,錯誤消失了,可以正常導出。

 

 

 

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

转载于:http://blog.itpub.net/9902302/viewspace-711928/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值