Skip to content

OceanBase 集群配置

集群级配置

核心配置参数

集群基本配置

  • cluster_id:集群唯一标识符,同一集群内所有节点必须一致
  • zone_list:集群包含的可用区列表
  • server_config:集群节点的默认配置模板
  • root_password:集群 root 用户的密码

集群性能配置

  • sys_bkgd_migration_retry_num:后台迁移重试次数
  • sys_bkgd_migration_concurrency:后台迁移并发度
  • major_freeze_duty_time:每日合并时间窗口
  • minor_freeze_times:每日小合并次数

集群可靠性配置

  • data_replica_num:默认数据副本数
  • log_replica_num:默认日志副本数
  • recovery_window_size:恢复窗口大小
  • enable_rebalance:是否启用自动负载均衡

集群配置管理

使用 SQL 命令管理集群配置

sql
-- 查看集群级配置
SHOW PARAMETERS LIKE '%cluster%' SCOPE = CLUSTER;

-- 修改集群级配置
ALTER SYSTEM SET cluster_id = 1 SCOPE = CLUSTER;

-- 查看集群节点配置
SHOW PARAMETERS LIKE '%memory_limit%' SCOPE = SERVER;

使用 OCP 管理集群配置

  1. 登录 OCP 控制台,进入集群管理页面
  2. 点击 "配置管理" 标签页
  3. 选择 "集群级配置" 或 "节点级配置"
  4. 找到需要修改的配置参数,点击 "修改" 按钮
  5. 输入新的配置值,选择生效范围
  6. 确认修改,等待配置生效

节点级配置

核心配置参数

节点基本配置

  • server_id:节点唯一标识符,同一集群内不可重复
  • zone:节点所属的可用区
  • listen_port:客户端连接端口,默认 2881
  • rpc_port:节点间通信端口,默认 2882

节点资源配置

  • memory_limit:节点总内存限制,单位 MB
  • system_memory:系统预留内存,单位 MB
  • cpu_count:节点使用的 CPU 核心数
  • data_dir:数据文件存储目录
  • log_dir:日志文件存储目录

节点性能配置

  • io_thread_count:IO 线程数量
  • net_thread_count:网络线程数量
  • sstable_block_size:SSTable 块大小,单位 KB
  • block_cache_size:块缓存大小,单位 MB

节点配置管理

查看节点配置

bash
# 查看节点配置文件
cat /home/admin/oceanbase/conf/observer.conf

# 使用 SQL 命令查看节点配置
SHOW PARAMETERS LIKE '%memory_limit%' WHERE server = '<server-ip>:<rpc-port>';

修改节点配置

sql
-- 修改单个节点配置
ALTER SYSTEM SET memory_limit = 64G SCOPE = SERVER WHERE server = '<server-ip>:<rpc-port>';

-- 修改所有节点配置
ALTER SYSTEM SET cpu_count = 32 SCOPE = SERVER;

配置变更机制

配置变更流程

  1. 配置变更请求:通过 SQL 命令或 OCP 发起配置变更请求
  2. 配置验证:系统验证配置参数的合法性和有效性
  3. 配置分发:将配置变更分发到相关节点
  4. 配置生效:根据配置的生效范围和方式,使配置生效
  5. 配置持久化:将配置变更持久化到配置文件和元数据中

配置生效方式

  • IMMEDIATE:立即生效,无需重启
  • DEFERRED:延迟生效,需要重启
  • BOTH:同时支持立即生效和延迟生效

配置生效范围

  • CLUSTER:集群范围内生效
  • SERVER:节点范围内生效
  • TENANT:租户范围内生效
  • SESSION:会话范围内生效

配置最佳实践

1. 配置规划

  • 提前规划:在集群部署前,根据业务需求规划合理的配置
  • 分级配置:根据配置的影响范围,采用分级配置策略
  • 文档化:将配置参数和变更记录文档化,便于维护和追溯

2. 配置变更管理

  • 变更评审:重要配置变更必须经过评审
  • 变更测试:在测试环境中测试配置变更的效果
  • 变更窗口:选择合适的变更窗口,避免业务高峰期
  • 回滚计划:制定详细的回滚计划,确保变更失败时能够快速回滚

3. 配置监控

  • 监控配置变更:监控配置变更的执行情况
  • 监控配置效果:监控配置变更对系统性能和稳定性的影响
  • 配置一致性检查:定期检查集群配置的一致性

4. 配置优化

  • 基于负载优化:根据系统负载情况优化配置参数
  • 基于业务特性优化:根据业务特性优化配置参数
  • 定期回顾:定期回顾和优化配置参数

常见问题(FAQ)

Q1: 如何确保集群配置的一致性?

A1: 确保集群配置一致性的方法:

  • 使用集群级配置,避免节点间配置差异
  • 定期检查节点配置,确保配置一致
  • 使用 OCP 进行配置管理,自动确保配置一致性
  • 建立配置变更流程,避免随意修改配置

Q2: 配置变更后,如何验证配置是否生效?

A2: 验证配置生效的方法:

  • 使用 SQL 命令查看当前配置值
  • 检查 OCP 控制台的配置管理页面
  • 查看节点日志,确认配置加载信息
  • 通过性能监控指标验证配置变更效果

Q3: 哪些配置参数需要重启节点才能生效?

A3: 以下类型的配置参数通常需要重启节点:

  • 基础网络配置(如 listen_port、rpc_port)
  • 存储目录配置(如 data_dir、log_dir)
  • 核心内存配置(如 memory_limit、system_memory)
  • 其他标记为静态的配置参数

Q4: 如何备份和恢复集群配置?

A4: 配置备份和恢复方法:

  • 定期备份配置文件到安全位置
  • 使用 OCP 控制台的配置备份功能
  • 恢复配置时,先停止集群服务,替换配置文件,再重启服务
  • 恢复后验证配置是否正确

Q5: 如何处理配置变更导致的问题?

A5: 处理配置变更问题的方法:

  • 立即回滚到之前的配置
  • 查看节点日志,定位问题原因
  • 分析配置变更的影响,制定修复方案
  • 测试修复方案,确保问题已解决
  • 重新执行配置变更,或调整配置变更方案