1. 程式人生 > >會話斷開數據保存情況

會話斷開數據保存情況

alt lec name 保存 AR 復合 HERE del spa

針對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 方式

HR@env >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

SYS@env >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操作

會話斷開數據保存情況