OceanBase 中,CLOG 日志主要作用是?
A. 实现副本间数据同步与故障恢复
B. 单独存储索引数据
C. 记录慢查询语句
D. 统计资源使用情况
2 个赞
正确答案是 A. 实现副本间数据同步与故障恢复 。
详细解析:
在 OceanBase 数据库中,CLOG(Commit Log)即事务日志(类似于 MySQL 中的 Redo log),它是整个系统实现 ACID 特性、保证数据持久性和多副本一致性的核心组件3。其主要作用体现在以下几个方面:
-
选项 A (实现副本间数据同步与故障恢复) 正确 :
- 数据同步 :在分布式架构下,OceanBase 采用 Multi-Paxos 协议对 CLOG 进行同步。Leader 节点生成 WAL(预写日志)并复制到多数派副本,达成多数派确认后再提交事务,从而确保所有副本按相同顺序回放日志,维护数据的强一致性2。
- 故障恢复 :CLOG 记录了数据库所有的变更操作。当系统出现故障或崩溃时,可以通过重做(Redo)已提交的 CLOG 来将数据库恢复到一致状态,保障数据的持久性1。
-
选项 B (单独存储索引数据) 错误 :
索引数据和实际业务数据均存储在sstable目录下的block_file中,而不是存放在 CLOG 中1。 -
选项 C (记录慢查询语句) 错误 :
CLOG 记录的是底层物理或逻辑的数据修改操作,而非 SQL 级别的慢查询记录。慢查询通常由专门的慢查询日志(Slow Query Log)或审计日志来记录。 -
选项 D (统计资源使用情况) 错误 :
资源的统计和监控是由系统的内部表(如__all_virtual_server)以及各类性能视图来完成的,并非 CLOG 的职责4。
A. 实现副本间数据同步与故障恢复