|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MySQL采用双重授权(DualLicensed),它们是GPL和MySQLAB制定的商业许可协议。因为Oracle有外部锁定(的机制),因而有些时分它关于找到并停止Oracle里锁定命据库资本的会话很有效。起首,你必要找到一切的Oracle会话。上面是一段剧本,用来显现Oracle内一切会话的细节。
remsession.sql-displaysallconnectedsessions
setechooff;
settermouton;
setlinesize80;
setpagesize60;
setnewpage0;
select
rpad(c.name||:,11)||rpad(currentlogons=||
(to_number(b.sessions_current)),20)||cumulativelogons=||
rpad(substr(a.value,1,10),10)||highwatermark=||
b.sessions_highwaterInformation
from
v$sysstata,
v$licenseb,
v$databasec
where
a.name=logonscumulative
;
ttitle"dbnameDatabase|UNIX/OracleSessions";
setheadingoff;
selectSessionsondatabase||substr(name,1,8)fromv$database;
setheadingon;
select
substr(a.spid,1,9)pid,
substr(b.sid,1,5)sid,
substr(b.serial#,1,5)ser#,
substr(b.machine,1,6)box,
substr(b.username,1,10)username,
substr(b.osuser,1,8)os_user,
substr(b.program,1,30)program
from
v$sessionb,
v$processa
where
b.paddr=a.addr
and
type=USER
orderby
spid;
ttitleoff;
setheadingoff;
selectTokill,enterSQLPLUS>ALTERSYSTEMKILLSESSION,
||SID,SER#||||;fromdual;
spooloff;
TueMar19page11
dbnameDatabase
UNIX/OracleSessions
PIDSIDSER#BOXUSERNAMEOS_USERPROGRAM
-------------------------------------------------------------------------
623051251MWCCOAPPSTEilersS:ORANTBINF50RUN32.EXE
6233692729MWCCOAPPSTEilersS:ORANTBINR30RBE32.exe
682375661corp-hAPPSapplmgrf45runm@corp-hp1(TNSV1-V3)
682385317corp-hAPPSapplmgr
7791221307corp-hAPPSapplmgr
932211624245A_10APPSlmichelF50RUN32.EXE
933067440corp-hAPPSapplmgr
一旦我们找到了Oracle里一切的会话,那末下一步就是运转一个剧本来检测一切已被锁定的会话。这是由于,Oracle大概没法以充足快的速率检测到一个不举动(dead)的会话,用以避免对数据会见的阻断(blockage)。你能够运转上面的剧本以定位那些控制着锁定资本的会话。
select
sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from
v$locked_objectlo,
dba_objectsao,
v$sessionsess
where
ao.object_id=lo.object_id
and
lo.session_id=s.sid;
TueMar19page1
Locked
objects
OracleOSObject
sidser#userUserNameLOCKED_MODE
-----------------------------------------------------------------------
2156APPSapplmgrFND_CONCURRENT_REQUESTS2
77535APPSapplmgrMTL_SYSTEM_ITEMS2
126161APPSoracleSO_LINES_ALL2
一旦定位了已锁定的会话,你就能够利用上面的剧本来主动地创立ALTERSESSION句法,用来停止你所但愿停止的会话,如许就可以够将锁定的会话从Oracle里扫除失落。
spoolrun_nuke.sql
select
altersystemkillsession||
sess.sid||,||sess.serial#||;
from
v$locked_objectlo,
dba_objectsao,
v$sessionsess
where
ao.object_id=lo.object_id
and
lo.session_id=s.sid;
在创立完run_nuke.sql文件以后,你就能够敏捷地选择那些要被停止的会话并独自地运转它们。
人们常说“成功孕育成功”,这种说法明显非常适合MySQL的情况。MySQL学习教程这个开源数据库号称在全世界有超过110万份的完全安装。 |
|