最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle自治事务引起的死锁

来源:动视网 责编:小采 时间:2020-11-09 11:00:37
文档

Oracle自治事务引起的死锁

Oracle自治事务引起的死锁:根据alert找到具体的trace文件,注意和普通死锁不一样,下面Blocker(s)和Waiter(s)为同一个sid,同时trace中有正在执行的SQL和被 1.关于自治事务引起的死锁Oracle解释 Note:65961. Because the parent and child transac
推荐度:
导读Oracle自治事务引起的死锁:根据alert找到具体的trace文件,注意和普通死锁不一样,下面Blocker(s)和Waiter(s)为同一个sid,同时trace中有正在执行的SQL和被 1.关于自治事务引起的死锁Oracle解释 Note:65961. Because the parent and child transac


根据alert找到具体的trace文件,注意和普通死锁不一样,下面Blocker(s)和Waiter(s)为同一个sid,同时trace中有正在执行的SQL和被

1.关于自治事务引起的死锁Oracle解释

Note:65961.

Because the parent and child transactions are independent, they also are not ableto share any locks; if a parent transaction has a resource locked that a childattemptsto obtain, then a deadlock situation occurs. In this case, the offendingstatement is automatically rolled back with an "ORA-00060: deadlock detected while waiting for resource" exception raised within the child. Information on how to troubleshoot a deadlock can be found in:

2.模拟自治事务引起的死锁

SQL> create table eymit(id int);

Table created

SQL> insert into eymit select 1 from dual;

1 row inserted

SQL> commit;

Commit complete

SQL> delete from eymit;

1 row deleted

SQL>

SQL> declare

2 pragma autonomous_transaction;

3 begin

4 delete from eymit;

5 commit;

6 end;

7 /

declare

pragma autonomous_transaction;

begin

delete from eymit;

commit;

end;

ORA-00060:等待资源时检测到死锁

ORA-06512:在line 5

3.分析日志

查看Alert文件信息

Mon Dec 24 18:26:04 2012

ORA-00060: Deadlock detected. More info in file /opt/local/oracle/diag/rdbms/gs3421/gs3421/trace/gs3421_ora_19373.trc

根据alert找到具体的trace文件,注意和普通死锁不一样,下面Blocker(s)和Waiter(s)为同一个sid,,同时trace中有正在执行的SQL和被锁的对象ID

[oracle@CN01L0301000025 trace]$ more gs3421_ora_19373.trc

Trace file /opt/local/oracle/diag/rdbms/gs3421/gs3421/trace/gs3421_ora_19373.trc

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORACLE_HOME = /opt/local/oracle/product/11.2.0/dbhome_1

System name: Linux

Node name: CN01L0301000025

Release: 2.6.18-164.el5

Version: #1 SMP Thu Sep 3 03:28:30 EDT 2009

Machine: x86_64

Instance name: gs3421

Redo thread mounted by this instance: 1

Oracle process number: 46

Unix process pid: 19373, image: oracle@CN01L0301000025

*** 2012-12-24 18:26:04.290

*** SESSION ID:(1152.197) 2012-12-24 18:26:04.290

*** CLIENT ID:() 2012-12-24 18:26:04.290

*** SERVICE NAME:(gs3421) 2012-12-24 18:26:04.290

*** MODULE NAME:(PL/SQL Developer) 2012-12-24 18:26:04.290

*** ACTION NAME:(Command Window - New) 2012-12-24 18:26:04.290

*** 2012-12-24 18:26:04.290

DEADLOCK DETECTED ( ORA-00060 )

[Transaction Deadlock]

The following deadlock is not an ORACLE error. It is a

deadlock due to user error in the design of an application

or from issuing incorrect ad-hoc SQL. The following

information may aid in determining the deadlock:

Deadlock graph:

---------Blocker(s)-------- ---------Waiter(s)---------

Resource Name process session holds waits process session holds waits

TX-0003001b-0001dd36 46 1152 X 46 1152 X

session 1152: DID 0001-002E-0000CA27 session 1152: DID 0001-002E-0000CA27

Rows waited on:

Session 1152: obj - rowid = 000700C5 - AABwDFAAEAAAv5cAAA

(dictionary objn - 458949, file - 4, block - 196188, slot - 0)

----- Information for the OTHER waiting sessions -----

----- End of information for the OTHER waiting sessions -----

Information for THIS session:

----- Current SQL Statement for this session (sql_id=g3mk1njgws241) -----

DELETE FROM EYMIT

----- PL/SQL Stack -----

----- PL/SQL Call Stack -----

object line object

handle number name

0x15960f918 5 anonymous block

===================================================

PROCESS STATE

4.解决方案

自治事务和主事务是两个独立的事力,根据上面信息找到相关的自治事务提前进行提交。

文档

Oracle自治事务引起的死锁

Oracle自治事务引起的死锁:根据alert找到具体的trace文件,注意和普通死锁不一样,下面Blocker(s)和Waiter(s)为同一个sid,同时trace中有正在执行的SQL和被 1.关于自治事务引起的死锁Oracle解释 Note:65961. Because the parent and child transac
推荐度:
标签: 事务 oracle 引起的
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top