国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

library cache lock 的解決案例

2024-07-21 02:05:57
字體:
來源:轉載
供稿:網友
,歡迎訪問網頁設計愛好者web開發。
 下午,業務人員報告,執行任何和zzss03201281cs_no表有關的操作都會hang住,包括desc zzss03201281cs_no,也會hang在那里

第一感覺是鎖了,于是,我看看鎖

sql> select * from v$lock where block=1;

no rows selected

sql>
sql> select * from gv$lock where block=1;

no rows selected

sql>

 

再看看等待事件:

sql> col event for a30
sql> l
  1* select event,p1,p2,sid from v$session_wait where event='library cache lock'
sql> /

event                                  p1         p2        sid
------------------------------ ---------- ---------- ----------
library cache lock             1.3835e+19 1.3835e+19         32

sql> /

event                                  p1         p2        sid
------------------------------ ---------- ---------- ----------
library cache lock             1.3835e+19 1.3835e+19         32

sql> /

event                                  p1         p2        sid
------------------------------ ---------- ---------- ----------
library cache lock             1.3835e+19 1.3835e+19         32

。。。

 

奇怪,怎么這么多 library cache lock  ?

sql> show user
user is "sys"
sql> exec dbms_system.set_ev(32,27506,10046,12,'');

pl/sql procedure successfully completed.

elapsed: 00:00:00.10
sql> l
  1  select    d.value
  2         || '/'
  3         || lower (rtrim (i.instance, chr (0)))
  4         || '_ora_'
  5         || p.spid
  6         || '.trc' trace_file_name
  7    from (select p.spid
  8            from v$mystat m, v$session s, v$process p
  9           where m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr) p,
 10         (select t.instance
 11            from v$thread t, v$parameter v
 12           where v.name = 'thread'
 13             and (v.value = 0 or t.thread# = to_number (v.value))) i,
 14         (select value
 15            from v$parameter
 16*          where name = 'user_dump_dest') d
sql> /

trace_file_name
--------------------------------------------------------------------------------
/ora9i/app/oracle/admin/csmisc/udump/csmisc2_ora_2708.trc

elapsed: 00:00:00.10
sql>

 

sql> select xidusn, object_id, session_id, locked_mode from v$locked_object;

    xidusn  object_id session_id locked_mode
---------- ---------- ---------- -----------
        14      35202         31           3
        15         18         30           3

sql> col object_name format a30
sql> select owner,object_name,status from dba_objects where object_id=35202;

owner
------------------------------
object_name
--------------------------------------------------------------------------------
status
-------
sys
plan_table
valid


sql>

這個對象顯然不是我們關注的。


sql> l
/  1* select owner,object_name,status from dba_objects where object_id=18
sql>

owner                          object_name                    status
------------------------------ ------------------------------ -------
sys                            obj$                           valid

就是這個對象搞得,估計是開發人員異常退出一些進程

sql> c/18/30
  1* select serial#,username,command,lockwait,status,schemaname,osuser,machine,terminal,program,module from v$session where sid=30
sql> /

   serial# username                          command lockwait         status
---------- ------------------------------ ---------- ---------------- --------
schemaname                     osuser
------------------------------ ------------------------------
machine
----------------------------------------------------------------
terminal                       program
------------------------------ ------------------------------------------------
module
------------------------------------------------
     17921 pubuser                                 0                  active
pubuser                        report16
cs_dc02

   serial# username                          command lockwait         status
---------- ------------------------------ ---------- ---------------- --------
schemaname                     osuser
------------------------------ ------------------------------
machine
----------------------------------------------------------------
terminal                       program
------------------------------ ------------------------------------------------
module
------------------------------------------------
                               [email protected]_dc02 (tns v1-v3)
sql*plus


sql> select b.username username, b.terminal terminal,b.program program,b.spid
  2  from v$session a, v$process b
where a.paddr=b.addr and a.sid ='&sid';
  3  enter value for sid: 30
old   3: where a.paddr=b.addr and a.sid ='&sid'
new   3: where a.paddr=b.addr and a.sid ='30'

username        terminal
--------------- ------------------------------
program                                          spid
------------------------------------------------ ------------
ora9i           unknown
[email protected]_dc02 (tns v1-v3)                       835

很顯然,是由于report16用戶執行了某些ddl操作,然后,異常退出,造成系統的鎖(估計和bug有關,有待考證)
sql> host
[email protected]_dc02:/ora9i/app/oracle/product/920/rdbms/admin > ps -ef | grep 835
   ora9i  4619  4617  1 14:48:18 pts/te    0:00 grep 835
   ora9i   835     1  0  jan  5  ?         0:01 oraclecsmisc2 (local=no)
[email protected]_dc02:/ora9i/app/oracle/product/920/rdbms/admin > kill 835
[email protected]_dc02:/ora9i/app/oracle/product/920/rdbms/admin > exit

sql> select xidusn, object_id, session_id, locked_mode from v$locked_object;

    xidusn  object_id session_id locked_mode
---------- ---------- ---------- -----------
        14      35202         31           3

sql>

kill掉這個進程后,問題解決了。(遺憾的是,忘了看看這個家伙執行的sql了,呵呵)
sql> desc zzss03201281cs_no
error:
ora-04043: object zzss03201281cs_no does not exist


sql> desc zzss03201281cs_no
error:
ora-04043: object zzss03201281cs_no does not exist


sql>

sql> exec dbms_system.set_ev(32,27506,0,0,'');

pl/sql procedure successfully completed.

sql>

查看trace文件,:

果然大量的wait:

wait #1: nam='library cache lock' ela= 316 p1=-4611686013647472824 p2=-4611686013691747544 p3=1301
wait #1: nam='library cache lock' ela= 326 p1=-4611686013647472824 p2=-4611686013691747544 p3=1301
wait #1: nam='library cache lock' ela= 398 p1=-4611686013647483736 p2=-4611686013691747816 p3=1301
wait #1: nam='library cache lock' ela= 552 p1=-4611686013647483736 p2=-4611686013691747816 p3=1301
wait #1: nam='library cache lock' ela= 330 p1=-4611686013649700264 p2=-4611686013691715248 p3=1301
wait #1: nam='library cache lock' ela= 141 p1=-4611686013649700264 p2=-4611686013691715248 p3=1301
wait #1: nam='library cache lock' ela= 223 p1=-4611686013647485472 p2=-4611686013691762016 p3=1301
wait #1: nam='library cache lock' ela= 93 p1=-4611686013647485472 p2=-4611686013691762016 p3=1301
wait #1: nam='library cache lock' ela= 223 p1=-4611686013595934816 p2=-4611686013642107320 p3=1301


 




 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊川县| 和政县| 扬中市| 德清县| 临夏市| 清水县| 亳州市| 白朗县| 综艺| 巴里| 洛宁县| 乐平市| 黑龙江省| 宾阳县| 应城市| 淄博市| 卢湾区| 富源县| 沛县| 张家界市| 洪泽县| 永靖县| 广宗县| 新密市| 上思县| 松潘县| 北安市| 北票市| 泰来县| 承德县| 丹巴县| 田东县| 上饶县| 大悟县| 阿城市| 广东省| 从江县| 民乐县| 芒康县| 康乐县| 资源县|