一、数据库会话数目发芽6 C a, V. G9 r1 _
4 S- _& G/ l& _) i3 T0 f
发芽当前数据库会话数目:select * from v$session, \" P8 r6 m$ p) n% R
6 _& S% j. y5 e6 ~, s; s
改削数据库最大会话数目:alter system set processes=500 scope=spfile (在呼吁模式下执行)
3 {/ v7 {4 {, H( r& t & W+ k/ c6 s; X$ H0 k
查看当前数据库最大会话上限:show parameters processes; ' ~' t. l% C) O) [8 y7 y) Y4 N3 z# ]
5 U3 r' s, {5 B' n2 T: H 查看当前数据库DBLINK最多可打开的毗连数目:show parameters open_links;8 R: M0 K1 T2 v
3 U+ w# I$ D$ D) m1 V1 [0 o
二、删除被锁住的Session; Z; `- @0 n5 T2 [, h7 f
* T5 `7 K2 f9 }$ {! c8 r* R 1、一般的话只要下面两条呼吁就可以:
+ G1 h$ ~5 [* s- H {" c
) S, {$ ~7 J& E8 d (1)select t1.sid,t1.serial#,t1.username,t1.logon_time from v$session t1,
3 _5 a2 V( k8 a/ V% h
0 C+ q% q% U6 N& h% }! h v$locked_object t2 where t1.sid=t2.session_id order by t1.logon_time; ! z/ d6 C: I4 I9 Q" ~
8 l; F5 h9 o' v$ X) y7 S
(2)alter system kill session 'sid, serial#';3 c: y( L/ D( w2 D: ]5 v& z$ H
备注:此鱿辅2)中的sid和serial#是(1)中发芽出来的。
) x6 J% W) S6 j, k, V2 H + S; o" w7 D( U
2、有时这种编制仍是删不失踪踪,就要用ORAKILL呼吁了0 \# E/ o5 {1 J7 }7 a
(1)select object_name,machine,s.sid,s.serial# from v$locked_object l,5 |7 f* N B `, G% u5 |
dba_objects o ,v$session s where l.object_id=o.object_id and l.session_id=s.sid;/ m% o* e9 P6 Z! U
% h7 Q( T! w/ {* C( s' X) R7 Z
8 v2 i; \4 G. `/ @- t+ U9 J5 m (2)select spid ,osuser,s.program from v$session s,
4 Y. _& Q" \* x) W
6 x. T5 I' W( q+ c v$process p where s.paddr=p.addr and s.sid=93;* x9 z+ M4 l) c$ D) k# v
7 E+ i8 W+ q# a0 d% \9 o (3)orakill sid spid(unix 系统下,root身份:kill sid spid)2 f* x& T0 Q; D
9 ~# _* f% H. a: @9 h7 Q [ 声名:) @ H3 O) v+ a2 k ^# N: O8 Q- X
" P: k. W: ?* O3 X# {+ R 第一条2(1)和1(1)效不美不美观是一样的,只是查出的内容更多,我们要的,关头是这个sid,
1 {% r' F6 ~) t0 X% ^6 n/ _ 8 S+ `" q1 j- F/ _% n
第二条中的93,就是第一条中发芽出的sid;# c' K; ?3 B6 d" D3 T
2 i# d- l' N1 i- b' S8 A 第三条要在系统下进行,cmd下直接使用,spid就是第二条中查出来的spid.4 E x+ T+ O! G- a% ]9 `" ^) [
8 R7 E Z# ]: F ( t2 L- a# i! n% `9 V
此外,unix下的,没现实使用,原例子是这么写的 kill -9 12345(12345是spid,前面-9小我估量是数据库的sid吧…) |