[20241127]奇葩的问题.txt --//前几天在一个小表40M上建立在线索引,等很久我检查发现enq TX row锁,发现用户的事务很久没有提交,最后被取消操作,导致 --//SYS_JOURNAL开头IOT表留在数据库里面,我也没管它,做其他事情,以为又是防水墙导致的问题,因为在线建立索引要建立一张IOT --//表,在结束时删除该IOT表,也许防水墙设计有问题禁止了drop操作,快下班再次尝试,我想反正表很小,这次我直接建立。但是还 --//是挂起,只能取消操作,不然影响正常业务。我检查发现还是有一些事务没有提交导致的问题,今天探究看看。 1.环境: XXXXXX> @ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production $ cat ftq.sql column UNDO_SQL format a100 column LOGON_USER format a10 column OPERATION format a10 column TABLE_NAME format a20 column TABLE_owner format a10 column START_SCN format 999999999999 --//alter database add supplemental log data; select * from flashback_transaction_query where xid=hextoraw('&&1'); --//注意:要打开最小附加日志,视图flashback_transaction_query才会有输出,生产系统没有这个问题。 2.分析: XXXXXX> @ trans SID SERIAL# USERNAME TADDR SES_ADDR USED_UBLK USED_UREC 0xFLAG STATUS STATUS2 START_DATE XIDUSN XIDSLOT XIDSQN XID PRV_XID PTX_XID ---------- ---------- ----------- ---------------- ---------------- ---------- ---------- --------- ------- ---------------- ------------------- ---------- ---------- ---------- ---------------- ---------------- ---------------- 2262 43061 PPPPPP_EMR 0000000655659A68 0000000679BB3698 1 3 1E03 ACTIVE ACTIVE 2024-11-27 08:54:51 3 6 5390214 03000600863F5200 0000000000000000 0000000000000000 7940 42629 PPPPPP_EMR 000000064F0DAFD8 000000068E577650 1 3 1E03 ACTIVE ACTIVE 2024-11-27 08:51:47 28 24 5161268 1C00180034C14E00 0000000000000000 0000000000000000 1983 399 PPPPPP_HIS 0000000648430BB8 000000068DB6E670 1 10 401E03 ACTIVE ACTIVE 2024-11-27 09:04:40 8 31 11017005 08001F002D1BA800 0000000000000000 0000000000000000 3395 2111 PPPPPP_HIS 0000000648558EA8 0000000689DBCA78 1 3 1E03 ACTIVE ACTIVE 2024-11-26 15:05:27 24 3 6637017 18000300D9456500 0000000000000000 0000000000000000 868 62613 PPPPPP_HIS 0000000666DD0978 000000068D97C7D0 8 403 1E03 ACTIVE ACTIVE 2024-11-27 09:06:13 27 9 7719731 1B00090033CB7500 0000000000000000 0000000000000000 3416 9373 PPPPPP_HIS 00000006559E1EB0 0000000689DB37D8 1 11 401E03 ACTIVE ACTIVE 2024-11-27 08:48:42 10 12 35330160 0A000C0070181B02 0000000000000000 0000000000000000 6 rows selected. --//竟然还有启动2024-11-26 15:05:27的事务,没有提交。 --//xid = 03000600863F5200 --//提交前. XXXXXX> @ ftq 03000600863F5200 XID START_SCN START_TIMESTAMP COMMIT_SCN COMMIT_TIMESTAMP LOGON_USER UNDO_CHANGE# OPERATION TABLE_NAME TABLE_OWNE ROW_ID UNDO_SQL ---------------- ------------- ------------------- ---------- ------------------- ---------- ------------ ---------- -------------------- ---------- ------------------- ---------------------------------------------------------------------------------------------------- 03000600863F5200 53480906458 2024-11-27 08:54:48 PPPPPP_EMR 1 INSERT EMR_BL_BLSY PPPPPP_EMR AAAZK2AAbAANcZEABD delete from "PPPPPP_EMR"."EMR_BL_BLSY" where ROWID = 'AAAZK2AAbAANcZEABD'; 03000600863F5200 53480906458 2024-11-27 08:54:48 PPPPPP_EMR 2 BEGIN --//提交后. XXXXXX> @ ftq 03000600863F5200 XID START_SCN START_TIMESTAMP COMMIT_SCN COMMIT_TIMESTAMP LOGON_USER UNDO_CHANGE# OPERATION TABLE_NAME TABLE_OWNE ROW_ID UNDO_SQL ---------------- ------------- ------------------- ------------- ------------------- ---------- ------------ ---------- -------------------- ---------- ------------------- ------------------------------------------------------------------------------------------ 03000600863F5200 53480906458 2024-11-27 08:54:48 53481936730 2024-11-27 09:16:42 PPPPPP_EMR 1 INSERT EMR_BL_BLSD PPPPPP_EMR AAAW6SAAiAAA83UABM delete from "PPPPPP_EMR"."EMR_BL_BLSD" where ROWID = 'AAAW6SAAiAAA83UABM'; 03000600863F5200 53480906458 2024-11-27 08:54:48 53481936730 2024-11-27 09:16:42 PPPPPP_EMR 2 INSERT EMR_BL_BLSY PPPPPP_EMR AAAZK2AAbAANcZEABD delete from "PPPPPP_EMR"."EMR_BL_BLSY" where ROWID = 'AAAZK2AAbAANcZEABD'; 03000600863F5200 53480906458 2024-11-27 08:54:48 53481936730 2024-11-27 09:16:42 PPPPPP_EMR 3 BEGIN --//很明显从时间上可以判断是别的事务带着前面的事务提交的. --//注意1个细节,0xFLAG=401E03,我在21c下测试,有关dblink的事务前面出现0x42,我猜测0x40是与dblink相关的事务(也许是版本 --//的不同,有空在11g下验证看看) --//当我仔细反复观察后,可以确定开发在事务结束时没有写提交,而且不是1处,出现多处,真是奇葩啊,真不知道那个学校毕业的, --//更可怕的是我估计这个问题存在我们系统很久了。没有一个人静下心来定位这个问题,另外我在想为什么总院也存在这个问题,没有 --//发现,也许总院的业务比分院要忙,很快其他事务顺带就提交了,我给忽略了。 XXXXXX> @ ashtop sql_id "event='enq: TX - row lock contention'" &day Total Distinct Distinct Distinct Seconds AAS %This SQL_ID FIRST_SEEN LAST_SEEN Execs Seen Tstamps Execs Seen1 --------- ------- ------- ------------- ------------------- ------------------- ---------- -------- ----------- 2371 .0 77% | ar1x8j3n0860w 2024-11-26 15:31:53 2024-11-26 17:32:32 3 2371 3 284 .0 9% | 96sa2x3huz9qm 2024-11-26 15:53:26 2024-11-26 16:55:32 2 284 2 243 .0 8% | 881t6c48ms7db 2024-11-26 16:20:06 2024-11-26 16:27:41 3 243 3 119 .0 4% | gwnc60f55knbz 2024-11-26 17:11:43 2024-11-27 08:56:38 2 119 2 39 .0 1% | 5kkc977qkg1bc 2024-11-26 11:19:08 2024-11-26 11:19:46 1 39 1 21 .0 1% | btrp9hta6jutp 2024-11-26 11:21:55 2024-11-26 11:22:15 1 21 1 6 rows selected. --//可想得知,怪不得需要经常解锁,无语!! --//另外给开发一个小小建议做dblink相关查询完成后最后加入1个提交,不然trans.sql脚本的输出一直看到。
[20241127]奇葩的问题.txt
来源:这里教程网
时间:2026-03-03 20:55:38
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle数据恢复—Oracle数据库文件大小变为0kb怎么恢复数据?
oracle数据恢复—Oracle数据库文件大小变为0kb怎么恢复数据?
26-03-03 - 一万字,浅谈Oracle数据库truncate原理,无备份,如何恢复!
一万字,浅谈Oracle数据库truncate原理,无备份,如何恢复!
26-03-03 - 湖南家具铂金钻奢石餐桌,简约与优雅的完美融合
湖南家具铂金钻奢石餐桌,简约与优雅的完美融合
26-03-03 - 07 Oracle数据库恢复基础解析:从检查点到归档,一步步构建数据安全防线
- 湖南家具大黑牛沙发,舒适与品质的完美邂逅
湖南家具大黑牛沙发,舒适与品质的完美邂逅
26-03-03 - 实战分享:如何在HP-UX上高效扩容Oracle 12c RAC ASM磁盘
- 湖南家具沙丘床,塑造精妙绝伦的卧室空间格调
湖南家具沙丘床,塑造精妙绝伦的卧室空间格调
26-03-03 - Oralce数据库巡检SQL脚本
Oralce数据库巡检SQL脚本
26-03-03 - 从CAB到PAB Oracle的AI 23.6(之一)
从CAB到PAB Oracle的AI 23.6(之一)
26-03-03 - 数据库管理-第257期 有好故事才能讲好故事(20241101)
数据库管理-第257期 有好故事才能讲好故事(20241101)
26-03-03
