标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (102)
- 数据库 (1,670)
- DB2 (22)
- MySQL (73)
- Oracle (1,532)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (21)
- ORA-xxxxx (159)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (14)
- ORACLE 21C (3)
- Oracle 23ai (7)
- Oracle ASM (65)
- Oracle Bug (8)
- Oracle RAC (52)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (560)
- Oracle安装升级 (91)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (78)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- ORA-600 krse_arc_complete.4
- Oracle 19c 202410补丁(RUs+OJVM)
- ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复
- .mkp扩展名oracle数据文件加密恢复
- 清空redo,导致ORA-27048: skgfifi: file header information is invalid
- A_H_README_TO_RECOVER勒索恢复
- 通过alert日志分析客户自行对一个数据库恢复的来龙去脉和点评
- ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME
- ORA-01092 ORA-00604 ORA-01558故障处理
- ORA-65088: database open should be retried
- Oracle 19c异常恢复—ORA-01209/ORA-65088
- ORA-600 16703故障再现
- 数据库启动报ORA-27102 OSD-00026 O/S-Error: (OS 1455)
- .[metro777@cock.li].Elbie勒索病毒加密数据库恢复
- 应用连接错误,初始化mysql数据库恢复
- RAC默认服务配置优先节点
- Oracle 19c RAC 替换私网操作
- 监听报TNS-12541 TNS-12560 TNS-00511错误
- drop tablespace xxx including contents恢复
- Linux 8 修改网卡名称
标签归档:19790972
DBMS_STATS收集子分区表导致library cache lock等待
有客户反馈一个问题,业务中有一张表无论是查询还是dml操作都非常慢,让我们介入分析
数据库版本
打上了170814比较新的psu
[oracle@xffdb1 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory Oracle 中间补丁程序安装程序版本 11.2.0.3.15 版权所有 (c) 2018, Oracle Corporation。保留所有权利。 Oracle Home : /u01/app/oracle/product/11.2.0/db_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc OPatch version : 11.2.0.3.15 OUI version : 11.2.0.4.0 Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2018-01-06_16-20-22下午_1.log -------------------------------------------------------------------------------- Local Machine Information:: Hostname: xffdb1 ARU platform id: 226 ARU platform description:: Linux x86-64 已安装的顶级产品 (1): Oracle Database 11g 11.2.0.4.0 此 Oracle 主目录中已安装 1 个产品。 中间补丁程序 (2) : Patch 26609929 : applied on Fri Sep 15 14:28:51 CST 2017 Unique Patch ID: 21482966 Patch description: "OCW Patch Set Update : 11.2.0.4.170814 (26609929)" Patch 26609445 : applied on Fri Sep 15 14:28:04 CST 2017 Unique Patch ID: 21482382 Patch description: "Database Patch Set Update : 11.2.0.4.170814 (26609445)"
这里显示大量的library cache lock等待
做systemstate分析
Resource Holder State LOCK: Handle=0x325d938e08 74: 74: is waiting for PIN: Handle=0x325d938e08 Enq TX-00E0001B-000004D3 488: 488: is waiting for 74: Mutex 1e7fbf6c 322: 322: is waiting for 74: Enq TX-02850009-00000086 630: 630: is waiting for 74: Enq TX-02BC000A-0000009E ??? Blocker Enq TX-0075000E-000010BE ??? Blocker PIN: Handle=0x325d938e08 ??? Blocker Enq TX-049A000C-00000002 ??? Blocker Enq TX-034C001D-00000038 ??? Blocker Enq TX-052C0012-00000002 669: 669: is waiting for 74: Enq TX-04620004-00000003 ??? Blocker Enq TX-009B0020-00000DA6 ??? Blocker Mutex af4db5a8 242: 242: is waiting for 74: Enq TX-041E0002-00000005 ??? Blocker Mutex 663b253d 727: 727: is waiting for 74: Enq TX-04FA0008-00000003 124: 124: is waiting for 69: Enq TX-031D0010-0000005B ??? Blocker Enq TX-02BB0004-000000A2 ??? Blocker Enq TX-0248001A-000000CD 69: 69: is waiting for Enq TX-02BC000A-0000009E Enq TX-03D70008-00000002 ??? Blocker Enq TX-02B1001D-00000081 ??? Blocker Enq TX-0423001A-00000003 ??? Blocker Enq TX-051A0007-00000003 506: 506: is waiting for 74: Mutex 2aceb8e9 602: 602: is waiting for 74: Mutex c6b2e0f4 196: 196: is waiting for 74: Enq TX-00A30020-0000055A ??? Blocker Enq TX-00D70015-00000315 ??? Blocker Enq TX-03B30006-00000012 ??? Blocker Enq TX-008C0003-00001005 ??? Blocker Enq TX-05470014-00000006 219: 219: is waiting for 74: Enq TX-054E0018-00000006 673: 673: is waiting for 74: Mutex f28c06f8 279: 279: is waiting for 74: Enq TX-03D30012-00000002 ??? Blocker Enq TX-055C001B-00000005 333: 333: is waiting for Enq TX-01CF000B-00000B2F Mutex 2ff03da9 276: 276: is waiting for 74: Enq TX-030A000A-000000B6 ??? Blocker Enq TX-00530004-000023DF 212: 212: is waiting for 74: Enq TX-05550017-00000002 469: 469: is waiting for 74: Mutex 724ba5e3 177: 177: is waiting for 74: Enq TX-03C10007-00000015 ??? Blocker Enq TX-02E30006-00000079 ??? Blocker IPC 6 6 Blocker Enq TX-0289000B-0000005F 449: 449: is waiting for 74: Enq TX-021E0002-000001DA ??? Blocker Mutex a9fcc7b8 131: 131: is waiting for 74: Enq TX-0483001F-00000009 ??? Blocker Enq TX-00800010-00000BA0 ??? Blocker Mutex c0af249e 666: 666: is waiting for 74: Mutex 94389ed4 78: 78: is waiting for 74: Mutex 4ac40611 143: 143: is waiting for 74: Mutex 24c1c387 168: 168: is waiting for 74: Mutex 930636c9 752: 752: is waiting for 74: Enq TX-04660001-00000003 ??? Blocker Enq TX-01B6000A-00000022 ??? Blocker Enq TX-0166000F-000002C7 ??? Blocker Enq TX-02FF0008-000000A1 ??? Blocker Enq TX-01E10001-00000023 ??? Blocker Enq TX-0327000E-0000009E ??? Blocker Enq TX-05120016-00000002 615: 615: is waiting for 74: Enq TX-039F001D-00000011 ??? Blocker Enq TX-01CF000B-00000B2F ??? Blocker Enq TX-01130020-000001B6 ??? Blocker Enq TX-052A0021-00000002 635: 635: is waiting for 74: Mutex ebf68fee 579: 579: is waiting for 74: Enq TX-02350017-000000D6 ??? Blocker Enq TX-00BB0000-00000598 ??? Blocker Enq TX-0443000E-00000003 ??? Blocker Mutex e7bae014 344: 344: is waiting for 74: Mutex fe251793 616: 616: is waiting for 74: Mutex 750494ae 180: 180: is waiting for 74: Enq TX-01230010-000001C0 ??? Blocker Enq TX-0543001C-00000003 119: 119: is waiting for 124: Enq TX-04E60014-00000005 ??? Blocker Enq TX-00F1000A-000002AB ??? Blocker Mutex aa83fbd7 651: 651: is waiting for 74: Enq TX-058A0002-00000003 ??? Blocker Enq TX-03B00016-0000000F ??? Blocker Mutex 26e065a4 150: 150: is waiting for 74: Enq TX-0219001B-000001BE ??? Blocker Enq TX-00B9001D-00000069 ??? Blocker Enq TX-01110020-00000198 ??? Blocker Enq TX-04F3001B-00000002 ??? Blocker Enq TX-04A60015-00000002 ??? Blocker Enq TX-02D30015-0000008A ??? Blocker Enq TX-01540018-000001B7 ??? Blocker Enq TX-02240019-0000001C ??? Blocker Mutex e595002d 502: 502: is waiting for 74: Mutex 1661a4cb 732: 732: is waiting for 74: Enq TX-00320010-00003A12 ??? Blocker Enq TX-020F001F-00000027 ??? Blocker Enq TX-0387000A-0000004D 515: 515: is waiting for 74: Enq TX-01260014-0000012D ??? Blocker Enq TX-02EE001D-0000005F ??? Blocker Enq TX-004A0001-00000882 603: 603: is waiting for Enq TX-02240019-0000001C Mutex 4a18a781 258: 258: is waiting for 74: LOCK: Handle=0x325aa4c428 643: 643: is waiting for 74: Enq TX-037A0002-0000006E 118: 118: is waiting for 74: Enq TX-02460020-0000006D 493: 493: is waiting for Enq TX-00F1000A-000002AB PROCESS 74: J000 ---------------------------------------- SO: 0x31a2b2e440, type: 2, owner: (nil), flag: INIT/-/-/0x00 if: 0x3 c: 0x3 proc=0x31a2b2e440, name=process, file=ksu.h LINE:12721, pg=0 (process) Oracle pid:74, ser:153, calls cur/top: 0x305d24c378/0x305f3f5eb0 flags : (0x0) - flags2: (0x10), flags3: (0x10) intr error: 0, call error: 0, sess error: 0, txn error 0 intr queue: empty ksudlp FALSE at location: 0 (post info) last post received: 0 0 80 last post received-location: kji.h LINE:3691 ID:kjata: wake up enqueue owner last process to post me: 0x3182a6fca0 1 6 last post sent: 0 0 26 last post sent-location: ksa2.h LINE:285 ID:ksasnd last process posted by me: 0x3182a75038 2 6 (latch info) wait_event=0 bits=0x0 Process Group: DEFAULT, pseudo proc: 0x3162ddbe90 O/S info: user: oracle, term: UNKNOWN, ospid: 103036 OSD pid info: Unix process pid: 103036, image: oracle@xffdb1 (J000) Short stack dump: ksedsts()+465<-ksdxfstk()+32<-ksdxcb()+1927<-sspuser()+112<-__sighandler()<-semtimedop()+10 <-skgpwwait()+178<-ksliwat()+2046<-kslwaitctx()+163<-kjusuc()+3400 <-ksipgetctxi()+1759<-kqlmPin()+2943<-kqlmClusterLock()+237<-kglpnal()+4072 <-kglpin()+1381<-qostobkglcrt1()+640<-qostobkglcrt()+255<-qospsts()+1639 <-spefcmpa()+196<-spefmccallstd()+235<-pextproc()+41<-peftrusted()+150 <-psdexsp()+255<-rpiswu2()+1776<-psdextp()+700<-pefccal()+726<-pefcal()+224 <-pevm_FCAL()+169<-pfrinstr_FCAL()+75<-pfrrun_no_tool()+63<-pfrrun()+627 <-plsql_run()+649<-peidxr_run()+263<-peidxexe()+79<-kkxdexe()+338 <-kkxmpexe()+241<-kgmexwi()+605<-kgmexec()+2193<-evapls()+813 <-evaopn2()+808<-kkxmexcs()+133<-opiexe()+20880<-kpoal8()+2380 <-opiodr()+917<-kpoodr()+1401<-upirtrc()+2436<-kpurcsc()+98 <-kpuexec()+10790<-OCIStmtExecute()+39<-jslvec_execcb1()+672 <-jslvswu()+56<-jslve_execute0()+2257<-jslve_execute()+332 <-rpiswu2()+1776<-kkjex1e()+379<-kkjsexe()+711<-kkjrdp()+694 <-opirip()+958<-opidrv()+603<-sou2o()+103<-opimai_real()+250 <-ssthrdmain()+265<-main()+201<-__libc_start_main()+253 SO: 0x31c382f010, type: 4, owner: 0x31a2b2e440, flag: INIT/-/-/0x00 if: 0x3 c: 0x3 proc=0x31a2b2e440, name=session, file=ksu.h LINE:12729, pg=0 (session) sid: 6001 ser: 679 trans: 0x311e36fa28, creator: 0x31a2b2e440 flags: (0x8010041) USR/- flags_idl: (0x1) BSY/-/-/-/-/- flags2: (0x40009) -/-/INC DID: , short-term DID: txn branch: (nil) edition#: 100 oct: 170, prv: 0, sql: 0x323de178e8, psql: 0x32b5d0fc98, user: 0/SYS ksuxds FALSE at location: 0 service name: SYS$USERS client details: O/S info: user: oracle, term: UNKNOWN, ospid: 103036 machine: xffdb1 program: oracle@xffdb1 (J000) application name: DBMS_SCHEDULER, hash value=2478762354 action name: ORA$AT_OS_OPT_SY_1594, hash value=1524069073 Current Wait Stack: 0: waiting for 'library cache pin' handle address=0x325d938e08, pin address=0x325baec3e0, 100*mode+namespace=0x850fe00010003 wait_id=46488 seq_num=46502 snap_id=1 wait times: snap=6 min 2 sec, exc=6 min 2 sec, total=6 min 2 sec wait times: max=15 min 0 sec, heur=6 min 2 sec wait counts: calls=727 os=727 in_wait=1 iflags=0x15a2 There are 2136 sessions blocked by this session.
发现主要是74号进程阻塞了其他的
做hanganalyze分析
------------------------------------------------------------------------------- Chain 1: ------------------------------------------------------------------------------- Oracle session identified by: { instance: 1 (xffdb.xffdbsv1) os id: 82310 process id: 224, oracle@xffdb1 session id: 4 session serial #: 12237 } is waiting for 'enq: TX - row lock contention' with wait info: { p1: 'name|mode'=0x54580006 p2: 'usn<<16 | slot'=0x21e0002 p3: 'sequence'=0x1da time in wait: 3 min 48 sec timeout after: never wait id: 1260 blocking: 0 sessions current sql: UPDATE t_xifenfei subpartition(p201801_s32) SET INDICATORCODE = :1, LOWERLIMIT = :2, UPPERLIMIT = :3, AVGUNITPRICE = :4, TRADEITEMNAME = :5, short stack: ……………… wait history: * time between current wait and wait #1: 0.000220 sec 1. event: 'gc cr block 2-way' time waited: 0.000341 sec wait id: 1259 p1: ''=0x6 p2: ''=0x3590 p3: ''=0x44b * time between wait #1 and #2: 0.000284 sec 2. event: 'gc current block 3-way' time waited: 0.000663 sec wait id: 1258 p1: ''=0xa p2: ''=0x3ad02 p3: ''=0x2000001 * time between wait #2 and #3: 0.000383 sec 3. event: 'gc cr block 2-way' time waited: 0.000288 sec wait id: 1257 p1: ''=0x5 p2: ''=0x2e20 p3: ''=0x957 } and is blocked by => Oracle session identified by: { instance: 3 (xffdb.xffdbsv3) os id: 39472 process id: 587, oracle@xffdb3 session id: 2215 session serial #: 8213 } which is waiting for 'library cache lock' with wait info: { p1: 'handle address'=0x327f5ecea0 p2: 'lock address'=0x327a5ab660 p3: '100*mode+namespace'=0x850fe00010002 time in wait: 3 min 43 sec timeout after: 11 min 16 sec wait id: 2343 blocking: 3 sessions current sql: SELECT COUNT(*) COUNT FROM t_xifenfei subpartition(p201801_s32) WHERE TRADEITEMID = '679EA6DE428F414D014B3D5EC8DE5E32' short stack: ……………… wait history: * time between current wait and wait #1: 0.000908 sec 1. event: 'SQL*Net message from client' time waited: 0.001074 sec wait id: 2342 p1: 'driver id'=0x54435000 p2: '#bytes'=0x1 * time between wait #1 and #2: 0.000033 sec 2. event: 'SQL*Net message to client' time waited: 0.000003 sec wait id: 2341 p1: 'driver id'=0x54435000 p2: '#bytes'=0x1 * time between wait #2 and #3: 0.000069 sec 3. event: 'SQL*Net message from client' time waited: 0.001232 sec wait id: 2340 p1: 'driver id'=0x54435000 p2: '#bytes'=0x1 } and is blocked by => Oracle session identified by: { instance: 1 (xffdb.xffdbsv1) os id: 103036 process id: 74, oracle@xffdb1 (J000) session id: 6001 session serial #: 679 } which is waiting for 'library cache pin' with wait info: { p1: 'handle address'=0x325d938e08 p2: 'pin address'=0x325baec3e0 p3: '100*mode+namespace'=0x850fe00010003 time in wait: 3 min 47 sec timeout after: 11 min 12 sec wait id: 46488 blocking: 2099 sessions current sql: call dbms_stats.gather_database_stats_job_proc ( ) short stack: ………… wait history: * time between current wait and wait #1: 0.000038 sec 1. event: 'library cache lock' time waited: 0.012353 sec wait id: 46487 p1: 'handle address'=0x325d938e08 p2: 'lock address'=0x3259aee680 p3: '100*mode+namespace'=0x850fe00010003 * time between wait #1 and #2: 0.002509 sec 2. event: 'enq: IV - contention' time waited: 0.001079 sec wait id: 46486 p1: 'type|mode'=0x49560005 p2: 'id1'=0x53594e43 p3: 'id2'=0x15 * time between wait #2 and #3: 0.000085 sec 3. event: 'enq: IV - contention' time waited: 0.001817 sec wait id: 46485 p1: 'type|mode'=0x49560005 p2: 'id1'=0x4c4f434b p3: 'id2'=0x15 } Chain 1 Signature: 'library cache pin'<='library cache lock'<='enq: TX - row lock contention' Chain 1 Signature Hash: 0xa08ff7bf
到这里基本上可以确定是由于自动任务收集统计信息导致系统出现大量的library cache lock和library cache pin,另外可以确定大部分被阻塞在library cache 相关的select和dml语句都集中在t_xifenfei这个子分区表中,通过查询mos,发现相关bug:Bug 19790972 – “library cache lock” waits due to DBMS_STATS gather of stats for a subpartition