1 概述
浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。浪潮信息云峦服务器操作系统KeyarchOS_KOS服务器操作系统-浪潮信息
openGauss是一款提供面向多核的极致性能、全链路的业务和数据安全,基于AI的调优和高效运维的能力,全面友好开放,携手伙伴共同打造全球领先的企业级开源关系型数据库,采用木兰宽松许可证v2发行。https://opengauss.org/
2 安装准备
2.1 操作系统环境
操作系统版本:KOS 5.8 (4.19.91-26.6.8.kos5.x86_64)
测试架构:x86_64,16核128G虚拟机
2.2 软件版本
GCC 8.5.0
openGauss 3.0.5
2.3 安装说明
openGauss官方提供的二进制包基于openssl 1.0,而KOS中安装版本为openssl 1.1.1,无法直接运行,因此需要从源码开始编译openGauss数据库。编译openGauss需要openGauss-server和openGauss-third_party两个仓库的源码,源码均托管在gitee上。本次兼容性测试将基于3.0版本进行。
3 编译openGauss第三方库
3.1 获取openGauss第三方库
为了方便使用,创建/gauss目录并进入该目录操作:
mkdir /gauss
cd /gauss
从gitee仓库中获取3.0.3的源码,需要先安装git,并且启用git-lfs:
dnf install git git-lfs
git lfs install
git clone –b 3.0.3 https://gitee.com/opengauss/openGauss-third_party.git
3.2 配置编译环境
使用以下命令安装编译依赖的软件包:
dnf install libaio-devel ncurses-devel pam-devel libffi-devel python3-devel libtool libtool-ltdl-devel python2-devel openssl-devel bison flex patch system-lsb-core bzip2 cmake gcc-c++
# 提供python命令支持
ln –s /usr/bin/python3.6 /usr/bin/python
修改环境变量:
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export LD_LIBRARY_PATH=/usr/lib64:/usr/lib:/usr/local/lib64:/usr/local/lib:$LD_LIBRARY_PATH
openGauss编译脚本中多次包含操作系统判断,因此需要创建/etc/euleros-release文件,文件内容为openEuler。
3.3 编译第三方库
进入到openGauss-third_party/build 目录下,执行sh build_all.sh,编译全量的三方组件。
build_all.sh中先编译了openssl,然后编译buildtools, platform, dependency 和 component。如果编译中报错可以进入对应文件夹中按顺序分别编译。部分依赖包可能存在版本差异编译失败,可以切换到不同小版本的包重新编译。
编译完成后,编译结果在openGauss-third_party/output目录下。
为后续编译openGauss-server顺利,需要在buildtools中添加编译使用的gcc相关文件,这里使用软连接实现:
mkdir /gauss/openGauss-third_party/output/buildtools/gcc8.5
ln -s /usr /gauss/openGauss-third_party/output/buildtools/gcc8.5/gcc
4 编译openGauss-server
4.1 获取源码并配置编译环境
从gitee上获取openGauss-server 版本3.0.0的源码:
git clone -b 3.0.0 https://gitee.com/opengauss/openGauss-server.git
为了方便后续使用,修改/etc/bashrc文件,在文件最后追加环境变量:
export CODE_BASE=/gauss/openGauss-server
export BINARYLIBS=/gauss/openGauss-third_party/output/
export GAUSSHOME=$CODE_BASE/dest/
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export LD_LIBRARY_PATH=$GAUSSHOME/lib:/usr/lib64:/usr/lib:/usr/local/lib64:/usr/local/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH
4.2 使用命令编译代码
官方提供了debug、release、memcheck三个目标版本,这里选择生成release版。使用configure生成编译项目,有额外需求可以参考官方文档。
./configure --gcc-version=8.5.0 CC=g++ CFLAGS="-O2 -g3" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --with-readline --without-zlib
执行make -sj 开始编译,编译完成则如下所示:
执行make install -sj 开始编译安装,完成则如下所示:
编译后的软件安装路径为:/gauss/openGauss-server/dest
编译后的二进制文件路径为:/gauss/openGauss-server/dest/bin
5 使用openGauss
5.1 安装openGauss
openGauss不允许使用root账户管理数据库,因此需要切换到普通用户进行使用。此处使用用户g进行测试,注意调整openGauss-server的权限以供普通用户访问。
su g
使用脚本启动openGauss:
cd /gauss/openGauss-server/simpleInstall
sh install.sh –w YourPasswd22
可以使用ps或gs_ctl查看openGauss的状态:
5.2 使用gsql连接数据库
openGauss提供了命令行工具gsql连接数据库。openGauss安装完成后会默认生成postgres数据库,使用gsql进行本地连接:
gsql –d postgres
使用 \copyright 可以查看openGauss的版本和版权信息, \? 可以查看gsql命令帮助:
使用 \h 可以获取openGauss的sql命令的帮助语法:
5.3 数据库操作
使用 \l 可以查询数据库中的所有数据库:
使用 \c school 切换到school库,使用 \dt 查看数据库信息:
使用sql语句筛选数据:
使用 \q 退出数据库。