【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】oceanbase部署三节点集群步骤,及注意事项
【复现路径】问题出现前后相关操作
服务器配置注意事项
- 操作系统
- 建议使用:CentOS 7.6 及以上,或兼容的 RedHat/Anolis/AlmaLinux。
- 禁用 swap(
swapoff -a
,并注释/etc/fstab
中的 swap 分区)。
- 内存
- 单节点建议最少 64GB RAM,生产环境推荐 128GB 以上。
- CPU
- 至少 16核,生产环境建议 32核以上。
- 磁盘
- 磁盘类型:SSD 或 NVMe。
- 数据盘:每节点至少 1TB,生产环境建议根据数据量和副本数量进行容量规划。
- 日志盘:单独的 SSD 磁盘(减少写放大影响)。
- 网络
- 至少 10Gbps,以保证 OBServer 之间的心跳和数据同步。
- 内核参数调优(部分关键项):
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 文件句柄限制
ulimit -n 655350
# /etc/sysctl.conf 中添加
net.core.somaxconn = 2048
net.ipv4.tcp_max_syn_backlog = 4096
vm.swappiness = 0
三节点 OceanBase 4.x 集群部署步骤
规划集群
节点 | IP地址 | 角色 | 端口范围(默认) |
---|---|---|---|
1 | 192.168.0.101 | OBServer | 2881(SQL),2882(RPC) |
2 | 192.168.0.102 | OBServer | 2881,2882 |
3 | 192.168.0.103 | OBServer | 2881,2882 |
安装 OceanBase 软件
OceanBase 4.x 提供官方二进制包或 yum 源(推荐用 yum 源):
bash
CopyEdit
# 1. 安装 yum 源
wget https://mirrors.oceanbase.com/oceanbase/oceanbase.repo -O /etc/yum.repos.d/oceanbase.repo
# 2. 安装 OBServer 和 OBClient
yum install -y ob-deploy obclient oceanbase-ce
创建 obproxy (可选)
三节点通常先部署 OBServer,后期再安装 OBProxy。
配置 obdeploy 工具
OceanBase 官方提供 obdeploy
工具(即 ob-deploy),用于自动化部署。
在一个节点(管理机)上配置免密到三台机器(或在每台机器上本地部署)。
示例:
bash
# 配置免密(在管理机上)
ssh-copy-id root@192.168.0.101
ssh-copy-id root@192.168.0.102
ssh-copy-id root@192.168.0.103
初始化集群部署配置
使用 obdeploy 初始化配置:
bash
obd cluster edit obcluster
填入以下内容:
yaml
CopyEdit
# obcluster.yaml 配置示例
oceanbase-ce:
servers:
- 192.168.0.101
- 192.168.0.102
- 192.168.0.103
global:
cluster_id: 1
devname: eth0 # 根据实际网卡
home_path: /data/ob # 数据目录
mysql_port: 2881
rpc_port: 2882
zone: zone1
datafile_size: 100G
log_disk_size: 50G
memory_limit: 32G # 单节点分配内存
部署集群
bash
CopyEdit
# 部署 OceanBase 集群
obd cluster deploy obcluster -c obcluster.yaml
# 启动集群
obd cluster start obcluster
验证集群状态
bash
CopyEdit
obd cluster list
obd cluster display obcluster
或者使用 obclient
登录:
bash
obclient -h 192.168.0.101 -P 2881 -u root@sys -p
执行:
sql
CopyEdit
select * from oceanbase.__all_virtual_server;
检查三节点状态是否为 ACTIVE
。
后续配置:创建租户等
进入 obclient
后:
sql
CopyEdit
-- 创建租户
create resource unit unit_test max_cpu=4, memory_size='10G', max_iops=10000, max_disk_size='100G';
create resource pool pool_test unit='unit_test', unit_num=1;
create tenant test_tenant resource_pool_list=('pool_test'), charset='utf8mb4', zone_list=('zone1');
生产环境注意事项
备份和高可用
OceanBase 4.x 支持多副本。确保三台机器位于不同可用区(或机柜)以避免单点故障。
监控与告警
使用 OCP(OceanBase 云管平台)或集成 Prometheus/Grafana,监控慢查询、CPU、内存和磁盘使用情况。
滚动升级
OceanBase 支持平滑滚动升级,生产环境中使用 obd cluster upgrade
。
##总结
以上就是 OceanBase 4.x 三节点集群 的详细部署步骤和服务器配置注意事项。如果需要我帮你生成一个完整的 obcluster.yaml
文件,或者结合你现有服务器规格进一步优化参数,请告诉我!
谢谢
详细
根据文档库中的信息,以下是 OceanBase 部署三节点集群的步骤及注意事项,适用于测试环境:
一、部署三节点集群的步骤
1. 环境准备
- 硬件资源:确保有三台机器可用,每台机器的配置建议不低于 4C8G。
- 网络配置:确保三台机器之间可以互相通信,且网络延迟较低(同城三机房场景下,机房间网络延迟一般在 0.5 ~ 2 ms)。
-
软件依赖:
- 安装必要的系统依赖包。
- 确保已安装 MySQL 客户端或 OBClient,用于后续连接 OceanBase 集群。
2. 部署工具选择
- 推荐使用
obd
工具进行集群的部署和管理。obd
提供了包管理器、压测软件、集群管理等常用的运维能力,能够简化部署流程。
3. 使用 obd 部署集群
- 参考文档:通过 obd 部署集群
-
具体步骤:
- 在中控节点上安装
obd
工具。 - 配置
obd
的镜像源,确保能够下载到所需的 OceanBase 软件包。 - 编写集群拓扑配置文件,定义三台机器的角色和分区(Zone)。例如:
cluster_name: my_cluster servers: - name: server1 ip: 10.10.10.1 zone: zone1 - name: server2 ip: 10.10.10.2 zone: zone2 - name: server3 ip: 10.10.10.3 zone: zone3
- 使用以下命令部署集群:
obd cluster deploy my_cluster -c cluster_config.yaml
- 启动集群:
obd cluster start my_cluster
- 在中控节点上安装
4. 验证集群状态
- 连接到 OceanBase 集群,检查集群的状态是否正常:
SHOW FULL COLUMNS FROM __all_server;
- 确保三台机器上的 OBServer 节点均已启动,并且每个 Zone 至少有一个副本。
二、注意事项
-
网络延迟:
- 如果是同城三机房部署,确保机房间的网络延迟在 0.5 ~ 2 ms 之间,以保证 Paxos 协议的高效运行。
-
数据一致性:
- 三节点集群采用三副本模式,确保在单个节点故障时,剩余两个节点仍能构成多数派,保证 RPO=0。
-
资源配置:
- 每台机器的 CPU、内存和存储空间需满足最低要求(至少 4C8G 和足够的存储空间)。
- 中控节点对服务器配置要求不高,但建议不低于 4C8G。
-
版本兼容性:
- 确保使用的
obd
版本与 OceanBase 数据库版本兼容。
- 确保使用的
-
日志检查:
- 部署过程中如遇问题,可通过查看
obd
日志文件定位问题。
- 部署过程中如遇问题,可通过查看
-
备份恢复:
- 部署完成后,建议配置定期备份策略,确保数据安全。
三、总结
通过上述步骤,您可以顺利完成 OceanBase 三节点集群的部署。测试环境中,建议重点关注网络延迟和资源配置,确保集群的稳定性和性能。如果需要进一步调整或扩展集群,可以参考 添加节点 文档进行操作。
详情请参考: