【赵渝强老师】OceanBase的部署模式

简介: OceanBase数据库通过多副本机制确保数据可靠性和服务高可用,支持同城及跨城容灾部署模式,适用于生产环境的全分布式集群部署。

b389.png

为保证单一机器故障时同一分区的多数派副本可用,OceanBase数据库会保证同一个分区的多个副本不调度在同一台机器上。由于同一个分区的副本分布在不同的Zone/Region下,在城市级灾难或者数据中心故障时既保证了数据的可靠性,又保证了数据库服务的可用性,达到可靠性与可用性的平衡。OceanBase数据库创新的容灾能力有三地五中心可以无损容忍城市级灾难,以及同城三中心可以无损容忍数据中心级故障。下面分别展示了这两种部署模式的形式。

image.png


视频讲解如下:


下面将以在多机上部署OceanBase集群社区版为例来演示如何部署OceanBase全分布式集群。下表展示了OceanBase全分布式集群中包含的实例信息。

image.png


OceanBase全分布式集群是真正用于生产环境的集群模式,它是指在多机上部署生产环境的分布式集群。


(1)在中控机上在线安装obd

# 如果宿主机可以连接网络,可执行如下命令在线安装。
bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"

# 如果/tmp目录空间不足,会导致下载文件无法写入。解决方案如下:
# 修改文件/etc/fstab,增加如下内容:
# tmpfs /tmp tmpfs nodev,nosuid,size=5G 0 0


(2)安装成功后将输出下面的信息

##########################################################################
 Install Finished 
==========================================================================
Setup Environment:              source ~/.oceanbase-all-in-one/bin/env.sh 
Quick Start:                    obd demo 
Use Web Service to install:     obd web 
Use Web Service to upgrade:     obd web upgrade 
More Details:                   obd -h 
==========================================================================


(3)执行下面的语句生效环境变量

source ~/.oceanbase-all-in-one/bin/env.sh 

# 安装成功后,/tmp 目录下会新增tmp.xxx文件夹作为安装目录,如:tmp.66RxuoJG0f。


(4)在中控节点上配置到各节点的免密码登录

# 生成密钥对。
ssh-keygen -t rsa

# 复制公钥文件。
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.79.11
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.79.12
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.79.13
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.79.14

# 验证免密码登录。
ssh 192.168.79.11

# 此时不需要输入密码即可登录当前主机。


(5)编辑部署描述文件all-components.yaml,内容如下:

# 注意:由于OceanBase中每个observer最小需要6G内存,因此需要保证虚拟机能够提供足够内存。可以将每台运行observer的虚拟机内存设置为8G。

user:
  username: root
  password: Welcome_7788
  port: 22
oceanbase-ce:
  depends:
    - ob-configserver
  servers:
    - name: server1
      ip: 192.168.79.11
    - name: server2
      ip: 192.168.79.12
    - name: server3
      ip: 192.168.79.13
  global:
    cluster_id: 1
    memory_limit: 6G
    system_memory: 1G
    datafile_size: 10G
    log_disk_size: 5G
    cpu_count: 2
    production_mode: false
    enable_syslog_wf: false
    max_syslog_file_count: 4
    root_password: Welcome_1
  server1:
    mysql_port: 2881
    rpc_port: 2882
    obshell_port: 2886
    home_path: /root/observer
    data_dir: /root/obdata
    redo_dir: /root/redo
    zone: zone1
  server2:
    mysql_port: 2881
    rpc_port: 2882
    obshell_port: 2886
    home_path: /root/observer
    data_dir: /root/obdata
    redo_dir: /root/redo
    zone: zone1
  server3:
    mysql_port: 2881
    rpc_port: 2882
    obshell_port: 2886
    home_path: /root/observer
    data_dir: /root/obdata
    redo_dir: /root/redo
    zone: zone2
obproxy-ce:
  depends:
    - oceanbase-ce
    - ob-configserver
  servers:
    - 192.168.79.11
    - 192.168.79.13
  global:
    listen_port: 2883
    prometheus_listen_port: 2884
    home_path: /root/obproxy
    enable_cluster_checkout: false
    skip_proxy_sys_private_check: true
    enable_strict_kernel_release: false
    obproxy_sys_password: 'Welcome_1'
    observer_sys_password: 'Welcome_1'
obagent:
  depends:
    - oceanbase-ce
  servers:
    - name: server1
      ip: 192.168.79.11
    - name: server2
      ip: 192.168.79.12
    - name: server3
      ip: 192.168.79.13
  global:
    home_path: /root/obagent
prometheus:
  servers:
    - 192.168.79.14
  depends:
    - obagent
  global:
    home_path: /root/prometheus
grafana:
  servers:
    - 192.168.79.14
  depends:
    - prometheus
  global:
    home_path: /root/grafana
    login_password: 'Welcome_1'
ob-configserver:
  servers:
    - 192.168.79.14
  global:
    listen_port: 8080
    home_path: /root/ob-configserver


(6)执行命名部署集群

obd cluster deploy myob-cluster -c all-components.yaml

# myob-cluster为集群的名称。


(7)部署完成后,执行命令启动OceanBase

obd cluster start myob-cluster

# 启动成功后将输出下面的信息:
......
+------------------------------------------------------------------+
|                         ob-configserver                          |
+---------------+------+---------------+----------+--------+-------+
| server        | port | vip_address   | vip_port | status | pid   |
+---------------+------+---------------+----------+--------+-------+
| 192.168.79.14 | 8080 | 192.168.79.14 | 8080     | active | 51742 |
+---------------+------+---------------+----------+--------+-------+
curl -s 'http://192.168.79.14:8080/services?Action=GetObProxyConfig'
Connect to observer 192.168.79.11:2881 ok
Wait for observer init ok
+-------------------------------------------------+
|                   oceanbase-ce                  |
+---------------+---------+------+-------+--------+
| ip            | version | port | zone  | status |
+---------------+---------+------+-------+--------+
| 192.168.79.11 | 4.3.5.1 | 2881 | zone1 | ACTIVE |
| 192.168.79.12 | 4.3.5.1 | 2881 | zone1 | ACTIVE |
| 192.168.79.13 | 4.3.5.1 | 2881 | zone2 | ACTIVE |
+---------------+---------+------+-------+--------+
obclient -h192.168.79.11 -P2881 -uroot -p'Welcome_1' -Doceanbase -A
cluster unique id: ca2bc58a-5296-598f-8c3c-89efb5210f03-195d6f47d1f-01050304
Connect to obproxy ok
+-------------------------------------------------------------------+
|                             obproxy-ce                            |
+---------------+------+-----------------+-----------------+--------+
| ip            | port | prometheus_port | rpc_listen_port | status |
+---------------+------+-----------------+-----------------+--------+
| 192.168.79.11 | 2883 | 2884            | 2885            | active |
| 192.168.79.13 | 2883 | 2884            | 2885            | active |
+---------------+------+-----------------+-----------------+--------+
obclient -h192.168.79.11 -P2883 -uroot@proxysys -p'Welcome_1' -Doceanbase -A 
Connect to Obagent ok
+------------------------------------------------------------------+
|                             obagent                              |
+---------------+--------------------+--------------------+--------+
| ip            | mgragent_http_port | monagent_http_port | status |
+---------------+--------------------+--------------------+--------+
| 192.168.79.11 | 8089               | 8088               | active |
| 192.168.79.12 | 8089               | 8088               | active |
| 192.168.79.13 | 8089               | 8088               | active |
+---------------+--------------------+--------------------+--------+
Connect to Prometheus ok
+---------------------------------------------------------+
|                        prometheus                       |
+---------------------------+-------+------------+--------+
| url                       | user  | password   | status |
+---------------------------+-------+------------+--------+
| http://192.168.79.14:9090 | admin | ucws4ExTcX | active |
+---------------------------+-------+------------+--------+
Connect to grafana ok
+-------------------------------------------------------------------+
|                              grafana                              |
+---------------------------------------+-------+----------+--------+
| url                                   | user  | password | status |
+---------------------------------------+-------+----------+--------+
| http://192.168.79.14:3000/d/oceanbase | admin | admin    | active |
+---------------------------------------+-------+----------+--------+
myob-cluster running
......


相关文章
|
消息中间件 Cloud Native 前端开发
Spring Cloud Alibaba 2021.0.1.0 版本发布啦
本次隆重发布的 Spring Cloud Alibaba 2021.0.1.0 版本在 Spring Cloud 2021.0.1、Spring Boot 2.6.3 的基础上对其中包括注册配置中心、分布式消息等在内的众多组件进行重大升级。
6405 129
Spring Cloud Alibaba 2021.0.1.0 版本发布啦
|
3月前
|
资源调度 JavaScript 前端开发
前端组件库——Arco Design Vue知识点大全(一)
教程来源 https://bncne.cn/sheyingjiqiao.html Arco Design Vue是字节跳动开源的企业级Vue 3设计系统,源于抖音等亿级应用实践。聚焦设计一致性、开发提效与多端适配,具备60+高质量组件、全TypeScript支持、极致性能及可视化主题定制能力,已成为Vue 3生态中增长迅速的现代化UI解决方案。
|
3月前
|
人工智能 Linux API
阿里云轻量服务器及本地MacOS/Linux/Windows11部署OpenClaw步骤流程+千问Qwen3.6-Plus配置及常见问题解答
本文完整覆盖**2026年阿里云轻量服务器部署及本地MacOS/Linux/Windows11部署OpenClaw(Clawdbot)步骤流程及阿里云千问Qwen3.6-Plus配置及常见问题解答**,从部署前环境预检到服务优化,从核心API配置到高频问题排查,全程实战化、可复制、零冗余。掌握本文内容,即可避开90%的新手陷阱,快速让OpenClaw成为办公、学习、生活中的高效自动化助手,真正释放AI的落地价值。
502 0
|
8月前
|
Linux 分布式数据库 数据库
OceanBase all-in-one 4.2.0.0 安装教程(CentOS 7/EL7 一键部署详细步骤)​
OceanBase all-in-one 4.2.0.0 是蚂蚁集团推出的单机集成版分布式数据库,解压即用,内置服务、工具与运行环境,支持 CentOS/RHEL 7 x86_64,适合学习、测试与开发。
1147 0
|
Java API 开发工具
如何将python应用编译到android运行
【6月更文挑战第27天】本文介绍在Ubuntu 20上搭建Android开发环境,包括安装JRE/JDK,设置环境变量,添加i386架构,安装依赖和编译工具。并通过`p4a`命令行工具进行apk构建和清理。
784 6
如何将python应用编译到android运行
|
运维 关系型数据库 测试技术
【赵渝强老师】OceanBase部署工具
OceanBase是一款开源的国产分布式关系型数据库,支持通过obd和OCP部署数据库集群。obd(OceanBase Deployer)是OceanBase的安装部署工具,提供命令行和白屏界面两种方式,简化复杂配置流程,降低集群部署难度,并集成包管理、压测软件、集群管理等功能。OCP(OceanBase Cloud Platform)则面向中小型用户,提供主机管理、集群和租户运维等能力。文档详细介绍了obd的在线与离线安装方法、快速体验OceanBase的步骤,以及OCP的基本功能和主页面展示。
750 7
【赵渝强老师】OceanBase部署工具
|
11月前
|
存储 弹性计算 小程序
阿里云高校学生及教师用户专属“云工开物”活动学生和教师优惠权益及规则介绍
云工开物是阿里云面向全国高校学生及教师用户推出的专项高校计划,旨在通过提供丰富的云端资源和优惠权益,助力高校师生在云上科研、教学和学习活动中取得更显著的成果。本文将深入解析“云工开物”计划下高校学生及教师的权益规则,并详细解答常见问题,帮助师生更好地理解和利用这一计划。
1495 0
|
人工智能 自然语言处理 Java
对话即服务:Spring Boot整合MCP让你的CRUD系统秒变AI助手
本文介绍了如何通过Model Context Protocol (MCP) 协议将传统Spring Boot服务改造为支持AI交互的智能系统。MCP作为“万能适配器”,让AI以统一方式与多种服务和数据源交互,降低开发复杂度。文章以图书管理服务为例,详细说明了引入依赖、配置MCP服务器、改造服务方法(注解方式或函数Bean方式)及接口测试的全流程。最终实现用户通过自然语言查询数据库的功能,展示了MCP在简化AI集成、提升系统易用性方面的价值。未来,“对话即服务”有望成为主流开发范式。
10163 7
|
测试技术 容器
DeepSeek-R1-Distill-Qwen-1.5B基于MindIE推理实践
基于MindIE实现DeepSeek-R1-Distill-Qwen-1.5B的纯模型推理和服务化推理。
|
机器学习/深度学习 存储 文字识别
阿里国际Ovis2系列模型开源:多模态大语言模型的新突破
阿里国际Ovis2系列模型开源:多模态大语言模型的新突破
860 0