尧图精选

Linux下OceanBase安装部署全流程:从OBD到手动搭建与排错

🕒 发布时间:2026/9/17 15:17:20 📁 来源:尧图网络
最近在搞国产数据库选型OceanBase 是个绕不开的名字。前期调研时看官方文档觉得挺简单但真到 Linux 上动手部署还是踩了不少坑——从依赖包缺失到内存配置不当导致 observer 进程反复崩溃再到 OBD 命令和直连登录的端口混淆每一步都有讲究。这篇文章就把我在 Linux 环境下完整安装 OceanBase 数据库的过程、思路和排错经验整理出来给同样需要自建 OceanBase 环境的朋友做个参考。先说清楚这里讨论的是什么。OceanBase 是蚂蚁集团自研的分布式关系型数据库兼容 MySQL 协议支持水平扩展、多租户、HTAP 等能力在金融场景里用得比较多。过去需要商业授权现在社区版可以免费使用核心功能和官方文档都开放。对于做技术选型、课程设计或者想深入了解分布式数据库内部机制的同学来说在 Linux 上自己跑一套 OceanBase是最直接的上手方式。整个安装部署过程会分成环境准备、下载与方案选择、单机部署实操、配置调优、常见故障排查几个部分来讲。无论你是第一次接触 OceanBase还是已经在业务里用过但想自己搭一套测试环境这篇文章都会给你一个可直接复用的操作路径。1. 安装前先把 OceanBase 的几个概念理清楚很多人在安装 OceanBase 时报错或卡住根源不是命令写错了而是没搞明白 OceanBase 的部署架构。它不像 MySQL 那样装一个 mysqld 就完事而是有集群、Zone、OBServer、OBProxy、OBD这一整套概念。先把这些名词弄清楚后面所有的命令和配置就都顺了。OBServerOceanBase 的数据库内核进程负责实际存储和计算。一个物理服务器上可以跑一个或多个 OBServer 进程每个进程对应一个实例。Zone逻辑上的容灾单元通常一个机房或一个机架是一个 Zone。每个 Zone 内可以有多台 OBServer 机器。集群由多个 Zone 组成数据在 Zone 之间做副本冗余通常是三副本或五副本。OBProxy接入层代理负责把客户端的 SQL 请求路由到正确的 OBServer 上。客户端不直连 OBServer而是连 OBProxy。OBDOceanBase Deployer 的缩写是官方提供的自动化部署工具类似 Kubernetes 里的 kubeadm可以用一条命令拉起整套集群。我最早安装时犯的最大错误就是只装了 OBServer以为它就是完整的数据库。结果一登录客户端才发现没有 OBProxy 根本没办法做 SQL 路由多个节点之间也没法自动负载均衡。所以这篇文章里我会把 OBD OBServer OBProxy 的完整链路都给你跑通。另外一个需要提前认知的事情是OceanBase 社区版虽然在功能上和商业版有差异但单机部署、多副本集群、分布式事务、备份恢复这些核心能力都是完整的。对于学习、测试、课程设计甚至小规模生产环境社区版完全够用。2. 环境准备与版本选型这事决定了后面 80% 的坑2.1 硬件和操作系统要求OceanBase 对硬件的要求不算苛刻但内存是个硬指标。官方建议最低 8GB 内存如果你的服务器只有 4GB 甚至 2GB我劝你不要浪费时间——OBServer 进程启动时默认会分配大量内存给内存表内存不足直接会导致进程被 OOM Killer 干掉。理论上最少 2 核 CPU 就能跑但建议至少 4 核。磁盘方面OceanBase 会把数据持久化到 SSTable 文件同时依赖内存中的 MemTable 做写入缓冲所以对磁盘写性能有一定要求SSD 是标配。如果只是学习和测试用虚拟机或者云服务器的最低配就行但内存必须保证 8GB 以上。操作系统方面OceanBase 官方支持 CentOS 7、CentOS 8、RedHat、麒麟 V10、统信 UOS 等常见国产化系统。实际上只要是 x86_64 或 ARM 架构的 Linux内核版本在 3.10 以上基本都能跑起来。我这次使用的是 CentOS 7.9这也是官方文档里验证最充分的组合。我建议你在安装前确认一下系统版本和内核版本避免后续出现兼容性问题。用下面两条命令快速检查cat /etc/redhat-release uname -r另外记得关闭防火墙或者放行 OceanBase 需要的端口否则后面连接会走不通。CentOS 7 上的操作是systemctl stop firewalld systemctl disable firewalld如果你不想关闭防火墙至少要放行 2881OBProxy 客户端接入端口、2882OBProxy 内部通信、2883OBServer SQL 访问端口这几个常用端口。2.2 社区版 vs 商业版选择适合自己的发行包OceanBase 数据库的发行包有商业版和社区版之分。商业版需要企业授权包含 Oracle 兼容模式、高级压缩等技术特性社区版是开源免费的目前开源的是 OceanBase 内核代码可以自行编译安装也可以从官网下载编译好的 RPM 包。对于绝大多数场景直接用社区版 RPM 包最省事没必要自己从源码编译。社区版的版本号需要关注一下不同版本的部署方式有区别。我这里以稳定的 4.x 版本为例如果你下载到的版本比 4.0 高部署流程基本一致但部分参数名和默认值可能略有差异具体以官方 release note 为准。下载地址是 OceanBase 官网的软件中心也可以在 GitHub Releases 页面找到。需要下载的组件包括oceanbase-ce核心的 OBServer 进程包obproxy-ce访问代理组件obclient官方命令行客户端兼容 MySQL 模式的连接方式obd自动化部署和运维管理工具个人建议优先使用 OBD 的在线安装方式它会自动解析依赖关系、下载合适版本的 RPM 包。如果所在环境是内网隔离的离线环境再考虑手动下载 RPM 包批量安装。2.3 内核参数和文件系统细节不能省OceanBase 对 Linux 内核参数有几个关键要求如果没有配置可能会出现运行不稳定或者性能差的问题。以下是需要重点检查的参数。vm.swappiness建议设置为 0 或 10避免系统用 swap 交换内存影响数据库性能。数据库场景下内存非常敏感一旦发生 swap延迟会飙升。vm.overcommit_memory建议设置为 0让内核根据自己的算法决定是否允许内存超额分配。不要设置为 2否则进程可能因为 mmap 失败而无法启动。fs.file-max如果太低大量连接时可能句柄不足建议调大。net.core.somaxconn网络监听队列长度默认 128 可能不够建议调大。修改方法是在/etc/sysctl.conf中追加配置然后执行sysctl -p生效vm.swappiness 10 vm.overcommit_memory 0 fs.file-max 6553500 net.core.somaxconn 1024文件系统格式建议使用 xfs 或 ext4。OceanBase 的生产环境规范里写的是 xfs因为它在大规模并发写场景下表现更稳定。如果你用的是云盘或本地盘格式化成 xfs 就行。3. 熟悉 OBD 自动化部署工具一键部署的核心3.1 OBD 是什么为什么推荐用它OBD 是 OceanBase 官方提供的部署工具原名叫 ob-deployer。它的主要作用是把下载软件包、生成配置、初始化环境、逐台启动机器上的 OBServer 进程这些复杂操作封装成一条命令。在单机部署场景下你只需要写一个 YAML 格式的配置文件然后运行obd cluster deploy和obd cluster start就可以了。如果你是第一次部署我强烈建议用 OBD而不是手动逐台启动 OBServer。手动方式需要对配置文件格式、各参数含义、启动顺序、bootstrap 流程都非常熟悉出错的概率很高。OBD 的好处是它会检查环境是否满足要求并给出可读的错误提示。3.2 安装 OBD 的两种方式OBD 的安装方式有两种。第一种是在线安装用 Python 的 pip 包管理工具安装pip3 install obd第二种是离线安装从 OceanBase 官网或 GitHub Release 页下载 OBD 的 RPM 包然后sudo yum install -y obd-*.rpm安装完成后运行obd --version确认版本正常。3.3 用 OBD 生成最小化集群配置OBD 安装完以后可以在当前目录下创建一个 YAML 配置文件。最简单的单机部署配置大致如下user: username: admin password: your_password oceanbase-ce: servers: - 127.0.0.1 global: devname: eth0 memory_limit: 6G system_memory: 2G stack_size: 512K cpu_count: 4 __min_full_resource_pool_memory: 268435456 datafile_size: 10G log_disk_size: 10G production_mode: false obproxy-ce: servers: - 127.0.0.1 global: listen_port: 2883 prometheus_listen_port: 2884这个配置里user指定了用哪个系统用户来启动 OBServer 进程oceanbase-ce和obproxy-ce分别定义了两类组件的机器列表和参数。memory_limit是 OBServer 进程可用总内存system_memory是系统租户保留内存datafile_size是数据文件初始大小。这些都是先铺底用的后面可以再调。如果跟我一样在 8G 内存的机器上部署memory_limit设置 6G、system_memory设置 2G 是比较稳的组合。如果内存只有 8G 而把memory_limit设满系统本身还要留内存给操作系统和其他进程很容易触发内存不足问题。3.4 部署和启动命令配置写好后执行部署命令obd cluster deploy obtest -c obtest.yaml这里的obtest是给集群起的名字可以自定义。部署过程中 OBD 会在目标机器上创建目录、复制文件、生成配置文件同时做一次环境检查。部署完成后启动集群obd cluster start obtest启动成功后再查看集群状态obd cluster display obtest输出里会看到 OBServer 和 OBProxy 的进程状态、监听地址、端口等信息。看到active或者running状态就说明启动成功。4. 手动安装方式全流程如果你想彻底搞懂内部机制用 OBD 部署很省事但很多问题在命令行输出里只是一行错误提示背后的原因还得靠理解 OceanBase 进程本身。所以我建议你至少完整走一遍手动安装流程——这能帮你理解 OBD 帮你做了什么也为后续排查故障时提供了如果 OBD 搞不定我可以手动搞定的兜底方案。4.1 下载并解压软件包手动安装需要先准备好三个软件包OBServeroceanbase-ce、OBProxyobproxy-ce和命令行客户端obclient。下载对应的 RPM 包后用 rpm 安装sudo rpm -ivh oceanbase-ce-4.x.x.x.el7.x86_64.rpm sudo rpm -ivh obproxy-ce-4.x.x.x.el7.x86_64.rpm sudo rpm -ivh obclient-2.x.x.x.el7.x86_64.rpm安装完成后OceanBase 相关文件会分布在几个目录中/home/admin/oceanbase或/opt/oceanbaseOBServer 的主目录包含二进制文件和配置目录/usr/lib/python3/site-packages或类似路径obd 工具所在位置/usr/local/obclientobclient 客户端的安装目录如果你是手动 rpm 安装通常需要在系统里创建admin用户sudo useradd -m admin sudo mkdir -p /home/admin/oceanbase sudo chown -R admin:admin /home/admin所有用 admin 用户执行的命令最好都通过su - admin先切换过去不要用 root 直接跑否则后期会因为文件属主问题出现奇奇怪怪的异常。4.2 初始化目录结构和配置文件OBServer 进程启动时需要知道三件事数据目录、日志目录、配置文件路径。目录结构可以这样规划mkdir -p /home/admin/oceanbase/store/obtest mkdir -p /home/admin/oceanbase/log/obtest mkdir -p /home/admin/oceanbase/etc配置文件放在/home/admin/oceanbase/etc/observer.config.bin这是一个二进制配置文件不能直接编辑。在手动部署时更常见的方式是用命令行参数来指定参数而不是写配置文件。4.3 首次启动observer 的初始化参数详解手动启动 OBServer 的命令长这样cd /home/admin/oceanbase ./bin/observer \ -i eth0 \ -p 2882 \ -P 2883 \ -z zone1 \ -d /home/admin/oceanbase/store/obtest \ -r 192.168.1.10:2882:2881 \ -l WARN \ -o memory_limit6G,system_memory2G,datafile_size10G,log_disk_size10G,__min_full_resource_pool_memory268435456,cpu_count4这些参数的含义要记住因为在没有 OBD 的环境里排查问题全靠这一条命令-i指定网卡设备名OBServer 会绑定此网卡的 IP 进行通信-p内部 RPC 通信端口默认 2882-P外部 SQL 连接端口默认 2881 或 2883-z当前节点所属的 Zone 名称-d数据目录-r集群中所有节点的 RSRootServer地址列表格式是ip:rpc_port:sql_port-l日志级别WARN 级别可以在保证诊断能力的同时减少日志量-o以键值对形式传入的其他配置项首次启动时-d指定的目录必须为空或者不存在否则 OBServer 会认为已经有数据目录了做不了初始化 bootstrap。启动命令执行后先看进程是否存活ps -ef | grep observer如果进程没有起来去日志目录看 observer.logtail -200 /home/admin/oceanbase/log/obtest/observer.log日志里的报错会直接告诉你原因可能是端口被占用、内存参数不合法、目录权限不够、依赖库缺失等等。4.4 bootstrap 操作让集群真正转起来很多人在手动部署时启动 OBServer 进程后发现 SQL 还是连不上日志也一直报cluster is not initialized。这是因为 OBServer 启动后还处于空集群状态必须执行一次 bootstrap 操作来初始化集群元数据、创建系统租户。使用 obclient 连接到 OBServer 的 SQL 端口端口是你-P参数指定的那个默认 2883然后执行ALTER SYSTEM BOOTSTRAP ZONE zone1 SERVER 192.168.1.10:2882;如果 bootstrap 成功系统租户的元数据就初始化好了。这时再连接执行SELECT * FROM oceanbase.GV$OB_SERVERS;应该能看到当前节点的状态是active。bootstrap 是整个手动部署里最关键的步骤也是很多人失败的重灾区。常见的失败原因包括-r参数里的 IP 跟实际监听地址不一致、集群里节点间时间不同步、多个节点启动但 bootstrap 只写了一个。严格按照单节点示例来通常能一次通过。5. 分布式的核心多 Zone 多节点集群怎么搭如果部署目标是组成一个标准的三副本分布式集群只是多节点配置而已理解起来就不难。核心变化是在多个物理机上分别启动 OBServer然后让它们组成一个集群。5.1 多节点环境的设计三副本集群通常至少需要三台机器每台机器分配在一个 Zone 里。比如zone1192.168.1.11zone2192.168.1.12zone3192.168.1.13分配策略很灵活一台机器一个 Zone也可以一个 Zone 里放多台机器。如果是两个机房做容灾一般会在主机房放两个 Zone备份机房放一个 Zone这样任意一个 Zone 挂了数据副本仍然有半数以上存活。5.2 每个节点上的启动命令每个节点上的 OBServer 启动命令基本一样只是 IP 地址、Zone 名称和根服务器列表不同。以 192.168.1.11 为例./bin/observer \ -i eth0 \ -p 2882 \ -P 2883 \ -z zone1 \ -d /home/admin/oceanbase/store/obtest \ -r 192.168.1.11:2882:2881;192.168.1.12:2882:2881;192.168.1.13:2882:2881 \ -o memory_limit8G,system_memory2G注意-r参数在这里填的是所有三个节点的 RS 地址列表而不仅是本机地址。这是很多手动部署时的常见错误——-r只填了本机导致节点之间无法发现彼此。5.3 bootstrap 的区分布多节点集群的 bootstrap 操作需要把所有节点、Zone 都写进一条 SQLALTER SYSTEM BOOTSTRAP ZONE zone1 SERVER 192.168.1.11:2882, ZONE zone2 SERVER 192.168.1.12:2882, ZONE zone3 SERVER 192.168.1.13:2882;执行成功后整个集群的分布式能力就开始生效了。可以用以下 SQL 查看集群健康状态SELECT zone, name, role, status FROM oceanbase.GV$OB_SERVERS;理想状态下应该看到三行记录每个 Zone 一个节点role 为 LEADER 或 FOLLOWERstatus 为 ACTIVE。5.4 租户与资源单元多租户概念落地OceanBase 是原生多租户架构默认只有一个 sys 系统租户。要真正使用数据库资源需要自己创建业务租户。理解租户可以类比为一个大楼里的不同公司——大家共用同一栋楼集群但各自有独立的房间资源池互不干扰。创建租户的步骤是先创建资源单元Unit再创建资源池Resource Pool最后用资源池创建租户。以创建一个名为mytenant、内存 2G、副本数为 3 的租户为例-- 创建资源单元 CREATE RESOURCE UNIT u1 MAX_CPU2, MEMORY_SIZE2G, MAX_DISK_SIZE10G, MAX_SESSION_NUM500, MIN_CPU2; -- 创建资源池 CREATE RESOURCE POOL pool1 UNITu1, UNIT_NUM1, ZONE_LIST(zone1,zone2,zone3); -- 创建租户 CREATE TENANT mytenant RESOURCE_POOL_LIST(pool1) SET ob_compatibility_modemysql;创建完成后用 obclient 以租户身份连接obclient -h127.0.0.1 -P2883 -urootmytenant -p -A多租户的好处是不同项目、不同团队可以在同一套集群里逻辑隔离资源配额精确可控。课程设计或者给多个业务共用一套数据库的场景这个特性特别香。6. 安装完成后的关键配置内存、系统租户和密码6.1 内存参数再校准OBD 部署或者手动部署完成后默认的内存配置可能不是最优的。尤其是memory_limit和system_memory这两个参数直接影响 OBServer 的运行稳定性。原则是system_memory给系统租户保留不能太小至少 1G建议 2Gmemory_limit是 OBServer 所有租户可用总内存上限一般设为机器物理内存的 60%~80%memory_limit_percentage这个参数表示按百分比分配指定了它就不需要指定memory_limit修改参数用ALTER SYSTEM SET命令ALTER SYSTEM SET memory_limit8G; ALTER SYSTEM SET system_memory2G;修改后需要重启 OBServer 才能完全生效或者等集群自动重新负载均衡时逐步生效——但内存这种基础参数建议还是规划好了再改。6.2 修改 sys 租户 root 密码sys 租户是 OceanBase 的超级管理员租户默认密码为空也就是可以直接obclient -h127.0.0.1 -P2883 -urootsys -p回车进入。这是安全隐患必须第一时间改密码。ALTER USER root IDENTIFIED BY YourStrongPassword;同理业务租户创建后也应该设置符合安全要求的密码。6.3 国密 SM4 相关的注意点当前信息安全合规环境下部分行业要求数据库具备国密 SM4 加密能力。OceanBase 社区版从 4.2 版本开始对透明数据加密TDE提供了更完善的国密算法支持。简单解释一下TDE 是对落盘数据做加密让数据文件即使被拷贝走也无法直接读取明文。如果业务有合规要求创建租户时可以指定加密算法ALTER SYSTEM SET tde_encryption_algorithm SM4;实际使用国密加密前需要确认版本是否包含此特性、密钥管理如何对接。这个更多是规划和配置层面的工作而不是部署层面的阻塞点。我在这里提一下因为很多同学在防火墙和安全扫描的时候会被问到这个。6.4 时区与参数优化另一个容易忽略的设置是时区。数据库默认时区可能是 UTC而业务会按北京时间展示导致NOW()之类的函数和本地时间对不上。客户端连接时指定时区即可obclient -h127.0.0.1 -P2883 -urootmytenant -p -A --default-character-setutf8mb4或者在租户层面设置SET GLOBAL time_zone 08:00;另外ob_query_timeout默认可能是 10s如果业务里有慢查询会经常碰到超时报错。可以视场景调大到 30s 或更大但这只是缓解手段真正的做法还是优化 SQL 和执行计划。7. 常见问题与排查技巧实录7.1 observer 进程启动后反复退出这个是我遇到最多的问题。原因通常有三个内存不足、目录权限不对、端口被占用。内存不足时dmesg里能查到 OOM Kill 记录cat /var/log/messages里也有类似日志。解决办法是调低memory_limit或者给机器加内存。目录权限不对时启动日志会直接报 permission denied。用ls -ld看目录属主是否是 admin不是的话用chown -R admin:admin修正。端口被占用时用ss -lnt查看端口占用情况关掉冲突进程或者换端口。排查顺序建议先tail日志再dmesg看内核日志最后用strace跟踪系统调用。日志是第一步很多时候报错信息已经把原因写得很清楚了。7.2 obclient 连接报 10061 或连接拒绝这个 10061 错误通常不是权限问题而是端口没监听。先确认连接的是哪个端口OBProxy 的默认端口是 2883OBServer 的 SQL 端口默认是 2881。如果你启动参数里把 SQL 端口设为 2881但客户端连的是 2883自然连不上。排查方法ss -lnt | grep -E 2881|2882|2883如果 2883 端口没有监听的进程那就是 OBProxy 没有起来。用 OBD 部署时检查obd cluster display obtest如果是手动部署直接看 OBProxy 日志确认启动参数里的监听端口。7.3 bootstarp 报 node is not active or inactive这个错误说明 bootstrap 时读取的节点状态不对。大概率原因有三个启动命令中的 IP 与实际网卡 IP 不一致节点间时间不同步导致心跳判定异常数据目录里已有残留数据时间不同步在分布式数据库里是致命伤务必用 NTP 或 chrony 保证所有节点时间一致sudo chronyc sources -v如果时间差太大调整系统时间后重启 observer 再试。7.4 OBD 部署时报环境检查失败OBD 部署时会主动检查依赖库、Python 版本、磁盘空间、时钟同步等。常见失败项是Required components bash, chrony之类。这时候别绕过检查而是把依赖补齐。例如安装 chronysudo yum install -y chrony sudo systemctl enable chronyd sudo systemctl start chronyd还有一个坑OBD 会检查系统时间同步是否开启如果你本地是测试环境没有 NTP 服务器可以在配置里临时跳过检查项或者搭一个本地 chrony 服务器。7.5 忘记 root 密码怎么办如果是忘记 sys 租户 root 密码可以修改配置文件后重启 observer在启动参数中不启用鉴权模式下重置但这样太麻烦。更简单的办法是如果集群里还有其他节点或备份尽量从备份恢复如果只是测试环境直接把 OBServer 数据目录清掉重新 bootstrap。具体操作obd cluster stop obtest obd cluster destroy obtest obd cluster deploy obtest -c obtest.yaml obd cluster start obtest这种方法会清空所有数据适合测试环境或确认数据可丢失的环境。生产环境千万不要这么干。7.6 常用 OBD 运维命令速查# 查看集群状态 obd cluster display obtest # 停止集群 obd cluster stop obtest # 启动集群 obd cluster start obtest # 销毁集群删除数据目录谨慎操作 obd cluster destroy obtest # 修改配置后重新加载 obd cluster edit-config obtest obd cluster reload obtestedit-config是运维过程中最高频的命令修改内存参数、端口参数都靠它。注意修改后最好reload一次让配置生效。8. 实际使用中的一些性能与稳定性体会8.1 单机部署下能感受到分布式事务的好处吗这个问题很现实。单机部署时OceanBase 的 Paxos 多副本一致性协议优势体现不出来因为副本只有一份leader 和 follower 都在同一台机器上。但哪怕是这样OceanBase 的存储引擎、LSM-Tree 架构、向量化执行引擎等特性仍然能带来明显体验上的不同特别是在数据导入和复杂分析查询场景。我的实测感受是在单机环境下数据导入的吞吐量很不错主要因为它的写入路径是先写内存再批量合并到磁盘避免了随机写而复杂查询上向量化执行引擎对某些聚合、关联查询的加速效果很突出。所以单机部署用于学习、课程设计和功能验证完全没问题。8.2 连接数限制和资源隔离OceanBase 的连接数限制和 MySQL 不一样。MySQL 由全局变量max_connections统一控制OceanBase 则是每个租户的MAX_SESSION_NUM在资源单元定义时确定。如果某个业务租户的连接数不够用不用动全局参数只需要扩大资源单元或者调整租户参数ALTER RESOURCE UNIT u1 MAX_SESSION_NUM2000;这种租户级资源隔离在多业务共库时非常有用——一个业务的连接风暴不会拖垮其他业务。8.3 备份恢复怎么验证部署完成不是终点一定要做一次备份恢复演练。OceanBase 社区版支持物理备份和逻辑备份。最简单的逻辑备份用obclient配合mysqldump风格的工具导出即可但这不是重头戏。更有价值的做法是用 OBD 的快照备份功能obd cluster tenant-backup obtest --tenantmytenant它会生成租户级别的备份。恢复时obd cluster tenant-restore obtest --tenantmytenant --from备份路径我在测试环境里做过一次备份恢复演练整体链路跑通后才算真正把一个数据库环境交付出去否则哪天误删了数据才发现备份是坏的代价就大了。9. 最后几个实操建议给第一次部署的人先把机器内存搞到 8G 以上用 OBD 部署不要一上来就手动启动 observer。先让 OBD 把你带进一个可用的集群再尝试手动方式去理解内部机制。这条路走顺了后面的运维和问题排查会轻松很多。给要在课程设计或毕设里用 OceanBase 的人务必把它跑成三副本集群哪怕用 Docker 在本机模拟三个容器。只有多副本集群才能体现分布式数据库的核心价值高可用、故障自动切换、Paxos 一致性。单机部署看到的能力只是冰山一角。给生产环境选型的人先确认版本和 License 条款社区版可以免费商用但要仔细核对版本迭代和官方支持策略。部署前做好容量规划内存和磁盘都要预留余量同时把监控告警做起来OceanBase 的 OCP 监控平台可以对接 Prometheus社区里也有各种 exporter 可用。我在自己的测试机上先后部署过单节点和三副本集群中间踩过的坑基本都写在上面了。总体感受是OceanBase 的门槛不在于安装本身而在于理解它的架构和运维模型。装好一个数据库只是第一步把备份、监控、扩容、降级这些持续运营的能力建立起来才算是真正掌握一个数据库系统。希望这篇文章能帮你少走几个弯路。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →