Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

11

积分

0

好友

3

主题
1#
发表于 2012-6-9 18:44:06 | 查看: 13614| 回复: 4
操作系统(AIX6.1)数据库版本:
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
PL/SQL Release 11.1.0.6.0 - Production
CORE    11.1.0.6.0      Production
TNS for IBM/AIX RISC System/6000: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
程序运行报错信息如下:
2012-6-9 18:10:21开始加载表规则0002表(商品拨出单明细表),源表共41160行数据
ORA-24795: 试图执行非法的 ROLLBACK:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
说明:
数据库日志无报错信息。如果记录数在20万以内加载时就不会报错。
跟到最后执行的SQL:
/* Formatted on 2012-6-9 18:34:25 (QP5 v5.163.1008.3004) */
                   INSERT                                 /*+ SYS_DL_CURSOR */
                     INTO "SYSTEM"."TEMP2012060918102306290707948" (
                             "DEPTCODE",
                             "BILLNUMBER",
                             "INSIDEID",
                             "ISGIVENGOODS",
                             "REDEPLOYTYPE",
                             "GOODSCODE",
                             "CATEGORYITEMCODE",
                             "CATEGORYCODE",
                             "GOODSBARCODE",
                             "UNITRATE",
                             "TAXRATE",
                             "AMOUNT",
                             "PURCHPRICE",
                             "PURCHMONEY",
                             "PURCHTAX",
                             "SALEPRICE",
                             "SALEMONEY",
                             "CAUSECODE",
                             "REMARK",
                             "MASTGOODSID",
                             "ISSPECIALPRICE",
                             "OUTWAREHOUSECODE",
                             "OUTLOCATIONCODE",
                             "ISDISTSERVED")
                   VALUES (NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL,
                           NULL)
"SYSTEM"."TEMP2012060918102306290707948"是临时表。
程序可能用到Oracle.DataAccess.dll,是不是这个dll有限制?
2#
发表于 2012-6-9 18:56:22
[oracle@vrh8 ~]$ oerr ora 24795
24795, 00000, "Illegal %s attempt made"
// *Cause:  An illegal attempt was made to commit/rollback current transaction
// *Action: Use appropriate commit/rollback mechanism

ora-24795错误常由Bulk load 后者 Oracle TEXT index引起

做一个 errorstack 出来


alter system set events ' 24795  trace name errorstack level 4';

再次执行你引发触发ORA-24795错误的语句

到 udump目录下找出新生成的TRACE 上传

回复 只看该作者 道具 举报

3#
发表于 2012-6-9 19:59:18
跟到的日志。

sgerp5_ora_13500576.rar

8.7 MB, 下载次数: 1049

回复 只看该作者 道具 举报

4#
发表于 2012-6-9 21:00:06
11.1.0.6.0 + AIX
----- Error Stack Dump -----
ORA-24795: ROLLBACK
----- SQL Statement (None) -----
Current SQL information unavailable - no cursor.

----- Call Stack Trace -----
calling              call     entry                argument values in hex
location             type     point                (? means dubious value)
-------------------- -------- -------------------- ----------------------------
skdstdst()+002c      bl       105e27f1c
ksedst1()+0064       bl       101fadb74
ksedst()+0028        bl       ksedst1()            6000001FFFF59F0 ?
                                                   600000002050032 ?
dbkedDefDump()+07fc  bl       101faf398
ksedmp()+0048        bl       101fadb70
dbkdaKsdActDriver()  bl       103ec82b0
+0320
dbgdaExecuteAction(  bl       _ptrgl()
)+0078
dbgdaRunAction()+01  bl       dbgdaExecuteAction(  FFFFFFFFFFF6EE8 ? 000800020 ?
a4                            )                    FFFFFFFFFFF67C0 ? 000000001 ?
dbgdRunActions()+00  bl       dbgdaRunAction()     000000000 ? FFFFFFFFFFF7CE0 ?
58
dbgdProcessEventAct  bl       dbgdRunActions()     FFFFFFFFFFF7CB0 ?
ions()+01ec                                        44024224014A61E0 ?
dbgdChkEventKgErr()  bl       dbgdProcessEventAct  110383690 ? 110000328 ?
+017c                         ions()               11059F960 ?
dbkdChkEventRdbmsEr  bl       dbgdChkEventKgErr()  FFFFFFFFFFF8120 ? 0000060DB ?
r()+001c                                           10013F864 ?
ksfpec()+004c        bl       dbkdChkEventRdbmsEr  101812DE8 ?
                              r()
dbgePostErrorKGE()+  bl       _ptrgl()
093c
dbkePostKGE_kgsf()+  bl       dbgePostErrorKGE()   0000060DB ? 110000328 ?
003c                                               60DB10574518 ?
kgeade()+0300        bl       _ptrgl()
kgesev()+0050        bl       kgeade()             10711E8A8 ? 000000000 ?
                                                   000078335 ? 00000000B ?
                                                   FFFFFFFFFFF95C0 ? 000000001 ?
                                                   000000000 ? 000000001 ?
ksesec1()+004c       bl       kgesev()             110281C80 ? 000000000 ?
                                                   1104C2948 ? 000000001 ?
                                                   106FDE368 ?
xctrol()+00d8        bl       101faf2bc
opirol()+0050        bl       103ecb6e0
opiodr()+0b48        bl       103ec82b0
ttcpip()+114c        bl       _ptrgl()
opitsk()+169c        bl       103eca2bc
opiino()+09a0        bl       opitsk()             1100981E8 ? 000000000 ?
opiodr()+0b48        bl       103ec82b0
opidrv()+0440        bl       opiodr()             3C2F736765 ? 41032DD20 ?
                                                   FFFFFFFFFFFF830 ? 05F313335 ?
sou2o()+0090         bl       opidrv()             3C05C052EC ? 4A0071E60 ?
                                                   FFFFFFFFFFFF830 ?
opimai_real()+01b0   bl       101fad8cc
main()+0090          bl       opimai_real()        000000000 ? 000000000 ?
__start()+0070       bl       main()               000000000 ? 000000000 ?



Process global information:
     process: 0x700000bc11e33a0, call: 0x700000bcef54208, xact: 0x700000bf6092268, curses: 0x700000bf1740200, usrses: 0x700000bf1740200
  ----------------------------------------
  SO: 0x700000bc11e33a0, type: 2, owner: 0x0, flag: INIT/-/-/0x00 if: 0x3 c: 0x3
   proc=0x700000bc11e33a0, name=process, file=ksu.h LINE:10286 ID:, pg=0
  (process) Oracle pid:152, ser:133, calls cur/top: 0x700000bcef54208/0x700000bcef54208
            flags: (0x0) -
            int error: 0, call error: 0, sess error: 0, txn error 0
  (post info) last post received: 123 0 2
              last post received-location: ksl2.h LINE:1757 ID:kslpsr
              last process to post me: 700000bc119cc80 1 6
              last post sent: 0 0 25
              last post sent-location: ksa2.h LINE:282 ID:ksasnd
              last process posted by me: 700000bc119cc80 1 6
    (latch info) wait_event=0 bits=0
    Process Group: DEFAULT, pseudo proc: 0x700000bf137ec08
    O/S info: user: oracle, term: UNKNOWN, ospid: 13500576
    OSD pid info: Unix process pid: 13500576, image: oracle@sgerp5


   SO: 0x700000bf1740200, type: 4, owner: 0x700000bc11e33a0, flag: INIT/-/-/0x00 if: 0x3 c: 0x3
     proc=0x700000bc11e33a0, name=session, file=ksu.h LINE:10299 ID:, pg=0
    (session) sid: 709 ser: 40217 trans: 0x700000bf6092268, creator: 0x700000bc11e33a0
              flags: (0x100141) USR/- flags_idl: (0x1) BSY/-/-/-/-/-
              flags2: (0x8) -/-
              DID: , short-term DID:
              txn branch: 0x0
              oct: 2, prv: 0, sql: 0x700000914670fb8, psql: 0x700000bdeb982b8, user: 5/SYSTEM
    client details:
      O/S info: user: Administrator, term: WIN-V4L0CM1Y8SI, ospid: 11708:7372
      machine: WORKGROUP\WIN-V4L0CM1Y8SI program: DTCCommandDebug.exe
    Dumping Current Wait Stack:
      Not in wait; last wait ended 1619346 usecs ago
    Wait State:
      auto_close=0 flags=0x21 boundary=0x0/-1
    Dumping Session Wait History:
     0: waited for 'SQL*Net message from client'
        driver id=54435000, #bytes=1, =0
        wait_id=271 seq_num=272 snap_id=1
        wait times (usecs) - snap=5841 exc=5841 total=5841
        wait times (usecs) - max=infinite
        wait counts (exc) - calls=0 os=0
        occurred after 10 microseconds of elapsed time
     1: waited for 'SQL*Net message to client'



Cursor#11(0x110591ff8) state=BOUND curiob=0x1105a8080
curflg=4c fl2=200000 par=0x0 ses=0x700000bf1740200
----- Dump Cursor sql_id=d6b080xq2mw8c xsc=0x1105a8080 cur=0x110591ff8 -----
Dump Parent Cursor sql_id=d6b080xq2mw8c phd=0x700000914670fb8 plk=0x7000008b22aca80
sqltxt(0x700000914670fb8)=INSERT /*+ SYS_DL_CURSOR */ INTO "SYSTEM"."TEMP2012060919004548572585324" ("DEPTCODE","BILLNUMBER","INSIDEID","ISGIVENGOODS","REDE
PLOYTYPE","GOODSCODE","CATEGORYITEMCODE","CATEGORYCODE","GOODSBARCODE","UNITRATE","TAXRATE","AMOUNT","PURCHPRICE","PURCHMONEY","PURCHTAX","SALEPRICE","SALEMO
NEY","CAUSECODE","REMARK","MASTGOODSID","ISSPECIALPRICE","OUTWAREHOUSECODE","OUTLOCATIONCODE","ISDISTSERVED") VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)
  hash=eec57a06d99cd786d32c08076c29f10c
  parent=0x700000838193358 maxchild=01 plk=0x7000008b22aca80 ppn=n
cursor instantiation=0x1105a8080 used=1339239711 exec_id=0 exec=0
child#0(0x700000914670e68) pcs=0x700000838173790
  clk=0x7000008b22ac988 ci=0x700000838172e70 pn=0x0 ctx=0x7000009593f94f0
kgsccflg=0 llk[0x1105a8088,0x1105a8088] idx=0
xscflg=80100036 fl2=0 fl3=2022000 fl4=0
Frames pfr 0x1105ca1d8 siz=6032 efr 0x0 siz=5984
Cursor frame dump
  enxt: 3.0x00000350  enxt: 2.0x00000748  enxt: 1.0x00000cc8
  pnxt: 1.0x00000030
kxscphp=0x1106f8f88 siz=984 inu=160 nps=160



其stack call 与         11.1.0.6上的bug Hdr: 7886990 11.1.0.6 RDBMS 11.1.0.6 TRIGGERS PRODID-5 PORTID-226 ORA-4092 6977167  一致

skdstdst <- ksedst1 <- ksedst <- dbkedDefDump <- ksedmp
<- dbkdaKsdActDriver <- dbgdaExecuteAction <- dbgdaRunAction
<- dbgdRunActions <- dbgdProcessEventActions <- dbgdChkEventKgErr
<- dbkdChkEventRdbmsErr <- PGOSF28_ksfpec <- dbgePostErrorKGE
<- dbkePostKGE_kgsf <- kgesev <- ksesec1 <- xctrol <- opirol <- opiodr
<- ttcpip <- opitsk <- opiino <- opiodr <- opidrv <- sou2o
<- opimai_real <- ssthrdmain <- main <- libc_start_main <- start



建议升级到 11.1.0.7  版本的最新 PSU,  并且避免在 SYSTEM用户下建立 临时对象

回复 只看该作者 道具 举报

5#
发表于 2012-6-11 09:30:18
谢谢刘大的解答!打完补丁再试试

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-26 12:08 , Processed in 0.052491 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569