当前位置: 首页 > news >正文

OceanBase安装配置全攻略

OceanBase 数据库安装与配置指南

OceanBase(简称 OB)是一款企业级原生分布式数据库,具备高可用、高扩展、强一致和高度兼容 MySQL 协议等特性。其安装与配置流程涉及集群规划、软件部署、集群初始化、租户创建等关键步骤。本文将提供一个从零开始的详细指南。

一、 环境规划与准备

在开始安装前,必须进行详细的规划,以确保集群的稳定性和性能。

规划项详细说明与要求
硬件与操作系统推荐配置
CPU:x86_64架构,建议8核及以上。
内存:至少 16 GB。OceanBase 对内存要求较高,需预留足够内存给系统内部缓存(如 MemTable)。
磁盘:SSD 推荐。数据盘和日志盘建议分开,数据盘容量根据业务量预估,日志盘建议是数据盘的3-4倍。
OS:CentOS 7.x / RHEL 7.x / Ubuntu 16.04+ 等主流 Linux 发行版。确保内核版本在 2.6.32 以上。
网络• 集群内所有节点时钟必须同步(建议使用 NTP 服务)。
• 节点间网络延迟要求低且稳定(建议内网互通,延迟小于 1ms)。
• 开放必要的防火墙端口,通常包括:
-RPC 端口:默认 2882,用于节点间通信。
-SQL 访问端口:默认 2881,用于应用程序连接。
-监听端口:默认 2883。
部署模式单机部署:仅用于学习或测试。
分布式集群部署(生产推荐):至少3 个 Zone,每个 Zone 可包含 1 台或多台 OBServer。这是实现高可用和容灾的基础。例如,一个典型的“三副本三Zone”架构能容忍单个Zone的故障。
依赖软件• 需提前安装libaionumactlnet-tools等系统库。

安装依赖包示例(以 CentOS 为例):

sudo yum install -y libaio-devel numactl net-tools

二、 使用 OBD 自动化部署(推荐)

OceanBase Deployer (OBD) 是官方推荐的自动化部署和管理工具,能极大简化安装流程。

  1. 安装 OBD

    # 通过 OceanBase 官方软件源安装 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo sudo yum install -y ob-deploy # 验证安装 obd --version
  2. 准备集群配置文件
    创建一个 YAML 配置文件(如obcluster.yaml),定义集群拓扑和参数。

    ## obcluster.yaml 示例:部署一个包含3个节点的测试集群 oceanbase-ce: servers: - name: server1 ip: 192.168.1.101 - name: server2 ip: 192.168.1.102 - name: server3 ip: 192.168.1.103 global: # 集群基础配置 cluster_id: 1 # 指定数据、日志、安装等目录(需提前创建并有足够权限) home_path: /home/admin/observer data_dir: /data/obdata redo_dir: /data/oblog # 资源规划 memory_limit: 8G # 单个observer进程内存上限 system_memory: 4G # 系统预留内存 cpu_count: 8 datafile_size: 50G # 数据文件初始大小 log_disk_size: 100G # 日志磁盘大小 # 网络配置 devname: eth0 mysql_port: 2881 rpc_port: 2882 # 高可用配置:定义3个Zone,每个Zone一个副本 replication_num: 3 zone_list: [zone1, zone2, zone3] server1: zone: zone1 server2: zone: zone2 server3: zone: zone3
  3. 部署集群

    # 1. 检查并自动安装 OceanBase 软件包 obd cluster deploy obtest -c obcluster.yaml # 2. 启动集群 obd cluster start obtest # 3. 查看集群状态 obd cluster display obtest

    执行display命令后,如果所有服务的状态(status)均为active,则表明集群启动成功。

三、 集群初始化与基础配置

集群启动后,需要通过命令行客户端连接并进行初始化设置。

  1. 连接系统租户(sys)

    # 使用 OBD 自带的客户端连接,-h 指定任意一个节点IP obclient -h192.168.1.101 -P2881 -uroot@sys -p # 或者使用 MySQL 客户端 mysql -h192.168.1.101 -P2881 -uroot@sys -p
  2. 修改 root@sys 密码(首次必须)

    ALTER USER root IDENTIFIED BY 'YourStrongPassword123';
  3. 创建业务租户
    OceanBase 采用多租户架构。系统租户(sys)主要用于管理,业务数据应存放在独立的业务租户中。

    -- 1. 创建资源单元配置(Resource Unit),定义租户的CPU、内存等资源上限 CREATE RESOURCE UNIT my_unit_config MAX_CPU = 2, MIN_CPU = 1, MEMORY_SIZE = '4G', LOG_DISK_SIZE = '20G', MAX_IOPS = 10000, MIN_IOPS = 1000; -- 2. 创建资源池,将资源单元与 Zone 关联 CREATE RESOURCE POOL my_resource_pool UNIT = 'my_unit_config', UNIT_NUM = 1, -- 每个Zone上的单元数量 ZONE_LIST = ('zone1', 'zone2', 'zone3'); -- 3. 创建业务租户,并指定字符集、副本数等 CREATE TENANT IF NOT EXISTS my_tenant RESOURCE_POOL_LIST = ('my_resource_pool'), PRIMARY_ZONE = 'RANDOM', -- 主副本优先分布策略 COMMENT = '我的业务租户', CHARSET = 'utf8mb4', REPLICA_NUM = 3, -- 副本数,通常与Zone数一致 ZONE_LIST = ('zone1', 'zone2', 'zone3'), OB_COMPATIBILITY_MODE = 'mysql'; -- 兼容MySQL模式 -- 4. 为业务租户创建管理用户 CREATE USER my_user IDENTIFIED BY 'UserPassword123'; GRANT ALL PRIVILEGES ON *.* TO my_user;

四、 连接与验证业务租户

  1. 连接业务租户

    mysql -h192.168.1.101 -P2881 -umy_user@my_tenant -p # 或 obclient -h192.168.1.101 -P2881 -umy_user@my_tenant -p
  2. 执行基本操作验证

    -- 在业务租户连接下执行 -- 1. 创建测试数据库和表 CREATE DATABASE test_db; USE test_db; CREATE TABLE test_table ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), create_time DATETIME DEFAULT CURRENT_TIMESTAMP ); -- 2. 插入和查询数据 INSERT INTO test_table (name) VALUES ('OceanBase Test'); SELECT * FROM test_table; -- 3. 查看表分布(验证分布式特性) SELECT /*+ READ_CONSISTENCY(WEAK)*/ table_name, partition_id, svr_ip FROM oceanbase.__all_virtual_proxy_schema WHERE table_name='TEST_TABLE'\G

五、 关键参数调优与管理

安装后,根据业务负载调整关键参数至关重要。

参数类别关键参数说明与建议调整场景
内存与缓存memory_limit
system_memory
ob_sql_work_area_percentage
控制OBServer总内存和系统内存。ob_sql_work_area_percentage用于排序、哈希连接等操作的工作区内存占比,OLAP场景可适当调高。
日志与恢复clog_sync_time_warn_threshold
undo_retention
控制Redo日志同步告警阈值和MVCC多版本数据保留时间。根据对数据恢复和磁盘空间的需求调整。
超时与重试ob_query_timeout
ob_trx_timeout
设置查询和事务的超时时间,防止慢查询长期占用资源。
备份与归档data_backup_dest
log_archive_dest
生产环境必须配置。设置数据备份和日志归档的路径(通常为NFS或OSS),这是实现数据恢复的基础。

参数修改示例:

-- 在 sys 租户下,修改集群级参数 ALTER SYSTEM SET memory_limit='16G' SERVER='192.168.1.101:2882'; -- 或修改租户级参数 ALTER TENANT my_tenant SET ob_sql_work_area_percentage=30;

六、 生产环境高可用考量

对于生产环境,仅完成基础安装是不够的,还需规划高可用和监控。

  1. 部署 OBProxy
    OBProxy 是 OceanBase 的智能路由代理,对应用透明,提供读写分离、故障自动切换、连接池等功能。

    # 使用 OBD 部署 OBProxy # 在单独的配置文件中定义 OBProxy 节点,然后执行部署和启动 obd cluster deploy obproxy-test -c obproxy.yaml obd cluster start obproxy-test

    应用应连接 OBProxy 的地址(默认端口 2883),而非直连 OBServer。

  2. 配置监控与告警

    • OCP (OceanBase Cloud Platform):官方的集中式管理平台,提供监控、告警、备份恢复、性能诊断等全套运维能力,是生产运维的首选。
    • Prometheus + Grafana:社区方案,通过 exporter 采集 OceanBase 指标,在 Grafana 中展示监控大盘。
  3. 制定备份策略

    -- 1. 设置备份路径 ALTER SYSTEM SET data_backup_dest='file:///obbackup/data'; ALTER SYSTEM SET log_archive_dest='file:///obbackup/archive'; -- 2. 开启日志归档 ALTER SYSTEM ARCHIVELOG; -- 3. 发起一次全量备份(可配置定时任务) ALTER SYSTEM BACKUP DATABASE;

通过以上步骤,您就完成了 OceanBase 数据库从环境准备、自动化部署、初始化配置到基础验证的全过程。对于生产环境,务必在部署后详细测试高可用切换、备份恢复等关键场景,并建立完善的监控体系。


参考来源

  • OceanBase 4.X-2F1A 仲裁高可用方案初探
  • openclaw安装配置
  • OpenClaw安装配置
  • OpenClaw 安装配置指南
  • 快速安装 OpenClaw:安装与配置指南
  • OpenClaw(七)| Skills 安装与配置
http://www.jsqmd.com/news/799971/

相关文章:

  • 2026年4月市面上正规的防爆烘箱供应厂家推荐,正规的防爆烘箱供应商怎么选 - 品牌推荐师
  • SAP-BTP :(4)RAP-创建CDS DATA模型映射和拓展
  • Unlock Music终极指南:5分钟解决加密音乐播放难题,实现跨平台音乐自由
  • 基于MCP的AI智能体:用自然语言轻松管理TikTok广告投放
  • 2026届毕业生推荐的六大AI学术平台推荐
  • EDA与IP生态演进:从ESL综合到先进封装,2013年行业转折点深度解析
  • C语言核心知识体系总结
  • ESP32开发板选型指南:为什么NodeMCU-32S是新手入门的最佳选择?
  • GDB太慢?试试用addr2line给你的C/C++程序做“尸检报告”
  • 2026酒店中央净水系统厂家推荐:直饮水设备生产厂家,一站式解决方案 - 栗子测评
  • AI Skills自动图文助手|全场景技能包一键调用
  • 最高月薪50k!AI再厉害,也离不开人工实测,车载测试人才依然吃香
  • Driver Store Explorer深度解析:Windows驱动存储管理的终极解决方案
  • 告别GPS依赖:用PTP协议和本地高精度晶振,搭建一个更可靠的工业级时间同步系统
  • 上海亚卡黎实业2026优选车载式高空作业平台厂家:高空作业车品牌/生产厂家/厂家推荐上海亚卡黎实业有限公司 - 栗子测评
  • 流化床式气流粉碎机厂家推荐:2026粉体搅拌混合机/超微粉碎机粉体设备生产厂家实力解析 - 栗子测评
  • 基于GitHub数据构建AI人才知识图谱:技术架构与工程实践
  • 二叉树与递归:解锁高级数据结构的编程内功心法
  • FastAPI + SQLAlchemy 异步 ORM实现自动建表
  • 保姆级教程:用Python和NumPy手把手复现MIMO信道SVD分解与预编码(附代码)
  • RK3399 eMMC硬件设计中的启动模式与信号完整性考量
  • 基于OpenClaw框架的智能园艺助手:AI Agent与文件即记忆的实践
  • 基于Twilio与ChatGPT构建AI电话助手:架构设计与实战指南
  • Blueberry印相失效全归因分析,深度解读--stylize权重错配、种子漂移及提示词氧化导致的蓝调衰减现象
  • 基于RAG的本地知识库聊天机器人:anything-llm部署与实战指南
  • 如果真有外星人,快把我带走吧,换个坑
  • 【Android Q】super分区metadata结构深度剖析与实战解析
  • 基于CrewAI的多智能体自主开发团队:从原理到工程实践
  • 【实战】T100开发核心:从Genero FGL到帆软报表的进阶指南
  • 基于 HM-TM32 红外摄像头:棉花燃烧+起火自动录制 30 秒视频