openGauss环境搭建 | 新手指南

2024年 3月 6日 57.3k 0

一、搭建准备

openGauss开发需要使用linux环境,先下载远程连接工具Xshell/MobaXterm 

1. 使用工具连接远程linux服务器,使用root账号远程登录,创建个人账号。

    useradd -d home/xxx -m xxx

    2. 设置密码

      passwd xxx

      3. 切换到个人账号,以后连接也使用个人账号进行登录。

        su - xxx

        二、编译openGauss-server

        编译openGauss-server需要用到openGauss-server源码和其依赖的第三方软件仓库openGauss-third_party.

        在根目录/data/下创建一个自己名字命名的文件夹作为工作目录,进入文件夹,拉取openGauss-server最新源码,建议先fork到自己的gitee仓库,再进行代码拉取,方便后续社区开发代码合入流程,修改代码,提交PR.

          mkdir xxx
          cd xxx
          git clone https://gitee.com/opengauss/openGauss-server.git

          openGauss的编译,需要提前把所依赖的开源第三方软件进行编译和构建。

          第三方软件工具两种获取方式

          1. 源码编译

          这些开源的第三方软件存放在仓库openGauss-third_party中,用户拉取代码后可进行编译,通常只用编译一次。若开源软件版本更新,则需要重新构建。

            git clone https://gitee.com/opengauss/openGauss-third_party.git
            cd openGauss-third_party/build
            sh build_all.sh

             2.直接使用编译构建好的文件

            由于开源软件编译构建耗时较长,社区提供了三个平台编译好的二进制文件给用户下载

            openEuler_arm: https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_arm.tar.gz

            openEuler_x86: https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_x86_64.tar.gz

            Centos_x86: https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz

            我们可以下载openEuler_arm版本的压缩包,使用Xftp工具传输到工作目录,再进行解压,重命名为固定的命名

              tar -zxvf openGauss-third_party_binarylibs_openEuler_arm.tar.gz
              mv openGauss-third_party_binarylibs_openEuler_arm binarylibs

              源码准备好之后就可以进行代码编译了

              两种编译方式

              1. 一键脚本编译

              使用内置脚本进行编译

                cd openGauss-server
                sh build.sh -m release -3rd data/meicheng/opengauss_src/install/binarylibs  
                #debug版将release换成debug

                执行过程会持续5-10分钟无反应,自动输出log,最终显示如下内容,表示编译成功

                make compile successfully!

                导入环境变量,用于后续进行初始化和启动数据库

                  export CODE_BASE=_________    #openGauss-server的路径
                  export GAUSSHOME=$CODE_BASE/mppdb_temp_install/
                  export LD_LIBRARY_PATH=$GAUSSSHOME/lib:$LD_LIBRARY_PATH
                  export PATH=$GAUSSHOME/bin:$PATH

                  2. 手动编译

                  cd openGauss-server

                  配置的环境变量与一键脚本编译的环境变量略有不同

                    export CODE_BASE=_________    #openGauss-server的路径
                    export BINARYLIBS=_________    #binarylibs的路径
                    export GAUSSHOME=$CODE_BASE/dest/
                    export GCC_PATH=$BINARYLIBS/buildtools/gcc7.3/
                    export CC=$GCC_PATH/gcc/bin/gcc
                    export CXX=$GCC_PATH/gcc/bin/g++
                    export LD_LIBRARY_PATH=$GAUSSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib/:$GCC_PATH/mpc/lib/:$GCC_PATH/mpfr/lib/:$GCC_PATH/gmp/lib/:$LD_LIBRARY_PATH
                    export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH

                    选择版本进行configure

                    可选择三种目标版本

                    release:代表生成release版本的二进制程序,该版本编译时,配置GCC高级别优化选项,去除内核调试代码,通常用于生产环境或性能测试环境。

                    debug:代表生成debug版本的二进制程序,该版本编译时,增加内核代码调试功能,通常用于开发自测环境。

                    memcheck:代表生成memcheck版本的二进制程序,该版本编译时,实质上是在debug版本的基础上增加了ASAN功能,此版本通常用于定位内存问题。

                    debug版:

                      ./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0'
                      --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug
                      --enable-cassert --enable-thread-safety
                      --with-readline --without-zlib

                      release版:

                        ./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O2
                        -g3' --prefix=$GAUSSHOME --3rd=$BINARYLIBS
                        --enable-cassert --enable-thread-safety
                        --with-readline --without-zlib

                        memcheck版:

                          ./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0'
                          --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug
                          --enable-cassert --enable-thread-safety --with-readline
                          --without-zlib --enable-memory-check

                          开始编译

                            make -sj4
                            make install -sj4

                            -s表示silent模式,有些编译信息不会打印出来

                            如果使用-j参数,make执行的时候会一直增加并发数,有时会遇到‘cannot allicate memory’的错。一般-j参数后可指定数字为cpu数X2。如编译环境是4CPU,可使用make -j8的参数进行编译

                            显示如下内容表示编译成功

                              openGauss InstallationGuide complete

                              三、openGauss-OM编译

                              openGauss-OM是运维管理模块(OperationManager),提供openGauss日常维护、配置管理的管理接口和工具。

                              源码编译完openGauss-server代码仓之后,并没有gs_om。需要单独编译openGauss-OM,并将编译好的openGauss-xxx-om.tar.gz的包拷贝到openGauss-server安装包所在的目录,再按照企业版的方式进行安装。

                              操作步骤

                              1. 下载代码仓

                                git clone https://gitee.com/opengauss/openGauss-OM.git

                                2. 执行编译

                                  ocd openGauss-OM
                                  chmod +x build.sh
                                  export BINARYLIBS=/data/XXX/binarylibs      #这里写你的第三方软件包的文件目录
                                  ./build.sh -3rd $BINARYLIBS

                                  显示以下内容,表示gauss-OM编译成功

                                    ROOT_DIR:XXXXX
                                    Everything is ready.
                                    success!

                                    进入package目录,将编译好的openGauss-xxx-om.tar.gz的包拷贝到openGauss-server安装包所在的目录,再按照企业版的方式进行安装。

                                    四、产品安装包编译

                                    本步骤是制作openGauss软件安装包,安装包的编译打包过程也集成在build.sh中。

                                    操作步骤

                                    1. 进入openGauss-server目录

                                    2. 执行命令编译出安装包,

                                      osh build.sh -m [debug | release | memcheck] -3rd [binarylibs path] -pkg

                                      3. 显示如下内容表示安装包编译完成

                                        make server(all) package success!

                                        4. 打包好的安装包存放在./output目录下

                                        五、编译后验证

                                        编译结束后,可按以下方式对编译后的openGauss进行验证

                                        1. 建立数据目录和日志目录

                                          mkdir ~/data
                                          mkdir ~/log

                                          2. 数据库初始化

                                            gs_initdb -D ~/data --nodename=db1

                                            3. 启动数据库服务器

                                              gs_ctl start -D ~/data -Z single_node -l ~/log/opengauss.log

                                              4. 进入数据库服务器

                                              数据库安装完成后默认生成名称为postgres的数据库,可以连接到此数据库进行测试。

                                                gsql -d postgres

                                                连接成功后,会显示类似如下信息

                                                  gsql(一些版本时间信息)
                                                  Non-SSL connection (SSL connection is recommended when requiring high-security)
                                                  Type "help" for help
                                                  openGauss=#

                                                  5. 使用openGauss

                                                  5.1 创建数据库用户

                                                    CREATE USER XXX WITH PASSWORD "xxxxxxx";

                                                    5.2 设置用户为系统管理员

                                                      GRANT ALL PRIVILEGES TO xxx;

                                                      5.3 创建数据库

                                                        CREATE DATABASE db_tpcc OWNER XXX;

                                                        5.4 db_tpcc数据库创建完以后,就可以按如下方法退出postgres数据库,使用新用户连接到db_tpcc数据库执行创建表等操作。

                                                          q      #退出当前数据库
                                                          gsql -d db_tpcc -U XXX    #连接数据库db_tpcc

                                                          5.5 创建SCHEMA

                                                            CREATE SCHEMA test AUTHORIZATION XXX;

                                                            5.6 创建表

                                                              CREATE TABLE mytable (name varchar(16), age int);

                                                              5.7 向表中插入数据

                                                                INSERT INTO mytable values("XXX", 18);

                                                                5.8 查看表中数据

                                                                  SELECT * FROM mytable;

                                                                  ◆ 往期推荐◆

                                                                  解析 openGauss 的 AutoVacuum 机制及优化策略

                                                                  相关文章

                                                                  Oracle如何使用授予和撤销权限的语法和示例
                                                                  Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
                                                                  下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
                                                                  社区版oceanbase安装
                                                                  Oracle 导出CSV工具-sqluldr2
                                                                  ETL数据集成丨快速将MySQL数据迁移至Doris数据库

                                                                  发布评论