一、OceanBase数据库简介

  OceanBase是由蚂蚁集团完全自主研发的国产原生分布式数据库,始创于2010年。创新推出“三地五中心”城市级容灾新标准,是一个在TPC-C和TPC-H测试上都刷新了世界纪录的国产原生分布式数据库。 产品采用自研的一体化架构,兼顾分布式架构的扩展性与集中式架构的性能优势,用一套引擎同时支持TP和AP的混合负载,具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准和主流关系数据库、低成本等特点。2021年6月1日,OceanBase正式对外宣布开源,并成立OceanBase开源社区,社区官网同步上线,300万行核心代码向社区开放。

二、安装要求

  本地安装,即中控机器和目标机器是同一台机器。以OceanBase 数据库 3.1.3 版本为例,系统软硬件要求如下:

项目描述
系统Anolis OS 8.X 版本(内核 Linux 3.10.0 版本及以上)-- 推荐
Red Hat Enterprise Linux Server 7.X 版本、8.X 版本(内核 Linux 3.10.0 版本及以上) – 推荐
CentOS Linux 7.X 版本、8.X 版本(内核 Linux 3.10.0 版本及以上) – 推荐
Debian 9.X 版本及以上版本 (内核 Linux 3.10.0 版本及以上)
Ubuntu 20.X 版本及以上版本(内核 Linux 3.10.0 版本及以上)
CPU企业用户最低要求 16 核,推荐 32 核及以上
个人用户最低要求 2 核,推荐 8 核及以上
内存企业用户最低要求 64G,推荐 256G 及以上
个人用户简单试用最低要求 8G,长期使用要求不低于 32G,推荐 64G 及以上
内存低于 64G 建议使用 OBD 部署集群,不建议使用 OCP 部署小规格集群
磁盘类型推荐使用 SSD
磁盘存储空间内存大小的 4 倍及以上
文件系统EXT4 戓 XFS,当数据超过 16T 时,使用 XFS
网卡千兆互联及以上

三、环境准备

1、查看软硬件资源

在这里插入图片描述

#使用如下命令检查系统软硬件环境是否满足OceanBase数据库部署要求。
[root@s154 ~]# cat /etc/centos-release
[root@s154 ~]# uname -a
[root@s154 ~]# free -h
[root@s154 ~]# df -h
[root@s154 ~]# ifconfig

2、配置ssh免密登录

  linux服务器ssh免密登录配置见博文Linux之SSH免密登录配置

3、配置ntp时钟源

  Linux服务器配置ntp时钟源可以参照博文Linux之NTP服务器及客户端安装与配置

[root@s154 ~]# ntpq -4p
remote refid st t when poll reach delay offset jitter
==============================================================================
*119.28.206.193 100.122.36.196 2 u 1 64 1 45.157 -8.968 0.559
ntp6.flashdance 194.58.203.20 2 u 2 64 1 308.171 -5.071 6.429
ntp5.flashdance .INIT. 16 u - 64 0 0.000 0.000 0.000
139.199.214.202 100.122.36.196 2 u 2 64 1 18.823 -2.983 0.222
[root@s154 ~]# ntpstat
synchronised to NTP server (139.199.214.202) at stratum 3
time correct to within 228 ms
polling server every 64 s

4、配置 limits.conf

  OceanBase 数据库的进程涉及的限制包括线程最大栈空间大小(Stack)、最大文件句柄数(Open Files)和 core 文件大小 (Core File Size)。将会话级别的最大栈空间大小设置为 unlimited,最大文件句柄数设置为 655350,Core 文件大小设置为 unlimited。

[root@s154 ~]# vim /etc/security/limits.conf
添加如下内容后保存
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
* soft stack 20480
* hard stack 20480
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
#修改完成后重新连接查看,以生效
[root@s154 ~]# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31190
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 655350
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 20480
cpu time (seconds, -t) unlimited
max user processes (-u) 655360
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

5、配置 sysctl.conf

  为保证 OceanBase 数据库正常运行,在安装 OceanBase 数据库之前,您需要修改所有机器的 sysctl.conf 配置,以提高 Linux 系统的性能。如果您是个人用户,您可以跳过此步骤。如果您是企业用户,您必须配置 sysctl.conf。

[root@s154 ~]# vim /etc/sysctl.conf
#添加如下内容后保存
# for oceanbase
## 修改内核异步 I/O 限制
fs.aio-max-nr=1048576

#修改完成后使用如下命令使配置生效
[root@s154 etc]# sysctl -p
fs.aio-max-nr = 1048576

6、关闭防火墙和 SELinux

[root@s154 ~]# systemctl stop firewalld
[root@s154 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@s154 ~]# setenforce 0
[root@s154 ~]# sed -i ‘s/=enforcing/=disabled/g’ /etc/selinux/config

7、创建安装用户

[root@s154 ~]# useradd wuhs
#给wuhs用户添加sudo授权
[root@s154 ~]# sed -i ‘108a %wuhs ALL=(ALL) ALL’ /etc/sudoers

8、磁盘规划

  OceanBase 数据库的服务器依赖数据盘、事务日志盘和 OceanBase 数据库的安装盘。

[root@s154 ~]# mkdir /data
[root@s154 ~]# mkdir /redo
[root@s154 ~]# chown -R wuhs.wuhs /data
[root@s154 ~]# chown -R wuhs.wuhs /redo

9、手动关闭透明大页

[root@s154 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@s154 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

四、安装步骤

1、下载安装OBD

[wuhs@s154 ~]$ sudo yum install -y yum-utils

Installed:
yum-utils.noarch 0:1.1.31-54.el7_8


Complete!
[wuhs@s154 ~]$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
Loaded plugins: fastestmirror
adding repo from: https://mirrors.aliyun.com/oceanbase/OceanBase.repo
grabbing file https://mirrors.aliyun.com/oceanbase/OceanBase.repo to /etc/yum.repos.d/OceanBase.repo
repo saved to /etc/yum.repos.d/OceanBase.repo
[wuhs@s154 ~]$ ll /etc/yum.repos.d/
total 36
-rw-r–r–. 1 root root 1664 Nov 23 2018 CentOS-Base.repo

-rw-r–r–. 1 root root 512 May 14 2021 OceanBase.repo
[wuhs@s154 ~]$ sudo yum install -y ob-deploy

2、安装OBClient

[wuhs@s154 ~]$ sudo yum install -y obclient

Installed:
obclient.x86_64 0:2.0.1-2.el7

Complete!

3、下载本地安装配置文件

  访问官网mini-local-example.yaml下载本地安装配置文件到服务器上,可以使用拷贝的方式。
在这里插入图片描述

[wuhs@s154 ~]$ vim mini-local.yaml
#将官网min-local-example.yaml范例中的内容复制到mini-local.yaml文件中

4、修改配置文件中的devname变量和home_path

在这里插入图片描述

[wuhs@s154 ~]$ mkdir oceanbase

5、使用obd命令部署

  运行以下命令部署集群,其中,参数 deploy_name 为部署集群名称,可以理解为配置文件的别名。此命令会检查 home_path 和 data_dir 指向的目录是否为空。若目录不为空,则报错。此时可以加上 -f 选项,强制清空。在您执行了 obd cluster deploy 命令之后,OBD 将检查您的目标机器是否有 OceanBase 数据库安装包。如果没有安装包,OBD 将自动从 yum 源获取。如果您的机器不能访问公网,您可以从 OceanBase 官网下载安装包。

obd cluster deploy <deploy_name> -c <deploy_config_path>
#示例
[wuhs@s154 ~]$ obd cluster deploy obtest -c mini-local.yaml
#图中warning是因为未安装obclient,安装后无此warning。

在这里插入图片描述

6、启动OceanBase数据库

  运行以下命令启动集群,此命令会检查系统参数 fs.aio-max-nr 是否不小于 1048576。通常情况下一台机器启动一个节点不需要修改 fs.aio-max-nr。但当一台机器需要启动 4 个及以上的节点时,请务必修改 fs.aio-max-nr。

启动命令:obd cluster display <deploy_name>
#示例
[wuhs@s154 ~]$ obd cluster start obtest
Get local repositories and plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start observer ok
Start observer ok
observer program health check ok
Connect to observer ok
Wait for observer init ok
±--------------------------------------------+
| observer |
±----------±--------±-----±------±-------+
| ip | version | port | zone | status |
±----------±--------±-----±------±-------+
| 127.0.0.1 | 3.1.3 | 2881 | zone1 | active |
±----------±--------±-----±------±-------+

obtest running

7、检查集群状态

[wuhs@s154 ~]$ obd cluster display obtest
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
±--------------------------------------------+
| observer |
±----------±--------±-----±------±-------+
| ip | version | port | zone | status |
±----------±--------±-----±------±-------+
| 127.0.0.1 | 3.1.3 | 2881 | zone1 | active |
±----------±--------±-----±------±-------+

8、连接数据库

在这里插入图片描述

[wuhs@s154 ~]$ obclient -h127.0.0.1 -P2881 -uroot
Welcome to the OceanBase. Commands end with ; or \g.
Your MySQL connection id is 3221487630
Server version: 5.7.25 OceanBase 3.1.3 (r10100032022041510-a09d3134c10665f03fd56d7f8bdd413b2b771977) (Built Apr 15 2022 02:16:22)

Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MySQL [(none)]>

9、查看数据库

MySQL [(none)]> show databases;
±-------------------+
| Database |
±-------------------+
| oceanbase |
| information_schema |
| mysql |
| SYS |
| LBACSYS |
| ORAAUDITOR |
| test |
±-------------------+
7 rows in set (0.004 sec)
MySQL [oceanbase]> select version();
±-------------------+
| version() |
±-------------------+
| 3.1.3-OceanBase CE |
±-------------------+
1 row in set (0.001 sec)

10、查看资源消耗

  查看虚拟机运行状态,我们可以知道OceanBase本地安装情况下使用了内存7.43G,所以官网要求内存8G以上是实打实的,太低了缺少会跑步起来。博主尝试过4G内存下安装OceanBase数据库,安装的时候就报错了。
在这里插入图片描述
在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐