0

0

Oracle锁等待的处理方法

php中文网

php中文网

发布时间:2016-06-07 16:40:41

|

1481人浏览过

|

来源于php中文网

原创

锁等待的管理是数据库管理员在日常工作中会碰到较多的一个问题,一般来说大型的ERP锁等待的处理会相对较少,小型的应用系统锁等待

前言:锁等待的管理是数据库管理员在日常工作中会碰到较多的一个问题,一般来说大型的erp锁等待的处理会相对较少,小型的应用系统锁等待会相对比较多。

常规的锁等待的处理方法如下:

1) 先查找持有锁的对象:

脚本:select a.sid, b.spid from (select s.sid, s.paddr from v$session s,v$lock l WHERE l.sid = s.sid and l.block=1) a, v$process b where a.paddr=b.addr;

2)kill相应的session:

脚本:alter system kill session  'sid,serial#';

以上的操作可以处理大约80%的锁等待的问题,还有20%的锁等待问题通过以上的语句是解决不了的,最近在就碰到了一个,当进行kill session的时候出现了提示"ORA-00031: session marked for kill",这个问题可以有两个处理方法:

方法一、重启数据库:这个方法肯定是不推荐的,每个公司对系统的可用性都是有很高的要求的,一旦重启了系统就表示这个重启的过程中系统属于不可用的状态,IT的系统可用性就降低了。(该方法适合不同Oracle且连sqlplus都不知道怎么用的朋友)

方法二、从操作系统进行杀线程的操作,因为unix和windows操作系统的不一样,所以处理的方法也有些不一样;

1)unix和linux下面的操作步骤如下:

a)根据sid的信息找出操作系统的进程信息

脚本:select p.spid, oSUSEr, s.program  from v$session s,v$process p  where s.paddr=p.addr and s.sid=&SID;

 


SQL> select p.spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=&SID;

Enter value for sid: 23

old 1: select p.spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=&SID

new 1: select p.spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=23

 

SPID            OSUSER                                PROGRAM

------------  ----------------              -----------------------------------------

8782014            ecqadm                    dw.sapECQ_DVEBMGS00@joeoneecq (TNS V1-V3)

 

b)  root用户下,通过操作系统进行杀进程

 

脚本:kill -9  8782014

2)由于windows操作系统下面ORACLE在任务管理只能查看一个oracle.exe的进程,,当然不能直接对这个进程进行结束。oracle提供了相应的操作工具orakill,详细的操作如下:

亿众购物系统
亿众购物系统

一套设计完善、高效的web商城解决方案,独有SQL注入防范、对非法操作者锁定IP及记录功能,完整详细的记录了非法操作情况,管理员可以随时查看网站安全日志以及解除系统自动锁定的IP等前台简介:  1)系统为会员制购物,无限会员级别。  2)会员自动升级、相应级别所享有的折扣不同。  3)产品可在缺货时自动隐藏。  4)自动统计所有分类中商品数量,并在商品分类后面显示。  5)邮件列表功能,可在线订阅

下载

 

 


C:\Users\Administrator>orakill orakill

 

Usage: orakill sid thread

 

where sid = the Oracle instance to target

thread = the thread id of the thread to kill

 

The thread id should be retrieved from the spid column of a query such as:

 

select spid, osuser, s.program from

v$process p, v$session s where p.addr=s.paddr

 
orakill sid thread

sid:表示要杀死的进程属于的实例名

thread:是要杀掉的线程号,即第3步查询出的spid。

例:c:>orakill orcl  8782014

总结:公司的ERP系统运行了3年的时间了,数据量也到2TB了,数据库也是公司所有的数据库里面最繁忙的一个了,但是从运行到现在还没有进行过kill session的操作。相比公司的另外一个属于自己开发的系统,数据量10G不到,但是几乎每个月都会出现锁等待,需要DBA从中干预。锁等待或死锁不是数据库的问题而是应用程序的问题,经常遇到有这些问题的应用,恭喜你升官加薪的机会就在眼前。

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle性能优化 之 共享池

本文永久更新链接地址:

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

4

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

42

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

4

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.2万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号