This man is too old to remember everything in his brain. Right now, he needs a place to write down what he has studied.
標籤
4GL
(1)
人才發展
(10)
人物
(3)
太陽能
(4)
心理
(3)
心靈
(10)
文學
(31)
生活常識
(14)
光學
(1)
名句
(10)
即時通訊軟體
(2)
奇狐
(2)
爬蟲
(1)
音樂
(2)
產業
(5)
郭語錄
(3)
無聊
(3)
統計
(4)
新聞
(1)
經濟學
(1)
經營管理
(42)
解析度
(1)
遊戲
(5)
電學
(1)
網管
(10)
廣告
(1)
數學
(1)
機率
(1)
雜趣
(1)
證券
(4)
證券期貨
(1)
ABAP
(15)
AD
(1)
agentflow
(4)
AJAX
(1)
Android
(1)
AnyChart
(1)
Apache
(14)
BASIS
(4)
BDL
(1)
C#
(1)
Church
(1)
CIE
(1)
CO
(38)
Converter
(1)
cron
(1)
CSS
(23)
DMS
(1)
DVD
(1)
Eclipse
(1)
English
(1)
excel
(5)
Exchange
(4)
Failover
(1)
Fedora
(1)
FI
(57)
File Transfer
(1)
Firefox
(3)
FM
(2)
fourjs
(1)
Genero
(1)
gladiatus
(1)
google
(1)
Google Maps API
(2)
grep
(1)
Grub
(1)
HR
(2)
html
(23)
HTS
(8)
IE
(1)
IE 8
(1)
IIS
(1)
IMAP
(3)
Internet Explorer
(1)
java
(4)
JavaScript
(22)
jQuery
(6)
JSON
(1)
K3b
(1)
ldd
(1)
LED
(3)
Linux
(117)
Linux Mint
(4)
Load Balance
(1)
Microsoft
(2)
MIS
(2)
MM
(51)
MSSQL
(1)
MySQL
(27)
Network
(1)
NFS
(1)
Office
(1)
OpenSSL
(1)
Oracle
(126)
Outlook
(3)
PDF
(6)
Perl
(60)
PHP
(33)
PL/SQL
(1)
PL/SQL Developer
(1)
PM
(3)
Postfix
(2)
postfwd
(1)
PostgreSQL
(1)
PP
(50)
python
(5)
QM
(1)
Red Hat
(4)
Reporting Service
(28)
ruby
(11)
SAP
(234)
scp
(1)
SD
(16)
sed
(1)
Selenium
(3)
Selenium-WebDriver
(5)
shell
(5)
SQL
(4)
SQL server
(8)
sqlplus
(1)
SQuirreL SQL Client
(1)
SSH
(2)
SWOT
(3)
Symantec
(2)
T-SQL
(7)
Tera Term
(2)
tip
(1)
tiptop
(24)
Tomcat
(6)
Trouble Shooting
(1)
Tuning
(5)
Ubuntu
(37)
ufw
(1)
utf-8
(1)
VIM
(11)
Virtual Machine
(2)
VirtualBox
(1)
vnc
(3)
Web Service
(2)
wget
(1)
Windows
(19)
Windows
(1)
WM
(6)
Xvfb
(2)
youtube
(1)
yum
(2)
2012年9月4日 星期二
Library cache lock 解決方式
>>1 讓Oracle dump trace file
SQL> ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL 8';
>>2 dump 的目錄
SQL> show parameter user_dump_dest
NAME TYPE VALUE
------------------------------------ ---------- ------------------------------
user_dump_dest string /opt/oracle/diag/rdbms/dwp01/dwp01/trace
SQL> exit
>>3 去alert file找出trace file檔名
oracle@aot-dwp01:/opt/oracle/diag/rdbms/dwp01/dwp01/trace$ tail -100 alert_dwp01.log
...
...
...
Tue Sep 04 11:40:30 2012
Thread 1 advanced to log sequence 135140 (LGWR switch)
Current log# 2 seq# 135140 mem# 0: /oracle/dwp01/redo02.log
Tue Sep 04 11:42:55 2012
System State dumped to trace file /opt/oracle/diag/rdbms/dwp01/dwp01/trace/dwp01_ora_13383.trc <<剛剛的動作,讓Oracle dump此trace file
>>4 找出被block pid,再去trace file 用vi找出 PROCESS <pid>
SQL > select sid from v$session_wait where event = 'library cache lock'; <<找出被librarya cache lock的session
SQL > SELECT PID FROM V$PROCESS WHERE ADDR = (SELECT PADDR FROM V$SESSION WHERE SID='355'); <<找出上一行session的pid
>>5 找到 PROCESS <pid>後,用 waiting for字眼找出block別人的handle address (此次例子是handle address=0x158bf4188)
0: waiting for 'library cache lock'
handle address=0x158bf4188, lock address=0x12bf22a60, 100*mode+namespace=0x1888a00010003
wait_id=123 seq_num=124 snap_id=1
wait times: snap=6 min 47 sec, exc=6 min 47 sec, total=6 min 47 sec
wait times: max=infinite, heur=6 min 47 sec
wait counts: calls=137 os=137
in_wait=1 iflags=0x15a2
>>6 用vi找出哪一個PROCESS擁有此handle address,以下為此次例子,並往上用vi移動,找出是哪一個PROCESS <pid>
Dumping one waiter:
inst: 1, sid: 355, ser: 23
wait event: 'library cache lock'
p1: 'handle address'=0x158bf4188
p2: 'lock address'=0x12bf22a60
p3: '100*mode+namespace'=0x1888a00010003
row_wait_obj#: 4294967295, block#: 0, row#: 0, file# 0
min_blocked_time: 407 secs, waiter_cache_ver: 55785
Wait State:
fixed_waits=0 flags=0x22 boundary=(nil)/-1
>>7 找出其os process id後,用os指令 kill -9 <spid> 解決
select a.spid
from v$process a,v$session b
where a.pid = 87
and a.addr = b.paddr
>>8 kill -9 <spid>
oracle@aot-dwp01:~$ kill -9 <spid>
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言