这题是选择C对吗?OceanBase 中,CLOG 日志主要作用是?

OceanBase 中,CLOG 日志主要作用是?
A. 实现副本间数据同步与故障恢复
B. 单独存储索引数据
C. 记录慢查询语句
D. 统计资源使用情况

2 个赞

正确答案是 A. 实现副本间数据同步与故障恢复

详细解析:

在 OceanBase 数据库中,CLOG(Commit Log)即事务日志(类似于 MySQL 中的 Redo log),它是整个系统实现 ACID 特性、保证数据持久性和多副本一致性的核心组件3。其主要作用体现在以下几个方面:

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

A. 实现副本间数据同步与故障恢复