OceanBase教程FG005-OceanBase三节点集群部署
本文详细介绍OceanBase数据库三节点集群的部署过程,帮助读者掌握OceanBase集群部署的完整流程。风哥教程参考OceanBase官方文档OceanBase8安装指南、OceanBase8集群管理等内容。
三节点集群是OceanBase的推荐部署方式,具有高可用性和数据一致性保障,适用于生产环境。通过本文的学习,读者将掌握OceanBase三节点集群的环境准备、配置部署、验证测试等步骤。
三节点集群部署是OceanBase生产环境的基础,了解其部署过程对于后续的运维管理和故障处理非常重要。
目录大纲
Part01-基础概念与理论知识
1.1 三节点集群概述
OceanBase三节点集群是指由三个节点组成的OceanBase集群,每个节点部署在不同的服务器上。三节点集群的特点包括:
- 高可用性:通过多副本机制,确保单点故障不影响整个集群
- 数据一致性:使用Paxos协议保证数据的强一致性
- 负载均衡:数据和请求在三个节点之间均匀分布
- 故障自动切换:当主节点故障时,自动选举新的主节点
三节点集群适用于以下场景:
- 生产环境
- 核心业务系统
- 对可用性要求高的应用
- 数据量较大的场景
1.2 部署架构设计
OceanBase三节点集群的部署架构设计:
- 节点分布:三个节点部署在不同的服务器上,建议分布在不同的机架或可用区
- 网络拓扑:节点之间通过高速网络连接,确保低延迟
- 存储配置:每个节点使用SSD存储,确保高性能
- 资源配置:每个节点配置足够的CPU、内存和磁盘资源
- 副本策略:采用三副本策略,每个分区在三个节点上都有副本
典型的三节点集群架构:
- 节点1:192.168.1.100(Zone1)
- 节点2:192.168.1.101(Zone2)
- 节点3:192.168.1.102(Zone3)
Part02-生产环境规划与建议
2.1 环境要求
三节点集群环境要求:
- 服务器数量:3台
- CPU:每台服务器至少16核
- 内存:每台服务器至少64GB
- 磁盘:每台服务器至少500GB SSD
- 操作系统:Oracle Linux 7.6+ / RHEL 7.6+ / CentOS 7.6+
- 网络:万兆网络,低延迟
2.2 网络规划
网络规划:
- IP地址规划:
- 节点1:192.168.1.100
- 节点2:192.168.1.101
- 节点3:192.168.1.102
,风哥提示:。
- 端口规划:
- MySQL端口:2881
- RPC端口:2882
- OBProxy端口:2883
- 网络要求:
- 节点之间网络延迟低于1ms
- 网络带宽不低于10Gbps
- 无丢包,网络稳定
Part03-生产环境项目实施方案
3.1 环境准备
在部署三节点集群之前,需要在所有节点上进行环境准备。
mkdir -p /ob/app /ob/fgdata /ob/log /ob/config
,学习交流加群风哥微信: itpux-com。
cat > /etc/sysctl.d/oceanbase.conf << EOF
fs.file-max = 6815744
fs.nr_open = 6815744
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
vm.swappiness = 0
vm.overcommit_memory = 2
vm.overcommit_ratio = 90
vm.nr_hugepages = 16384
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
EOF
sysctl -p /etc/sysctl.d/oceanbase.conf
fs.nr_open = 6815744
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
vm.swappiness = 0
vm.overcommit_memory = 2
vm.overcommit_ratio = 90
vm.nr_hugepages = 16384
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104,学习交流加群风哥QQ113257174。
yum install -y libaio-devel ncurses-devel zlib-devel
Complete!
3.2 集群部署
使用OBD工具部署三节点集群。
yum install -y ob-deploy
Complete!
cat > /ob/config/cluster.yaml << EOF
oceanbase-ce:
servers:
– 192.168.1.100
– 192.168.1.101
– 192.168.1.102
global:
home_path: /ob/app
data_dir: /ob/fgdata
log_dir: /ob/log
devname: eth0
mysql_port: 2881
rpc_port: 2882
zone:
– zone1
– zone2
– zone3
cluster_id: 1
memory_limit: 32G
system_memory: 16G
,更多视频教程www.fgedu.net.cn。
datafile_size: 100G
log_disk_size: 100G
cpu_count: 16
enable_syslog_wf: false
enable_syslog_recycle: true
max_syslog_file_count: 10
root_password: fgedu123
proxyro_password: fgedu123
obproxy:
servers:
– 192.168.1.100
– 192.168.1.101
– 192.168.1.102
global:
home_path: /ob/app/obproxy
listen_port: 2883
prometheus_listen_port: 2884
observer_list: 192.168.1.100:2881;192.168.1.101:2881;192.168.1.102:2881
cluster_name: obcluster
password: fgedu123
EOF
Part04-生产案例与实战讲解
4.1 部署实战
使用OBD工具部署三节点集群。
obd cluster deploy obcluster -c /ob/config/cluster.yaml
Open ssh connection ok
Cluster status check ok
Install oceanbase-ce-4.2.0.0 ok
Install obproxy-3.2.3 ok
Load cluster parameters ok
Check before start ok,更多学习教程公众号风哥教程itpux_com。
Start observer ok
Start obproxy ok
Connect to observer ok
Initialize cluster ok
Wait for observer init ok
Cluster status: running
observer[192.168.1.100:2881] status: running
observer[192.168.1.101:2881] status: running
observer[192.168.1.102:2881] status: running
obproxy[192.168.1.100:2883] status: running
obproxy[192.168.1.101:2883] status: running
obproxy[192.168.1.102:2883] status: running
Deploy obcluster successfully
4.2 验证测试
部署完成后,需要进行验证测试,确保集群正常运行。
obd cluster status obcluster
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
Cluster status: running,from DB视频:www.itpux.com。
observer[192.168.1.100:2881] status: running
observer[192.168.1.101:2881] status: running
observer[192.168.1.102:2881] status: running
obproxy[192.168.1.100:2883] status: running
obproxy[192.168.1.101:2883] status: running
obproxy[192.168.1.102:2883] status: running
obclient -h192.168.1.100 -P2883 -uroot -pfgedu123 -Doceanbase
Your OceanBase connection id is 32768
Server version: OceanBase 4.2.0.0 (r10000032022101016)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
obclient [oceanbase]>
SELECT * FROM oceanbase.DBA_OB_SERVERS;
| SVR_IP | SVR_PORT | ZONE | STATUS | START_SERVICE_TIME | STOP_TIME | SQL_PORT | RPC_PORT | WITH_ROOTSERVICE | CPU_CNT | USED_MEMORY | TOTAL_MEMORY | SVR_VERSION | BUILD_VERSION |
+—————-+———-+———-+————+—————————-+——–+—————-+————-+——————+——–+————————+—————————-+—————————-+——————+
| 192.168.1.100 | 2882 | zone1 | ACTIVE | 2023-01-01 00:00:00.000000 | NULL | 2881 | 2882 | TRUE | 16 | 10737418240 (10.00GB) | 34359738368 (32.00GB) | 4.2.0.0 (r10000032022101016) | 4.2.0.0_2022101016 |
| 192.168.1.101 | 2882 | zone2 | ACTIVE | 2023-01-01 00:00:00.000000 | NULL | 2881 | 2882 | FALSE | 16 | 10737418240 (10.00GB) | 34359738368 (32.00GB) | 4.2.0.0 (r10000032022101016) | 4.2.0.0_2022101016 |
| 192.168.1.102 | 2882 | zone3 | ACTIVE | 2023-01-01 00:00:00.000000 | NULL | 2881 | 2882 | FALSE | 16 | 10737418240 (10.00GB) | 34359738368 (32.00GB) | 4.2.0.0 (r10000032022101016) | 4.2.0.0_2022101016 |
+—————-+———-+———-+————+—————————-+——–+—————-+————-+——————+——–+————————+—————————-+—————————-+——————+
3 rows in set (0.01 sec)
CREATE DATABASE fgedudb;
USE fgedudb;
CREATE TABLE fgedu_test (
id INT PRIMARY KEY,
name VARCHAR(100),
value INT
);
Query OK, 0 rows affected (0.15 sec)
INSERT INTO fgedu_test VALUES (1, ‘test1’, 100), (2, ‘test2’, 200);
Records: 2 Duplicates: 0 Warnings: 0
SELECT * FROM fgedu_test;
| id | name | value |
+—-+——-+——-+
| 1 | test1 | 100 |
| 2 | test2 | 200 |
+—-+——-+——-+
2 rows in set (0.01 sec)
EXIT;
Part05-风哥经验总结与分享
5.1 部署最佳实践
- 使用OBD工具进行部署,简化部署流程
- 确保所有节点的硬件配置一致,避免性能差异
- 使用SSD磁盘,提高存储性能
- 配置合理的内存和磁盘参数,避免资源浪费
- 确保节点之间网络连接稳定,延迟低
- 定期备份数据,确保数据安全
- 监控集群状态,及时发现和处理问题
5.2 常见问题与解决方案
- 部署失败:检查网络连接、权限配置、资源是否充足
- 节点启动失败:查看日志文件,分析错误原因
- 集群状态异常:检查节点之间的网络连接,确保所有节点正常运行
- 数据不一致:检查Paxos协议运行状态,确保副本同步正常
- 性能问题:优化配置参数,调整资源分配
故障排查方法:
- 查看OceanBase日志:/ob/log
- 检查集群状态:obd cluster status
- 查看系统资源使用情况:top、free、df
- 检查网络连接:ping、telnet
- 风哥教程参考OceanBase官方文档和社区论坛
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
