|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL。然而,如果你的项目不是在GPL协议下的话,你必须为使用MySQL来支付许可费用,或者你可能因为这个因素而将你的项目改为遵循GPL。oracle|window
怎样在Windows2000情况中Kill失落单个Oracle线程
http://metalink.oracle.com
关头字:OracleThreadKill
形貌:本文申明在Windows情况下,Orakill工具的利用
注释:
你碰到过上面相似的情形吗?一个用户历程临时占用资本而不开释,招致Oracle历程占用了体系的大批资本,Oralce体系的效力变得很低。假如复杂的封闭重启Oracle实例,必将影响一切的用户。有无举措仅仅只Kill失落有成绩的用户历程而不必封闭全部Oralce实例呢?谜底是能够的,利用Oralce供应的一个名叫Orakill的工具。
人人都晓得,Windows2000是一个基于线程的操纵体系,而不是象Unix、Linux那样基于历程的操纵体系。全部Oracle的背景历程、用户历程等,在Windows2000情况下,都包括在ORACLE.EXE这独自的一个别系历程中了,经由过程检察’义务办理器’DD’历程’就能够看到。假如你不是利用MTS多线程服务器的形式,假如你Kill失落ORACLE.EXE这个历程,将招致全部Oracle实例封闭,好像利用Shutdownabort命令一样。
因为Windows本人没有提过一个专门用来Kill失落单个线程的工具,因而Oracle从Oracle7.3.3.6入手下手,本人供应了一个基于字符界面的用来在Windows情况下强迫Kill失落一个线程的工具DDOrakill。
Orakill的利用办法以下:
Dos提醒符下:>orakillsidthread
申明:sidOracle的Sid号
threadOracle的线程id号
在Sql*plus工具内里能够查询到Oracle的线程号
sql:>Selectp.spidTHREADID,s.osuser,s.program
sql:>Fromv$processp,v$sessions
sql:>Wherep.addr=s.addr
了局以下:
THREADIDOSUSERPROGRAM
-------------------------------------------------------------
169SYSTEMORACLE.EXE
215SYSTEMORACLE.EXE
280SYSTEMORACLE.EXE
267SYSTEMORACLE.EXE
287SYSTEMORACLE.EXE
288SYSTEMORACLE.EXE
271SYSTEMORACLE.EXE
282SYSTEMORACLE.EXE
266
269
239PROD_NTdjonesSVRMGRL.EXE
281SSMITH-PCmithSQLPLUSW.EXE
12rowsselected.
必要注重的是,假如你Kill失落的是Oracle的中心背景线程(DBWR,LGWR,SMONorPMON),将招致Oracle实例封闭。反省Oracle的中心背景线程的办法以下:
sql:>Selectvb.nameNOME,vp.programePROCESSNAME,vp.spidTHREADID,vs,sidSID
sql:>Fromv$sessionvs,v$processvp,v$bgprocessvb
sql:>Wherevb.addr‘00’and
sql:>vb.paddr=vp.addrand
sql:>vp.addr=vs.paddr
查询了局以下:
NOMEPROCESSNAMETHREADIDSID
-------------------------------------------------------
PMONORACLE.EXE1691
DBW0ORACLE.EXE2152
LGWRORACLE.EXE2803
CKPTORACLE.EXE2674
SMONORACLE.EXE2875
RECOORACLE.EXE2886
SNP0ORACLE.EXE2717
SNP1ORACLE.EXE2828
8rowsselected.
接待人人来交换mailto:stevenqiu@sohu.com
而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。 |
|