分布式数据库入门体验-在Mac中体验OB

分布式数据库入门体验-在Mac中体验OB

概述

OceanBase 数据库是一个原生的分布式关系数据库,它是完全由阿里巴巴和蚂蚁集团自主研发的项目。OceanBase 数据库构建在通用服务器集群上,基于 Paxos 协议和分布式架构,提供金融级高可用和线性伸缩能力,不依赖特定硬件架构,具备高可用、线性扩展、高性能、低成本等核心技术优势。

OceanBase看起来好强大,想上手使用 OceanBase 却因为种种困难卡在部署阶段望而却步?先做这个练习吧

快速体验OceanBase数据库

在部署OceanBase社区版之前,我们可通过Docker环境快速体验部署好的OceanBase社区版环境。我们使用官方镜像在本地电脑上体验OB集群。资源要求:

  • 机器可用内存不少于10G 。
  • 机器磁盘目录空间不少于10G。若少于10G 后续使用过程中可能会出现问题,如:遭遇空间目录问题等。
  • CPU 建议至少有2个逻辑 CPU 。

docker软件安装过程忽略,默认有个docker环境。

拉取镜像

拉去命令:

docker pull oceanbase/obce-mini

国内的几分钟就完事了,很快

启动容器

启动命令:

docker run -p 2881:2881 --name obce-mini -d -e OB_HOME_PATH="/root/obce/" -e OB_TENANT_NAME=“obmysql” oceanbase/obce-mini

返回日志:

user@MacBook-Pro bin % docker run -p 2881:2881 --name obce-mini -d -e OB_HOME_PATH="/root/obce/" -e OB_TENANT_NAME=“obmysql” oceanbase/obce-mini efc307a5432a1b3d75a6407d2b38a86f8e7d1b9fa0bfea06f443afd5183fb254

查看日志

… Check before start observer x [ERROR] (127.0.0.1) not enough memory. (Free: 4.3G, Need: 8.0G) …

处理错误

第一次启动提示内存不足,查看当前容器状态:

user@MacBook-Pro bin % docker ps -a | grep obce efc307a5432a oceanbase/obce-mini “/bin/sh -c _boot” 4 minutes ago Exited (1) 3 minutes ago obce-mini

为了避免不必要的麻烦,清理已存在的容器:

docker rm efc307a5432a

清理机器内存,调整docker内存容量限制:

启动成功

再次拉起容器后,查看日志:

generate boot.yaml … create boot dirs and deploy ob cluster … Package oceanbase-ce-3.1.0 is available. install oceanbase-ce-3.1.0 for local ok ±----------------------------------------------------------------------------+ | Packages | ±-------------±--------±--------±-----------------------------------------+ | Repository | Version | Release | Md5 | ±-------------±--------±--------±-----------------------------------------+ | oceanbase-ce | 3.1.0 | 2.el7 | afd11d52f83eef4b456d77969fde620c4bfba85e | ±-------------±--------±--------±-----------------------------------------+ Open ssh connection ok Remote oceanbase-ce-3.1.0-afd11d52f83eef4b456d77969fde620c4bfba85e repository install ok Remote oceanbase-ce-3.1.0-afd11d52f83eef4b456d77969fde620c4bfba85e repository lib check !! [WARN] 127.0.0.1 oceanbase-ce-3.1.0-afd11d52f83eef4b456d77969fde620c4bfba85e require: libaio.so.1 [WARN] 127.0.0.1 oceanbase-ce-3.1.0-afd11d52f83eef4b456d77969fde620c4bfba85e require: libmariadb.so.3 Try to get lib-repository Package oceanbase-ce-libs-3.1.0 is available. install oceanbase-ce-libs-3.1.0 for local ok Use oceanbase-ce-libs-3.1.0-47300ca1ac4c62493caf3e9235b105e242e533b5 for oceanbase-ce-3.1.0-afd11d52f83eef4b456d77969fde620c4bfba85e Remote oceanbase-ce-libs-3.1.0-47300ca1ac4c62493caf3e9235b105e242e533b5 repository install ok Remote oceanbase-ce-3.1.0-afd11d52f83eef4b456d77969fde620c4bfba85e repository lib check ok Cluster status check ok 127.0.0.1 initializes cluster work home mini-ce deployed start ob cluster … Get local repositories and plugins ok Open ssh connection ok Cluster param config check ok Check before start observer ok Start observer ok observer program health check ok Connect to observer ok Initialize cluster Cluster bootstrap ok Wait for observer init ok ±--------------------------------------------+ | observer | ±----------±--------±-----±------±-------+ | ip | version | port | zone | status | ±----------±--------±-----±------±-------+ | 127.0.0.1 | 3.1.0 | 2881 | zone1 | active | ±----------±--------±-----±------±-------+ mini-ce running generate init_tenant.sql … init tenant and sysbench database … boot success!

启动成功!

分析上面日志可以看出几点信息:

  • OceanBase 会安装两个软件包:oceanbase-ce-lib 和 oceanbase-ce-3.1.0 。
  • 启动 OceanBase 数据库会先初始化集群目录。
  • 之后初始化集群(bootstrap)。
  • 最后初始化业务租户(tenant)。

分析OceanBase数据库进程特点

进入容器

docker exec -it obce-mini bash

查看仓库

查看进程特点

查看进程监听端口

数据库工作目录结构

1