手动模拟获取latch
程序员文章站
2024-01-14 21:59:16
...
手动模拟获取latch 随意dump一个latches结构文件: SQL oradebug dump latches 10 ORA-00074: no process has been specified SQL oradebug setmypid Statement processed. SQL oradebug dump latches 10 Statement processed. SQL oradebug tracefile_name /o
手动模拟获取latch随意dump一个latches结构文件:
SQL> oradebug dump latches 10
ORA-00074: no process has been specified
SQL> oradebug setmypid
Statement processed.
SQL> oradebug dump latches 10
Statement processed.
SQL> oradebug tracefile_name
/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_5564.trc
找到文件并随便找一个latch地址查看:
我们这里找的是地址为0x60019d98的一个active checkpoint queue,当前状态为free:
60019d98 active checkpoint queue latch level=5
Location from where latch is held: kcbk.h LINE:2222 ID:kcbbacq: scan active checkpoints:
Context saved from call: 0
state=free [value=0] wlstate=free [value=0]
gotten 2345 times wait, failed first 0 sleeps 0
gotten 0 times nowait, failed: 0
通过oradebug验证:
SQL> oradebug peek 0x60019d98 8
[060019D98, 060019DA0) = 00000000 00000000
该latch的当前值为0,确为free状态,我将它值修改为1:
SQL> oradebug poke 0x60019d98 2 1
BEFORE: [060019D98, 060019D9C) = 00000000
AFTER: [060019D98, 060019D9C) = 00000001
再次dump一个latches结构文件,并找到上述latch的信息:
60019d98 active checkpoint queue latch level=5
Location from where latch is held: kcbk.h LINE:2222 ID:kcbbacq: scan active checkpoints:
Context saved from call: 0
state=busy [holder orapid=1] wlstate=free [value=0]
waiters [orapid (seconds since: put on list, posted, alive check)]:
10 (30, 1402142587, 30)
waiter count=1
gotten 2607 times wait, failed first 0 sleeps 0
gotten 0 times nowait, failed: 0
此时状态为busy。
推荐阅读
-
手动模拟获取latch
-
python模拟登录百度代码分享(获取百度贴吧等级)
-
【求助】php使用curl模拟post提交数据获取目标网站信息,求解?
-
PHP中使用CURL模拟登录并获取数据实例_php实例
-
ASP.NET后台手动调用POST提交并获取返回值,用于短信平台接口
-
python_爬虫_通过selenium获取人人网cookie值并模拟登陆个人界面
-
PHP中使用CURL模拟登录并获取数据实例_php实例
-
验证码-php中如何用curl模拟http头信息进行模拟登陆并获取信息
-
我已经把session数据存入数据库了,我想手动解码获取所有session_id数据,怎么写呢?
-
Android编程实现获取标题栏、状态栏的高度、屏幕大小及模拟Home键的方法