根据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.解决方案
自治事务和主事务是两个独立的事力,根据上面信息找到相关的自治事务提前进行提交。

mysql'sblobissuitableForStoringBinaryDataWithInareLationalDatabase,而alenosqloptionslikemongodb,redis和calablesolutionsoluntionsoluntionsoluntionsolundortionsolunsolunsstructureddata.blobobobsimplobissimplobisslowderperformandperformanceperformancewithlararengelitiate;

toaddauserinmysql,使用:createUser'username'@'host'Indessify'password'; there'showtodoitsecurely:1)choosethehostcarecarefullytocon trolaccess.2)setResourcelimitswithoptionslikemax_queries_per_hour.3)usestrong,iniquepasswords.4)Enforcessl/tlsconnectionswith

toAvoidCommonMistakeswithStringDatatatPesInMysQl,CloseStringTypenuances,chosethirtightType,andManageEngencodingAndCollationsEttingsefectery.1)usecharforfixed lengengters lengengtings,varchar forbariaible lengength,varchariable length,andtext/blobforlabforlargerdata.2 seterters seterters seterters seterters

mysqloffersechar,varchar,text,and denumforstringdata.usecharforfixed Lengttrings,varcharerforvariable长度,文本forlarger文本,andenumforenforcingDataAntegrityWithaEtofValues。

优化MySQLBLOB请求可以通过以下策略:1.减少BLOB查询频率,使用独立请求或延迟加载;2.选择合适的BLOB类型(如TINYBLOB);3.将BLOB数据分离到单独表中;4.在应用层压缩BLOB数据;5.对BLOB元数据建立索引。这些方法结合实际应用中的监控、缓存和数据分片,可以有效提升性能。

掌握添加MySQL用户的方法对于数据库管理员和开发者至关重要,因为它确保数据库的安全性和访问控制。1)使用CREATEUSER命令创建新用户,2)通过GRANT命令分配权限,3)使用FLUSHPRIVILEGES确保权限生效,4)定期审计和清理用户账户以维护性能和安全。

chosecharforfixed-lengthdata,varcharforvariable-lengthdata,andtextforlargetextfield.1)chariseffity forconsistent-lengthdatalikecodes.2)varcharsuitsvariable-lengthdatalikenames,ballancingflexibilitibility andperformance.3)

在MySQL中处理字符串数据类型和索引的最佳实践包括:1)选择合适的字符串类型,如CHAR用于固定长度,VARCHAR用于可变长度,TEXT用于大文本;2)谨慎索引,避免过度索引,针对常用查询创建索引;3)使用前缀索引和全文索引优化长字符串搜索;4)定期监控和优化索引,保持索引小巧高效。通过这些方法,可以在读取和写入性能之间取得平衡,提升数据库效率。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver CS6
视觉化网页开发工具

Atom编辑器mac版下载
最流行的的开源编辑器