1. 首页 > 国产数据库教程 > OceanBase教程 > 正文

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.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,学习交流加群风哥QQ113257174。

# 在所有节点上安装依赖
yum install -y libaio-devel ncurses-devel zlib-devel

Installed: libaio-devel-0.3.112-1.el7.x86_64 ncurses-devel-6.1-9.20180224.el7.x86_64 zlib-devel-1.2.11-17.el7.x86_64
Complete!

3.2 集群部署

使用OBD工具部署三节点集群。

# 在部署节点上安装OBD
yum install -y ob-deploy

Installed: ob-deploy-1.1.0-1.el7.x86_64
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

Get local repositories and plugins ok
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

Get local repositories and plugins ok
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

# 连接OceanBase集群
obclient -h192.168.1.100 -P2883 -uroot -pfgedu123 -Doceanbase

Welcome to the OceanBase. Commands end with ; or \g.
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;

Query OK, 1 row affected (0.12 sec)

— 创建测试表
USE fgedudb;
CREATE TABLE fgedu_test (
id INT PRIMARY KEY,
name VARCHAR(100),
value INT
);

Database changed
Query OK, 0 rows affected (0.15 sec)

— 插入测试数据
INSERT INTO fgedu_test VALUES (1, ‘test1’, 100), (2, ‘test2’, 200);

Query OK, 2 rows affected (0.05 sec)
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;

Bye

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

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息