怎么KILL SESSION时保证不中断正在进行的事务

59次阅读
没有评论

共计 987 个字符,预计需要花费 3 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下怎么 KILL SESSION 时保证不中断正在进行的事务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

通过在 ALTER SYSTEM DISCONNECT SESSION 后增加 POST_TRANSACTION 来实现事务提交或回滚后,会话才会被 KILL 掉。

node2:
SQL conn sh/sh
Connected.
SQL select sid ,serial# from v$session where sid=userenv(sid
       SID    SERIAL#
———- ———-
       142   63
SQL insert into test select a.* from all_objects a ,all_objects b;

node1:
SQL alter system disconnect session 142,63,@2 post_transaction;
System altered.

node2:
SQL insert into test select a.* from all_objects a ,all_objects b;
^Cinsert into test select a.* from all_objects a ,all_objects b
            *
ERROR at line 1:
ORA-01013: user requested cancel of current operation

SQL rollback;
rollback
*
ERROR at line 1:
ORA-00028: your session has been killed

ORACLE DOC:

The POST_TRANSACTION setting allows ongoing transactions to complete before the session is disconnected. If the session has no ongoing transactions, then this clause has the same effect described for as KILL SESSION.

以上是“怎么 KILL SESSION 时保证不中断正在进行的事务”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计987字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)