事务:
1原子性
2一致性
3隔离性 (每个用户有单独的session管理操作,不会互相产生影响。前提是操作没有被commit提交。)
4持久性 (数据从内存保存到磁盘中)
分布式事务主要解决问题:数据一致性。
一致性:一个查询的结果必须与数据库在查询开始的状态一致
oracle进行insert ,update,delete 操作时会产生事务
select * from v$transaction; --查看事务语句(当提交后,事务消失)
事务产生后,又会产生锁。(事务和锁会一同出现)
锁:排他锁(写锁)和共享锁(读锁)
共享锁不排拆其他共享锁,排斥排他锁
排他锁:排斥所有的锁
select * from v$lock; --查看锁语句
锁作用:保证数据完整性,一致性。
自动加锁:做DML操作时,如insert, update , delete,以及select … for update由oracle自动完成加锁。
select * from emp1 where deptno=10 for update;
在加锁,没有提及期间。任何update,delete都会被阻塞。只有锁被放弃(commit,或者 rollback)后才能继续执行。
或者杀掉进程:
select * from v
l
o
c
k
;
−
−
找
到
表
的
S
I
D
s
e
l
e
c
t
s
i
d
,
s
e
r
i
a
l
f
r
o
m
v
lock; --找到表的SID select sid,serial from v
lock;−−找到表的SIDselectsid,serialfromvsession where sid=SID; --找到sid,serial
alter system kill session ‘sid,serial’; --杀掉进程