锁(lock)是一种防止多个事务访问同一资源时产生破坏性的相互影响的机制。通常,高并发数据库需要利用锁机制解决数据并发访问、一致性及完整性问题。
前面提到的资源(resource)大致可以分为两类:
● 用户对象:例如表及数据行
● 对用户透明的系统对象:例如内存中的共享数据结构、数据字典中的信息
任何 SQL 语句执行时 Oracle 都隐式地对 SQL 所需的锁进行管理,因此用户无需显式地对资源加锁。Oracle 默认采用的锁机制能尽可能地减小对数据访问的限制,在保证数据一致性的同时实现高度的数据并发性。Oracle也支持用户手工加锁的操作。
锁的类型
分法很多,在此列二:
按数据类型分
① 保护元数据 --->TM锁(表级锁)
表级锁有5个,重要的有2个:lmode type (v$lock查询)
3 RX