在 Oracle RAC 环境中,多节点并发访问共享存储时,必须有一套机制来避免资源争用,保证数据一致性与互斥访问。这道经典的面试题直接考察的就是对这一机制核心组件的理解:
题目:Oracle RAC 中,用来保证集群节点资源互斥访问的核心组件是?
- A、LGWR
- B、DBWn
- C、LMON
- D、CKPT
正确答案是 C、LMON。
为什么是 LMON ?
LMON(Lock Manager Monitor,锁管理器监视器)是 Oracle RAC 全局队列服务(GES)的关键后台线程,负责:
- 监视集群内所有节点间的全局锁(Global Enqueue)状态;
- 处理锁的死锁检测、锁超时恢复;
- 协调节点加入或离开集群时的锁重新分配;
- 保证分布式锁管理器(DLM)的正确运转,从而让多个节点对同一资源(如表、行、缓存块)的访问保持互斥。
而其他选项:
- LGWR(Log Writer)负责将日志缓冲区写入在线重做日志,与互斥无直接关联;
- DBWn(Database Writer)负责将脏缓冲区写入数据文件;
- CKPT(Checkpoint Process)负责检查点,更新数据文件头部与控制文件。
因此,只有 LMON 专责全局锁监视与互斥控制。理解这部分原理,对排障 RAC 中的“gc buffer busy”“enqueue”等典型等待事件非常有帮助。
更多关于 Oracle RAC 集群与分布式数据库的进阶内容,欢迎在云栈社区继续探讨。
|