热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle锁等待的处理方法

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

锁等待的管理是数据库管理员在日常工作中会碰到较多的一个问题,一般来说大型的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,详细的操作如下:


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性能优化 之 共享池


推荐阅读
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • 如何将CentOS8转换为CentOSStream
    CentOS Stream是一个持续交付的Linux发行版,它在RHEL之前处于领先地位。它将具有滚动发布,即不断进行更改。CentOS将成为一个上游版本,它将具有测试补丁和更新。 ... [详细]
  • 系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ... [详细]
  • 本文介绍了在Linux系统中设置文件ACL权限的方法和使用说明,包括在centos7.3和centos6.9中开启ACL权限的两种方法:在挂载时指定打开ACL权限和修改默认的属性信息。同时提供了对ACL权限的详细解释和应用场景。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • Linux下安装依赖包版本高解决方法
    本文介绍了在Linux系统下,当已安装的依赖包版本高于需要安装的依赖包版本时,解决方法包括欺骗安装程序和修改相关配置文件等操作。针对不同情况,提供了不同的解决方案。 ... [详细]
author-avatar
tttrj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有