OceanBase数据库如何完成集群的扩容?最好可以分享下实践方案。
仅供参考。
- 准备工作阶段
sql
– 1.1 添加新物理服务器
ALTER SYSTEM ADD SERVER ‘192.168.1.10:2882’ ZONE ‘zone4’;
ALTER SYSTEM ADD SERVER ‘192.168.1.11:2882’ ZONE ‘zone4’;
– 1.2 创建新Zone(逻辑数据中心)
ALTER SYSTEM ADD ZONE ‘zone4’
REGION ‘hangzhou’
IDC ‘idc3’
ZONE_TYPE ‘readwrite’;
2. 数据迁移阶段
sql
– 2.1 启动Unit迁移(数据单元)
ALTER SYSTEM MIGRATE UNIT <unit_id>
DESTINATION ‘192.168.1.10:2882’;
– 2.2 自动触发分区重平衡
– OceanBase自动执行以下步骤:
– a) 全局负载管理器分析当前数据分布
– b) 生成分区迁移计划(Partition迁移任务)
– c) 按照副本类型(全能型/只读型)分批迁移
- 服务切换阶段
sql
– 3.1 修改Locality(数据副本分布策略)
ALTER TENANT test_tenant
SET LOCALITY = ‘F@zone1, F@zone2, F@zone3, F@zone4’;
– 3.2 渐进式切流(业务无感)
– RootService逐步调整路由表,将新请求导向新节点
– 存量连接继续访问原节点直至超时或断开
过程监控与异常处理
关键监控项:
sql
– 1. 迁移进度监控
SELECT * FROM __all_virtual_partition_migration_status;
– 2. 副本同步延迟
SELECT * FROM __all_virtual_clog_stat
WHERE replica_role = ‘LEADER’;
– 3. 资源使用情况
SELECT zone, svr_ip,
cpu_capacity, cpu_assigned,
disk_used/disk_total*100 as disk_usage
FROM __all_virtual_server_stat;
– 4. 业务影响监控(RT和QPS)
SELECT tenant_id, svr_ip,
avg_query_response_time,
qps
FROM oceanbase.gv$ob_sql_audit
WHERE sample_time > NOW() - INTERVAL 5 MINUTE;
异常处理场景:
网络分区(脑裂):
自动触发Paxos选举新Leader
隔离少数派分区,保证多数派可用
提供ALTER SYSTEM ISOLATE ZONE手动干预
节点故障:
sql
– 自动处理流程:
– 1. 其他副本检测到心跳超时(默认3秒)
– 2. 发起Leader重选(选举超时=2秒)
– 3. 新Leader继续服务,RS调度新副本
– 4. 故障节点恢复后自动追数据
数据迁移失败:
sql
– 自动重试机制:
– 1. 记录失败原因到内部表
– 2. 根据错误码决定重试策略:
– - 网络超时:立即重试(最多3次)
– - 磁盘满:暂停并告警
– - 数据校验失败:停止并标记副本损坏
– 手动干预命令:
ALTER SYSTEM CANCEL MIGRATION <task_id>;
ALTER SYSTEM RETRY MIGRATION <task_id>;
实践建议
扩容时机选择:
磁盘使用率>70%时提前扩容
业务低峰期执行(22:00-06:00)
避免与备份、合并任务重叠
配置优化:
sql
– 调整迁移速度
SET GLOBAL enable_rebalance = TRUE;
SET GLOBAL server_balance_load_factor = 1.2;
– 设置维护窗口
ALTER SYSTEM SET major_freeze_duty_time = ‘02:00’;
ALTER SYSTEM SET enable_auto_leader_switch = FALSE; – 扩容期间临时关闭
回滚方案:
sql
– 1. 暂停迁移任务
ALTER SYSTEM SUSPEND BALANCE TASK;
– 2. 恢复原Locality配置
ALTER TENANT test_tenant SET LOCALITY = ‘F@zone1, F@zone2, F@zone3’;
– 3. 强制回退(紧急情况)
ALTER SYSTEM FORCE SWITCH ROOTSERVICE LEADER;
感谢!
如果在故意刷积分 会给你们禁言
6,好详细