仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1037|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL编程:找到并停止Oracle9i里被锁定的会话

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:22:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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万份的完全安装。
admin 该用户已被删除
沙发
发表于 2015-1-19 09:32:59 | 只看该作者
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
乐观 该用户已被删除
板凳
发表于 2015-1-24 15:46:25 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
透明 该用户已被删除
地板
发表于 2015-2-2 06:06:32 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
精灵巫婆 该用户已被删除
5#
发表于 2015-2-7 17:17:50 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-22 20:07:59 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
飘灵儿 该用户已被删除
7#
发表于 2015-3-7 02:01:55 | 只看该作者
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
因胸联盟 该用户已被删除
8#
发表于 2015-3-14 07:52:57 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
变相怪杰 该用户已被删除
9#
发表于 2015-3-21 01:31:05 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 12:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表