开发者

Oracle锁表处理方式

开发者 https://www.devze.com 2025-03-27 13:27 出处:网络 作者: 辣椒炒鸡
目录oracle锁表处理1.查看被锁的表2.查看锁表的进程3.杀死进程4.查找对应进程号5.杀死进程总结Oracle锁表处理
目录
  • oracle锁表处理
    • 1.查看被锁的表
    • 2.查看锁表的进程
    • 3.杀死进程
    • 4.查找对应进程号
    • 5.杀死进程
  • 总结

    Oracle锁表处理

    1.查看被锁的表

    select b.owner,b.object_name,a.session_id,a.locked_mode
    from v$locked_object a,dba_objects b
    where b.object_id = a.object_id

    2.查看锁表的进程

    select a.OS_USER_NAME, c.编程客栈owner, c.object_name, b.sid, b.编程客栈serial#, logon编程客栈_time
      from v$locked_object a, v$session b, dba_objects c
     where a.session_id = b.sid
       and a.object_id = c.object_id 
     order by b.logon_time;

    3.杀死进程

     -- immediate 添加为立即结束
     alter system kilpythonl session 'sid,serial' immediate

    注:执行步骤3,可能存在权限不足的问题

    解决方式:

    GRANT ALTER SYSTEM TO <username>;

    步骤3执行完,锁表已正常解决

    4.查找对应进程号

    步骤3可能存在‘ORA-00027: 无法终止当前会话&rsquopython; 错误。

    此时,需要通过杀死对应的进程号来解决

    select a.SID,a.USERNAME,a.status,a.process,b.SPID from v$session a,v$process b where a.PADDR=b.ADDR;

    5.杀死进程

    • linux系统
    kill -9 进程号
    • Windows系统

    1.任务管理器直接终止相应的PID

    2.命令行

    orakill sid spid

    sid 是数据库实例名

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号