【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】oceanbase v4.2
【问题描述】通过2个session 制造行锁等待,想通过GV$SESSION_WAIT查看会话等待信息,却查不到。
步骤1 :
会话1 sid为 387471 执行UPDATE语句
obclient(OBTEST@obpaydb)[OBTEST]> select userenv(‘sid’) from dual;
±---------------+
| USERENV(‘SID’) |
±---------------+
| 387471 |
±---------------+
1 row in set (0.002 sec)
obclient(OBTEST@obpaydb)[OBTEST]> update test set name=‘kk’ where id=3;
Query OK, 1 row affected (0.173 sec)
Rows matched: 1 Changed: 1 Warnings: 0
步骤2:
会话2 sid 为 315774 执行update语句
obclient(OBTEST@obpaydb)[OBTEST]> select userenv(‘sid’) from dual;
±---------------+
| USERENV(‘SID’) |
±---------------+
| 315774 |
±---------------+
1 row in set (0.001 sec)
obclient(OBTEST@obpaydb)[OBTEST]> update test set name=‘kk’ where id=3;
–此处会话等待会话1行锁
通过gv$ob_processlist,gv$ob_transaction_participants,gv$ob_locks可以查看到sid 387471会话 的session id为3221865089 SID 为315774 的session id为3221865754
我想通过GV$SESSION_WAIT 查看会话等待事件:
obclient(root@sys)[oceanbase]> select * from GV$SESSION_WAIT where sid in (387471 ,315774 ,3221865089 ,3221865754);
Empty set (0.023 sec)
结果集为空,通过state 为waiting状态过滤得到如下结果:
obclient(root@sys)[oceanbase]> select * from GV$SESSION_WAIT where state =‘WAITING’;
±--------------±-------±-------------±---------±---------------------±---------------±--------±-------±-----±-------±-----±--------------±------------±-----------±--------±------------------±---------------------±---------------------------+
| SID | CON_ID | SVR_IP | SVR_PORT | EVENT | P1TEXT | P1 | P2TEXT | P2 | P3TEXT | P3 | WAIT_CLASS_ID | WAIT_CLASS# | WAIT_CLASS | STATE | WAIT_TIME_MICRO | TIME_REMAINING_MICRO | TIME_SINCE_LAST_WAIT_MICRO |
±--------------±-------±-------------±---------±---------------------±---------------±--------±-------±-----±-------±-----±--------------±------------±-----------±--------±------------------±---------------------±---------------------------+
| 678604832768 | 1 | 172.30.60.11 | 2882 | db file compact read | fd | 14397 | offset | 0 | size | 0 | 109 | 9 | SYSTEM_IO | WAITING | -5548232102978607 | 5548232112978607 | 0 |
| 747324309504 | 1 | 172.30.60.11 | 2882 | sleep wait | sleep_interval | 200000 | | 0 | | 0 | 106 | 6 | IDLE | WAITING | -5548232089096477 | -1 | 0 |
| 1842540969984 | 1 | 172.30.60.11 | 2882 | sleep wait | sleep_interval | 1000000 | | 0 | | 0 | 106 | 6 | IDLE | WAITING | -5548231100980633 | -1 | 0 |
| 2787433775104 | 1001 | 172.30.60.11 | 2882 | sleep wait | sleep_interval | 1000000 | | 0 | | 0 | 106 | 6 | IDLE | WAITING | -5548231077933536 | -1 | 0 |
| 5841155522560 | 1002 | 172.30.60.11 | 2882 | sleep wait | sleep_interval | 1000000 | | 0 | | 0 | 106 | 6 | IDLE | WAITING | -5548230273385839 | -1 | 0 |
| 747324309504 | 1 | 172.30.60.41 | 2882 | sleep wait | sleep_interval | 200000 | | 0 | | 0 | 106 | 6 | IDLE | WAITING | -6156173939607750 | -1 | 0 |
| 747324309504 | 1 | 172.30.60.21 | 2882 | sleep wait | sleep_interval | 200000 | | 0 | | 0 | 106 | 6 | IDLE | WAITING | 209522726861692 | -1 | 0 |
±--------------±-------±-------------±---------±---------------------±---------------±--------±-------±-----±-------±-----±--------------±------------±-----------±--------±------------------±---------------------±---------------------------+
也没有发现行锁等待的会话,不知道为什么,是ob这块有什么bug吗