手动释放oracle数据库中死锁的对象锁!
来源:互联网 发布:淘宝进店提醒 编辑:程序博客网 时间:2024/04/30 21:15
常常有朋友在说他要往数据库中的某张表插入数据,现在表被别人锁住了,半天不释放。
首先可以看见数据库中没有对象被锁定。
SQL> conn /as sysdba已连接。SQL> select * from v$locked_object;未选定行
现在来锁住hr用户的一张表。
SQL> conn hr/hr已连接。SQL> select * from jobs for update;JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY---------- ----------------------------------- ---------- ----------AD_PRES President 20000 40000... ...... ...已选择19行。
再用scott用户插入一条数据。
SQL> conn scott/tiger已连接。SQL> insert into bonus values('1','2',3,4);已创建 1 行。
可以看见现在有两行记录了。
SQL> show userUSER 为 "SYS"SQL> select * from v$locked_object; XIDUSN XIDSLOT XIDSQN OBJECT_ID SESSION_ID ORACLE_USERNAME OS_USER_NAME PROCESS LOCKED_MODE---------- ---------- ---------- ---------- ---------- ------------------------------ ------------------------------ ------------ ----------- 6 10 320 51566 150 SCOTT oracle 3027 3 3 34 313 52279 158 HR oracle 3000 3
现在sys用户可以杀死这些会话,让他们释放锁!
SQL> show userUSER 为 "SYS"SQL> select s.sid,s.serial#,s.username,to_char(s.logon_time,'yyyy-mm-dd hh24:mi:ss'),l.process,l.locked_mode 2 from v$locked_object l,v$session s where s.sid = l.session_id; SID SERIAL# USERNAME TO_CHAR(S.LOGON_TIM PROCESS LOCKED_MODE---------- ---------- ------------------------------ ------------------- ------------ ----------- 158 38 HR 2011-10-24 23:14:35 3000 3 150 28 SCOTT 2011-10-24 23:22:45 3027 3使用如下语句杀死会话:Kill --alter system kill session 'sid,serial#';
SQL> alter system kill session '158,38';系统已更改。SQL> alter system kill session '150,28';系统已更改。SQL> select * from v$locked_object;未选定行SQL> select s.sid,s.serial#,s.username,to_char(s.logon_time,'yyyy-mm-dd hh24:mi:ss'),l.process,l.locked_mode 2 from v$locked_object l,v$session s where s.sid = l.session_id;未选定行
- 手动释放oracle数据库中死锁的对象锁!
- Oracle对象的死锁
- oracle中手动删除数据库
- Oracle中手动删除数据库
- DirectX 3D中某些对象的释放需要手动调用Dispose方法
- c#中new一个对象以后,是否需要手动释放?
- c#中new一个对象以后,是否需要手动释放?
- oracle 中查询被锁的对象,并杀死死锁进程的方法
- oracle 中查询被锁的对象,并杀死死锁进程的方法
- oracle 表死锁及释放
- Qt中对象的释放
- Oracle数据库10g中释放flash_recovery_area
- oracle中死锁的处理
- Oracle数据库死锁的一些通用操作
- Oracle数据库的死锁查看与处理
- Oracle中常见的数据库对象--视图
- Oracle中常见的数据库对象
- epoll 指向的d对象导致的gc释放问题,使用手动释放gc引用的对象
- fine granularity slice partition(细粒度slice分块边界)[HEVC/H.265]
- VS2010 \VC\bin\rcdll.dll 无法找到资源编译器
- 公式编辑器的进阶使用
- asp.net 网页技术要点摘要
- ffmpeg_sdk搭建VC
- 手动释放oracle数据库中死锁的对象锁!
- SIO_KEEPALIVE_VALS 用户异常掉线检测
- JAVA XML 解析 DOM 方式
- KXML1.21(STABLE)解析XML数据范例(J2ME客户端)
- HDU 3756 Dome of Circus 三分
- 1.C++的短整型
- 页面自动跳转
- linux的mount命令详解
- 怎樣在不同DB環境生成其它DB的存儲過程