會話斷開數據保存情況
阿新 • • 發佈:2018-05-20
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操作
會話斷開數據保存情況