zoukankan      html  css  js  c++  java
  • 解决Oracle视图被锁住的问题

    会产生这种视力被锁定的现象是删除某个对象的时候进程会死掉,创建的时候也是一样。

    我同事解释的可能原因是:
    在创建对象的时候没有创建完就被关掉了,或者就是没有执行完。然后造成线程锁定。

    解决的办法:

    1.找出等待事件的原因
    select event,p1,p2,sid from v$session_wait where event not like 'SQL%' and event not like 'rdbms%';
    2.找出锁住的进程
    select object_id,session_id,locked_mode from v$locked_object;
    3.找出锁住的进程的操作系统进程
    select spid from v$process where addr=(select paddr from v$session where sid=19);(这个19表示被锁定的SID)
    4.在操作系统上删除进程
    orakill eoffice 2768(第一个参数据是数据库的SID  第二个参数是进程ID,这个数字就是上面取到的进程ID,这个是在Dos命令窗口下操作)


    下面是一个操作实例
    首先先Drop 相关的锁定的对象如Drop View vw_wf_CritCondition,然后结束PL/SQL Dev 再开一次才能执行下面的操作。

    SQL> select event,p1,p2,sid from v$session_wait where event not like 'SQL%' and event not like 'rdbms%';

    EVENT                                                                    P1         P2        SID
    ---------------------------------------------------------------- ---------- ---------- ----------
    null event                                                       1413697536          1         18
    null event                                                                1      95552         22
    pmon timer                                                              300          0          1
    smon timer                                                              300          0          5
    library cache lock                                                763239564  792075180         23   (这里表示有一个库被锁掉了。)
    wakeup time manager                                                       0          0          8

    6 rows selected

    SQL> select object_id,session_id,locked_mode from v$locked_object;

     OBJECT_ID SESSION_ID LOCKED_MODE
    ---------- ---------- -----------
            77         22           3
            69         22           3
            70         22           3
           316         22           3
           314         22           3
           356         22           3
            68         22           3
            72         22           3
            73         22           3
            74         22           3
            75         22           3

    11 rows selected

    SQL> select spid from v$process where addr=(select paddr from v$session where sid=22);

    SPID
    ------------
    3348

    在Dos操作,而且只能在安装数据的本机操作
    orakill eoffice 3348

  • 相关阅读:
    Golang的安装包方法
    Debian kvm网络配置
    Debian-Linux配置网卡网络方法
    KVM虚拟机网络配置 Bridge方式,NAT方式
    WebRTC之框架与接口
    WebRTC
    关于golang.org/x包问题
    http内网转发
    linux服务器可以访问IP访问不了域名地址
    golang--生成某区间的随机数
  • 原文地址:https://www.cnblogs.com/liubiqu/p/461778.html
Copyright © 2011-2022 走看看