OceanBase的副本有什么类型
2 个赞
OceanBase 数据库为了在数据安全、性能、可用性和成本之间取得平衡,设计了多种类型的副本。这些副本在存储的数据内容和参与高可用选举的角色上有所不同。
主要的副本类型包括以下几种:
全功能型副本 (FULL)
这是 OceanBase 中最常见和标准的副本类型,也称为普通副本。
- 存储内容:包含完整的数据(基线数据 SSTable 和增量数据 MemTable)和事务日志(RedoLog)。
- 功能角色:功能最全,可以担任 Leader 或 Follower 角色。作为 Leader 时,它对外提供读写服务;作为 Follower 时,可提供读服务,并在 Leader 故障时参与选举,快速切换为 Leader 以保证服务高可用。
- 数据安全:高。
只读型副本 (READONLY)
这种副本主要用于读写分离场景,以扩展集群的读能力。
- 存储内容:与全功能型副本一样,包含完整的数据和事务日志。
- 功能角色:只能提供只读服务,不参与 Paxos 选举投票,也不能被选为 Leader。它作为观察者实时同步日志,因此不会影响主副本的事务提交性能。
- 数据安全:中等。
日志型副本 (LOGONLY)
这是一种轻量级的副本,主要用于降低高可用架构的成本。
- 存储内容:只包含事务日志(RedoLog),不存储实际的业务数据(没有 MemTable 和 SSTable)。
- 功能角色:参与 Paxos 选举投票,以保证多数派的存在,但因为它没有数据,所以永远不能被选为 Leader 对外提供数据库服务。
- 数据安全:较低,因为它本身不存储数据。
列存副本 (COLUMNSTORE)
这种副本是为分析型场景设计的,用于提供列式存储能力。
- 存储内容:基线数据以列存模式存储,但也拥有完整的事务日志和增量数据。
- 功能角色:与只读型副本类似,它不参与选举和日志投票,主要用于提供列式读取服务。
数据型副本 (DATA)
这是一种特殊的副本类型,主要用于特定场景(如 TPC-C 测试)以优化资源使用。
- 存储内容:包含完整的数据,也同步日志。
- 功能角色:通常不对外提供服务。在主副本(F副本)故障时,它可以转换为全功能型副本,补齐日志后接管服务。
加密投票型副本 (ENCRYPTVOTE)
这是一种特殊的投票副本,用于增强安全性。
- 存储内容:存储加密的日志。
- 功能角色:参与 Paxos 选举投票,但不存储实际数据,也不能被选为 Leader。
特别说明
需要注意的是,OceanBase 的单机版是为开发和测试设计的集中式架构,它不具备上述的多副本和高可用能力。
1 个赞