卸载openGauss的过程包括卸载openGauss和清理openGauss服务器环境。
执行卸载
openGauss提供了卸载脚本,帮助用户卸载openGauss。
操作步骤
1.以操作系统用户omm登录数据库主节点。
2.使用gs_uninstall卸载openGauss。
gs_uninstall --delete-data
或者在openGauss中每个节点执行本地卸载。
gs_uninstall --delete-data -L
一键式环境清理
在openGauss卸载完成后,如果不需要在环境上重新部署openGauss,可以运行脚本gs_postuninstall对openGauss服务器上环境信息做清理。openGauss环境清理是对环境准备脚本gs_preinstall所做设置的清理。 前提条件
- openGauss卸载执行成功。
- root用户互信可用。
- 只能使用root用户执行gs_postuninstall命令。
操作步骤
1.以root用户登录openGauss服务器。
2.查看互信是否建成功,可以互相执行ssh 主机名。输入exit退出。
plat1:~ # ssh plat2
Last login: Tue Jan 5 10:28:18 2016 from plat1
plat2:~ # exit
logout
Connection to plat2 closed.
plat1:~ #
3.进入script路径下。
cd /opt/software/openGauss/script
4.使用gs_postuninstall进行清理。若为环境变量分离的模式安装的集群需要source环境变量分离文件ENVFILE。
./gs_postuninstall -U omm -X /opt/software/openGauss/clusterconfig.xml --delete-user --delete-group
或者在openGauss中每个节点执行本地后置清理。
./gs_postuninstall -U omm -X /opt/software/openGauss/clusterconfig.xml --delete-user --delete-group -L
omm为运行openGauss的操作系统用户名,/opt/software/openGauss/clusterconfig.xml为openGauss配置文件路径。
若为环境变量分离的模式安装的集群需删除之前source的环境变量分离的env参数unset MPPDB_ENV_SEPARATE_PATH
5.删除各openGauss数据库节点root用户互信。
编译
概述
编译openGauss需要openGauss-server和binarylibs两个组件。
- openGauss-server:openGauss的主要代码。可以从开源社区获取。
- binarylibs:openGauss依赖的第三方开源软件,你可以直接编译openGauss-third_party代码获取,也可以从开源社区下载已经编译好的并上传的一个副本。
对于数据库、三方库、GCC的编译以及常见问题,参照博客openGauss数据库编译指导
在编译openGauss之前,请检查操作系统和软件依赖要求。
openGauss可以通过一键式shell工具build.sh进行编译,也可以通过命令进行编译。安装包由build.sh生成。
操作系统和软件依赖要求
openGauss支持以下操作系统:
- CentOS 7.6(x86架构)
- openEuler-20.03-LTS(aarch64架构)
适配其他系统,参照博客openGauss数据库编译指导
以下表格列举了编译openGauss的软件要求。
建议使用从列出的操作系统安装盘或安装源中获取的以下依赖软件的默认安装包进行安装。如果不存在以下软件,请参考推荐的软件版本。
软件依赖要求如下:
| 软件 | 推荐版本 |
|---|---|
| libaio-devel | 0.3.109-13 |
| flex | 2.5.31及以上版本 |
| bison | 2.7-4 |
| ncurses-devel | 5.9-13.20130511 |
| glibc-devel | 2.17-111 |
| patch | 2.7.1-10 |
| lsb_release | 4.1 |
| readline-devel | 7.0-13 |
下载openGauss
可以从开源社区下载openGauss-server和openGauss-third_party。
可以通过以下网站获取编译好的binarylibs。下载后请解压缩并重命名为binarylibs。
各版本和分支对应编译好的三方库二进制地址如下:
现在我们已经拥有完整的openGauss代码,把它存储在以下目录中(以sda为例)。
- /sda/openGauss-server
- /sda/binarylibs
- /sda/openGauss-third_party
编译第三方软件
在编译openGauss之前,需要先编译openGauss依赖的开源及第三方软件。这些开源及第三方软件存储在openGauss-third_party代码仓库中,通常只需要构建一次。如果开源软件有更新,需要重新构建软件。
用户也可以直接从binarylibs库中获取开源软件编译和构建的输出文件。
如果你想自己编译第三方软件,请到openGauss-third_party仓库查看详情。
执行完上述脚本后,最终编译和构建的结果保存在与openGauss-third_party同级的binarylibs目录下。在编译openGauss-server时会用到这些文件。
代码编译
使用build.sh编译代码
openGauss-server中的build.sh是编译过程中的重要脚本工具。该工具集成了软件安装编译和产品安装包编译功能,可快速进行代码编译和打包。。
参数说明请见以下表格。
| 选项 | 缺省值 | 参数 | 说明 | ||
|---|---|---|---|---|---|
| -h | 请勿使用此选项。 | - | 帮助菜单。 | ||
| -m | release | [debug | release | memcheck] | 选择目标版本。 |
| -3rd | ${Code directory}/binarylibs | [binarylibs path] | 指定binarylibs路径。该路径必须是绝对路径。 | ||
| -pkg | 请勿使用此选项。 | - | 将代码编译结果压缩至安装包。 | ||
| -nopt | 请勿使用此选项。 | - | 如果使用此功能,则对鲲鹏平台的相关CPU不进行优化。 |
注意
-m [debug | release | memcheck] 表示有三个目标版本可以选择:
- release:生成release版本的二进制程序。此版本编译时,通过配置GCC高级优化选项,去除内核调试代码。此选项通常在生成环境或性能测试环境中使用。
- debug:表示生成debug版本的二进制程序。此版本编译时,增加了内核代码调试功能,一般用于开发自测环境。
- memcheck:表示生成memcheck版本的二进制程序。此版本编译时,在debug版本的基础上增加了ASAN功能,用于定位内存问题。
-3rd [binarylibs path]为binarylibs的路径。默认设置为当前代码文件夹下存在binarylibs,因此如果binarylibs被移至openGauss-server中,或者在openGauss-server中创建了到binarylibs的软链接,则不需要指定此参数。但请注意,这样做的话,该文件很容易被git clean命令删除。
该脚本中的每个选项都有一个默认值。选项数量少,依赖简单。因此,该脚本易于使用。如果实际需要的参数值与默认值不同,请根据实际情况配置。
现在你已经知晓build.sh的用法,只需使用如下命令即可编译openGauss-server。
[user@linux openGauss-server]$ sh build.sh -m [debug | release | memcheck] -3rd [binarylibs path]
举例:
[user@linux openGauss-server]$ sh build.sh # 编译安装release版本的openGauss。需代码目录下有binarylibs或者其软链接,否则将会失败。
[user@linux openGauss-server]$ sh build.sh -m debug -3rd /sda/binarylibs # 编译安装debug版本的openGauss
编译后的软件安装路径为: /sda/openGauss-server/dest
编译后的二进制文件路径为: /sda/openGauss-server/dest/bin
编译日志: make_compile.log
使用命令编译代码
1.获取对应的开源三方库二进制文件:
从3.1.0分支和3.0.3 tag开始,对于不同的环境提供不同的开源三方库二进制文件。 目前社区提供Centos_x86_64, openEuler_aarch64, openEuler_x86_64三种平台的三方库二进制。 可以从对应地址下载 下载openGauss
2.配置环境变量
export CODE_BASE=________ # openGauss-server的路径
export BINARYLIBS=________ # binarylibs的路径
export GAUSSHOME=$CODE_BASE/dest/
export GCC_PATH=$BINARYLIBS/buildtools/________ # gcc的版本,根据三方包中对应的gcc版本进行填写即可,一般有gcc7.3或gcc10.3两种
export CC=$GCC_PATH/gcc/bin/gcc
export CXX=$GCC_PATH/gcc/bin/g++
export LD_LIBRARY_PATH=$GAUSSHOME/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
3.选择一个版本进行配置。
debug版本:
# gcc7.3.0版本
./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
# gcc10.3.1版本(一般用于openEuler + ARM架构)
./configure --gcc-version=10.3.1 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib
# gcc10.3.0版本
./configure --gcc-version=10.3.0 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib
release版本:
# gcc7.3.0版本
./configure --gcc-version=7.3.0 CC=g++ CFLAGS="-O2 -g3" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --with-readline --without-zlib
# gcc10.3.1版本(一般用于openEuler + ARM架构)
./configure --gcc-version=10.3.1 CC=g++ CFLAGS="-O2 -g3" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --with-readline --without-zlib
# gcc10.3.0版本
./configure --gcc-version=10.3.0 CC=g++ CFLAGS="-O2 -g3" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --with-readline --without-zlib
memcheck版本:
# gcc7.3.0版本
./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
# gcc10.3.1版本(一般用于openEuler + ARM架构)
./configure --gcc-version=10.3.1 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib --enable-memory-check
# gcc10.3.0版本
./configure --gcc-version=10.3.0 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib --enable-memory-check
注意
- [debug | release | memcheck] 表示有三个目标版本可用。
- 在ARM平台上,需要把 -D__USE_NUMA 添加至 CFLAGS 中。
- 在ARMv8.1及以上平台(如鲲鹏920),需要把 -D__ARM_LSE 添加至CFLAGS中。
- 如果binarylibs被移至openGauss-server中,或者在openGauss-server中创建了到binarylibs的软链接,则不需要指定 --3rd 参数。但请注意,这样做的话,该文件很容易被
git clean命令删除。
4.执行以下命令编译openGauss:
[user@linux openGauss-server]$ make -sj
[user@linux openGauss-server]$ make install -sj
5.显示如下信息,表示编译和安装成功。
openGauss installation complete.
- 编译后的软件安装路径为: $GAUSSHOME。
- 编译后的二进制文件存放路径为: $GAUSSHOME/bin。
编译安装包
请先阅读使用build.sh编译章节,了解build.sh的用法,以及如何使用该脚本编译openGauss。
现在,只需添加一个-pkg选项,就可以编译安装包。
[user@linux openGauss-server]$ sh build.sh -m [debug | release | memcheck] -3rd [binarylibs path] -pkg
举例:
sh build.sh -pkg # 生成release版本的openGauss安装包。需代码目录下有binarylibs或者其软链接,否则将会失败。
sh build.sh -m debug -3rd /sdc/binarylibs -pkg # 生成debug版本的openGauss安装包
- 生成的安装包存放目录: ./package。
- 编译日志: make_compile.log
- 安装包打包日志: ./package/make_package.log
快速入门
参考快速入门。
文档
更多安装指南、教程和API请参考用户文档。
社区
治理
查看openGauss是如何实现开放治理。
交流
- WeLink:开发者的交流平台。
- IRC频道:
#opengauss-meeting(仅用于会议纪要)。 - 邮件列表:opengauss.org/zh/communit…
贡献
欢迎大家来参与贡献。详情请参阅我们的社区贡献。
发行说明
请参见发行说明。