zoukankan      html  css  js  c++  java
  • Orace数据库锁表的处理与总结<摘抄与总结二>

    当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起,或导致死锁的发生,产生ORA-60的错误。

    TX锁等待的分析

    Oracle数据库中一般使用行级锁。

    当Oracle检测到死锁产生时,中断并回滚死锁相关语句的执行,报ORA-00060的错误并记录在数据库的日志文件alertSID.log中。同时在user_dump_dest下产生了一个跟踪文件,详细描述死锁的相关信息。

    在日常工作中,如果发现在日志文件中记录了ora-00060的错误信息,则表明产生了死锁。这时需要找到对应的跟踪文件,根据跟踪文件的信息定位产生的原因。

    表2 数据字典视图说明

    视图名

    描述

    主要字段说明

    v$session

    查询会话的信息和锁的信息。

    sid,serial#:表示会话信息。

    program:表示会话的应用程序信息。

    row_wait_obj#:表示等待的对象,和dba_objects中的object_id相对应。

    v$session_wait

    查询等待的会话信息。

    sid:表示持有锁的会话信息。

    Seconds_in_wait:表示等待持续的时间信息

    Event:表示会话等待的事件。

    v$lock

    列出系统中的所有的锁。

    Sid:表示持有锁的会话信息。

    Type:表示锁的类型。值包括TM和TX等。

    ID1:表示锁的对象标识。

    lmode,request:表示会话等待的锁模式的信

    息。用数字0-6表示,和表1相对应。

    dba_locks

    对v$lock的格式化视图。

    Session_id:和v$lock中的Sid对应。

    Lock_type:和v$lock中的type对应。

    Lock_ID1: 和v$lock中的ID1对应。

    Mode_held,mode_requested:和v$lock中

    的lmode,request相对应。

    v$locked_object

    只包含DML的锁信息,包括回滚段和会话信息。

    Xidusn,xidslot,xidsqn:表示回滚段信息。和

    v$transaction相关联。

    Object_id:表示被锁对象标识。

    Session_id:表示持有锁的会话信息。

    Locked_mode:表示会话等待的锁模式的信

    息,和v$lock中的lmode一致。

    解锁及Kill Session:

    使用下面的语法查出锁并杀掉Session。

    SELECT A.SID,A.SERIAL#,A.USERNAME,B.TYPE FROM V$SESSION A,V$LOCK B WHERE A.SID=B.SID;

    ALTER SYSTEM KILL SESSION 'SID,SERIAL#';

  • 相关阅读:
    深入解析 float
    解决 css 浮动后 父元素高度失效问题
    高性能 Socket 组件 HP-Socket v3.2.1-RC1 公布
    基于lucene.net 和ICTCLAS2014的站内搜索的实现1
    史上最简单的个人移动APP开发入门--jQuery Mobile版跨平台APP开发
    【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
    栈模拟队列 队列模拟栈
    状态机的两种写法
    Hadoop-2.2.0中文文档—— MapReduce 下一代--容量调度器
    OpenGLES 与 WebGL 中顶点属性的组织格式的误解
  • 原文地址:https://www.cnblogs.com/wangshuai6707/p/4430577.html
Copyright © 2011-2022 走看看