Files
oceanbase/docs/docs-cn/4.installation-and-deployment/13.get-the-oceanbase-database-by-using-source-code.md
2022-02-10 14:51:49 +08:00

6.3 KiB

使用源码构建 OceanBase 数据库

通过源代码,您可以自行构建 OceanBase 数据库,并测试其最新特性。本文介绍如何通过源代码构建OceanBase 数据库。

前提条件

在构建 OceanBase 数据库之前,确保您的构建机器满足以下要求:

  • 操作系统:CentOS 7/8 (x86 架构)

  • 机器数量:1 台

  • 最低硬件规格:

  • 推荐硬件规格:

获取源代码

运行以下命令,克隆 OceanBase 数据库源代码到您的构建机器:

git clone git@${GIT_MIRROR_ADDRESS}/oceanbase/oceanbase

注意

克隆代码需要先安装配置 Git。详细信息,参考 Git 文档

获取构建依赖

您可以通过以下方式获取构建依赖:

  • 方案一: 使用 yum 源 获取依赖包(推荐)

构建过程中,您所依赖的大多数工具和库都可以通过公共yum源及 OceanBase 的官方 yum 源获取。如您的操作系统在我们的支持范围内,您可以通过我们预制的脚本,直接下载对应的软件包以节约您的构建时间

第一步、安装必要的工具

您需要提前准备好以下软件:

yum install wget rpm* cpio make glibc-devel glibc-headers

第二步、执行以下命令确认您的编译机可以访问OceanBase官方yum源

curl http://mirrors.aliyun.com/oceanbase/OceanBase.repo

第三步、执行初始化脚本,下载构建依赖

# 进入代码根目录
cd oceanbase

# 执行build.sh脚本并传入init参数
sh build.sh init
  • 方案二:自行编译依赖

    您也可以在 deps/3rd 目录下自行编译依赖。构建软件要求见下表:

    需软 推荐版本(最低版本) 软件用途 提供依赖 必选
    cmake 3.20.0 构建工具
    make 3.8.2 构建工具
    gcc 5.2.0 构建工具/依赖库
    llvm/clang/lld 11.0.1 (7.1.0) 构建工具
    binutils 2.30 构建工具
    flex 2.5.35 代码生成 仅开发
    python2 2.7(2.6) 代码生成 仅开发
    bison 2.4.1 代码生成 仅开发
    ccache 3.7.12 构建工具
    isa-l 2.22.0 依赖库
    libaio 0.3.112(0.3.109) 依赖库
    libcurl 7.29.0 依赖库
    libunwind 1.5.0 依赖库
    mariadb-connector-c 3.1.12 依赖库
    openssl-static 1.0.1e 依赖库
    glibc-devel/glibc-headers 2.17 依赖库
    oss-c-sdk 3.9.2 依赖库
    rpm* 4.14.1(4.11) 打包工具 仅打包

构建/打包 OceanBase 数据库

OceanBase 数据库使用 CMake 作为构建工具,您可以直接使用 CMake 命令自行创建目录进行构建,也可以使用 build.sh 脚本使用预制的构建选项进行构建:

  • DEBUG 构建

    # 在源码目录下执行debug版的预制构建命令
    sh build.sh debug
    
    # 进入生成的 debug 构建目录
    cd build_debug
    
    # 进行构建
    make -j{N} observer
    
    # 查看构建产物
    stat src/observer/observer
    
  • RELEASE 构建

    # 在源码目录下执行 release 版的预制构建命令
    sh build.sh release
    
    # 进入生成的 release 构建目录
    cd build_release
    
    # 进行构建
    make -j{N} observer
    
    # 查看构建产物
    stat src/observer/observer
    
  • 创建 RPM 包

    # 在源码目录下执行 rpm包 的预制构建命令
    sh build.sh rpm
    
    # 进入生成的 rpm 打包目录
    cd build_rpm
    
    # 构建 rpm 包依赖的文件
    make -j{N} rpm
    
    # 查看构建产物
    stat *rpm
    

说明

为加快构建速度,您可以使用 -j 参数并行构建。并行数量 N 建议为 min(CPU(Core)* 2,内存(GB) / 2)。

构建选项说明

构建参数说明见下表:

构建选项 默认值 软件用途
OB_USE_LLVM_LIBTOOLS ON 使用 llvm-ar/ld.lld 等作为库工具,关闭则使用 binutils。
OB_USE_CLANG ON 使用 clang 作为编译器,关闭则使用gcc。
OB_COMPRESS_DEBUG_SECTIONS OFF 压缩二进制中的 DEBUG SECTIONS。
OB_STATIC_LINK_LGPL_DEPS ON(打包时OFF) 静态链接LGPL协议的依赖
OB_ENABLE_PCH ON 启用预编译头
OB_ENALBE_UNITY ON 启用联合构建
OB_USE_CCACHE OFF 启用编译缓存
ENABLE_DEBUG_LOG OFF 开启调试日志。

后续操作

您在成功构建 OceanBase 数据库之后,可以使用 OBD 部署 OceanBase 数据库。详细信息参考 使用 OBD 部署 OceanBase 数据库