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的故障。 |
| 依赖软件 | • 需提前安装libaio、numactl、net-tools等系统库。 |
安装依赖包示例(以 CentOS 为例):
sudo yum install -y libaio-devel numactl net-tools二、 使用 OBD 自动化部署(推荐)
OceanBase Deployer (OBD) 是官方推荐的自动化部署和管理工具,能极大简化安装流程。
安装 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准备集群配置文件
创建一个 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部署集群
# 1. 检查并自动安装 OceanBase 软件包 obd cluster deploy obtest -c obcluster.yaml # 2. 启动集群 obd cluster start obtest # 3. 查看集群状态 obd cluster display obtest执行
display命令后,如果所有服务的状态(status)均为active,则表明集群启动成功。
三、 集群初始化与基础配置
集群启动后,需要通过命令行客户端连接并进行初始化设置。
连接系统租户(sys)
# 使用 OBD 自带的客户端连接,-h 指定任意一个节点IP obclient -h192.168.1.101 -P2881 -uroot@sys -p # 或者使用 MySQL 客户端 mysql -h192.168.1.101 -P2881 -uroot@sys -p修改 root@sys 密码(首次必须)
ALTER USER root IDENTIFIED BY 'YourStrongPassword123';创建业务租户
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;
四、 连接与验证业务租户
连接业务租户
mysql -h192.168.1.101 -P2881 -umy_user@my_tenant -p # 或 obclient -h192.168.1.101 -P2881 -umy_user@my_tenant -p执行基本操作验证
-- 在业务租户连接下执行 -- 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_limitsystem_memoryob_sql_work_area_percentage | 控制OBServer总内存和系统内存。ob_sql_work_area_percentage用于排序、哈希连接等操作的工作区内存占比,OLAP场景可适当调高。 |
| 日志与恢复 | clog_sync_time_warn_thresholdundo_retention | 控制Redo日志同步告警阈值和MVCC多版本数据保留时间。根据对数据恢复和磁盘空间的需求调整。 |
| 超时与重试 | ob_query_timeoutob_trx_timeout | 设置查询和事务的超时时间,防止慢查询长期占用资源。 |
| 备份与归档 | data_backup_destlog_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;六、 生产环境高可用考量
对于生产环境,仅完成基础安装是不够的,还需规划高可用和监控。
部署 OBProxy
OBProxy 是 OceanBase 的智能路由代理,对应用透明,提供读写分离、故障自动切换、连接池等功能。# 使用 OBD 部署 OBProxy # 在单独的配置文件中定义 OBProxy 节点,然后执行部署和启动 obd cluster deploy obproxy-test -c obproxy.yaml obd cluster start obproxy-test应用应连接 OBProxy 的地址(默认端口 2883),而非直连 OBServer。
配置监控与告警
- OCP (OceanBase Cloud Platform):官方的集中式管理平台,提供监控、告警、备份恢复、性能诊断等全套运维能力,是生产运维的首选。
- Prometheus + Grafana:社区方案,通过 exporter 采集 OceanBase 指标,在 Grafana 中展示监控大盘。
制定备份策略
-- 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 安装与配置