第39章 数据的并发处理

第39章 数据的并发处理--锁的机制

当用户对表中的数据操作时,会暂时锁定,等到该用户使用完成后才会解锁
查看是否有锁定冲突
select taddr,sid,serial#,seconds_in_wait from v$session where sid in (select blocking_session from v$session);
杀死回话,从而解决锁定冲突
alter system kill session '201,147' immediate;
这样执行之后等待的那个就执行成功了,但是连接断开了 ,因为回话被断开了

手动调整锁定冲突比较麻烦,所以我们写成脚本使其自动解决

select 'alter system kill session '''||sid||','||serial#||''' immediate;' from v$session where sid in (select blocking_session from v$session) and seconds_in_wait>120;

优化,将上面的语句放到shell脚本里面,自动执行
vi /home/oracle/kill_dml_lock.sql
spool /tmp/kill.sql rep
v$session where sid in (select blocking_session from v$session) and seconds_in_wait>120
/
spool off
ho sed '/^alter system kill/p' -ni /tmp/kill.sql
start /tmp/kill.sql
保存退出

启动脚本
SQL>start kill_dml_lock.sql

posted @ 2018-08-14 13:57  喝咖啡的土豆  阅读(98)  评论(0编辑  收藏  举报