# 部署准备

OceanBase 是一个分布式集群产品，在生产环境至少是三台机器。学习环境可以部署单机版本。
OceanBase 的部署跟传统数据库的部署有很多共同的地方，对操作系统硬件、软件设置、文件系统等会有一些最佳实践建议。那些是 OceanBase 发挥高性能稳定运行的基础。社区版也提供了工具能实现一定程度的自动化。

<!-- more -->

## 软件介绍

OceanBase 本质上是一个单进程的软件，可执行文件名叫 `observer` 。可以通过 RPM 包安装，也可以通过源码直接编译安装。本课程都是通过 RPM 包方式安装、

软件包下载地址有：

+ 官网下载：[https://open.oceanbase.com/softwareCenter/community](https://open.oceanbase.com/softwareCenter/community)
+ GitHub 下载：[https://github.com/oceanbase/oceanbase/releases/](https://github.com/oceanbase/oceanbase/releases/)
+ 阿里云 Yum 源：[https://mirrors.aliyun.com/oceanbase/OceanBase.repo](https://mirrors.aliyun.com/oceanbase/OceanBase.repo)

| 软件包名                                     | 进程名      | 软件用途                               |
|------------------------------------------|----------|------------------------------------|
| oceanbase-ce-3.1.1-1.el7.x86_64.rpm      | observer | oceanbase 数据库进程，常驻后台运行。            |
| oceanbase-ce-libs-3.1.1-1.el7.x86_64.rpm |          |    提供软件运行的 library，不运行。     |
| obproxy-3.1.0-1.el7.x86_64.rpm           | obproxy  | oceanbase 访问反向代理，单进程，常驻后台运行。       |
| ob-deploy-1.1.1-1.el7.x86_64         | obd         | oceanbase 自动化部署软件，提供部署命令行，不常驻后台运行。 |
| obclient-2.0.0-2.el8.x86_64.rpm  | obclient| oceanbase 官方命令行客户端 |

注：版本号后期会变，以实际版本为主。

如果机器可以连公网，可以将阿里云 YUM 源添加到本地仓库，使用 yum 命令安装。

```bash
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
yum -y install ob-deploy oceanbase obclient
```

## 部署资源要求

OceanBase 数据库运行的时候会对主机资源有一些要求，主要是 CPU、内存和磁盘空间。安装 OceanBase 的目的不一样，对资源的要求也不一样。

| 目的  | CPU(核数） | 可用内存 | 磁盘 | 备注 |
|-----|---------|------|----|----|
| 功能学习 | 2  | 10G | 10G | 不初始化数据。 |
| 性能测试 | 24 | 128G | SSD 500G以上 | 数据盘和日志盘要分开。|
| 生产环境 | 32 | 256G | SSD 2T以上 | 数据盘和日志盘要分开。日志盘大小是内存的3-4倍。数据量增长的时候，数据盘大小也要增加。 |

注意：上面性能测试环境和生产环境的资源要求是建议。在社区版后续版本，会进一步降低对内存的要求。

OceanBase 对操作系统也有一些要求，目前支持下面这些系统：

+ Redhat / CentOS 7.x/8.x
+ SUSE / OpenSUSE  15.x
+ Anlios 7.x/8.x
+ Debian 9.x
+ Ubuntu 20.x

## 部署过程简介

自动化部署过程简单来说分为几步：

+ 初始化 OceanBase 各个节点环境。包括参数配置、文件系统目录设置等。
+ 初始化中控机到OceanBase 各个节点的 SSH 免密登录。
+ 准备 OBD 自动化部署配置文件。
+ 使用 OBD 部署集群节点目录。
+ 使用 OBD 启动并初始化集群。

后面还会详细介绍单节点和三节点集群的部署方法，以及手动部署的一些步骤。
