会话断开数据保存情况
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会话断开数据保存情况相关的知识,希望对你有一定的参考价值。
针对Oracle数据库来说,存在若干情况,会话断开,本次测试会话断开后,数据保留情况。
--以下考虑都是基于事务修改未commit
【Oracle复合ACID 持久性Durability,解释说明:事务结束,数据永久保留commit or rollback】
情况A,会话exit方式,数据是否保留,是rollback or commit
select count(*) from t1; 40 delete t1 where id>15; 10 rows deleted. exit select count(*) from t1; 30
#SQL*Plus 执行exit 命令,退出会话,执行commit操作
情况二、kill session ‘sid,serial#‘ immediate 方式
[email protected] >delete t1 where id>14; 2 rows deleted. >select sid,serial# from v$session where username=‘HR‘; SID SERIAL# ---------- ---------- 780 33 >alter system kill session ‘780,33‘ immediate; >select count(*) from hr.t1; COUNT(*) ---------- 30
Kill session ,退出会话,执行rollback操作
情况三、kill spid 方式
>delete t1 where id>14; 2 rows deleted. >select spid from v$process where addr=(select paddr from v$session where username=‘HR‘); SPID ------------------------ 18695 >! kill -9 18695 [email protected] >select count(*) from hr.t1; COUNT(*) ---------- 30
Kill spid ,退出会话,执行rollback操作
情况四、shutdown immediate 方式
>delete t1 where id>14; >shutdown immediate; >startup select count(*) from hr.t1; 30
shutdown immediate,退出会话,执行rollback操作
情况四、shutdown abort方式
>delete t1 where id>14; >startup force; >select count(*) from hr.t1; COUNT(*) ---------- 30
shutdown abort,退出会话,执行rollback操作
以上是关于会话断开数据保存情况的主要内容,如果未能解决你的问题,请参考以下文章