暂无图片
暂无图片
3
暂无图片
暂无图片
1
暂无图片

openGauss3.0源码编译安装

原创 何放 2022-05-23
3272

最近学习一项新技能opengauss的编译安装,使用安装包安装opengauss之后,xml类型不具备写入,因为默认xml特性未开启,需在./configure编译安装时指定参数 --with-libxml,下面将介绍到opengauss3.0的手动编译安装。

openGauss=# CREATE TABLE xmltest ( openGauss(# id int, openGauss(# data xml openGauss(# ); CREATE TABLE openGauss=# INSERT INTO xmltest VALUES (1, '<value>one</value>'); ERROR: unsupported XML feature LINE 1: INSERT INTO xmltest VALUES (1, '<value>one</value>'); ^
复制

安装环境

  1. 虚拟机VM15 操作系统centos7.6 x86架构
  2. 硬件配置 CPU:1C 内存:2G 磁盘: 60G
  3. 依赖要求 libaio-devel-0.3.109-13
    gcc-c+±4.8.5-44
    bison-3.0.4-2
    flex-2.5.37-6 bison-3.0.4-2
    ncurses-devel-5.9-14.20130511
    glibc-devel-2.17-325
    patch-2.7.1-12
    redhat-lsb-core-4.1-27
    readline-devel-6.2-11
    perl-5.16.3-299
依赖安装
yum install unzip gcc-c++ readline readline-devel libaio-devel flex bison ncurses-devel glibc-devel patch expect
复制

源码包及开源第三方软件

下载地址:
opengauss-sever:https://gitee.com/opengauss/openGauss-server/repository/archive/v3.0.0?format=tar.gz
##由于开源软件编译构建耗时长,特地使用openGauss-third_party编译构建出了一份binarylibs并压缩上传到了网上,用户可以直接下载获取。
已编译好的开源第三方软件:https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/openGauss-third_party_binarylibs.tar.gz
tar -zxvf opengauss-openGauss-server-v3.0.0.tar.gz
tar -zxvf openGauss-third_party_binarylibs.tar.gz
##重命名开源第三方软件解压目录为binarylibs
mv openGauss-third_party_binarylibs binarylibs

手动编译

1. 检查系统版本

进入到软件代码目录,执行脚本获取自己系统的版本。

cd openGauss-server-3.0.0
sh src/get_PlatForm_str.sh
复制

说明:

  • 显示的结果表示openGauss当前支持的操作系统,openGauss支持的操作系统为centos7.6_x86_64、openeuler_aarch64、openeuler_x86_64。
  • 如果结果显示为Failed或者其他版本,表示openGauss不支持当前操作系统。

2. 配置环境变量

环境变量配置,根据自己的代码下载位置补充两处“____”,将获取到的结果替换下面的***。

export CODE_BASE=________     # openGauss-server-3.0.0的路径
export BINARYLIBS=________    # binarylibs的路径
export GAUSSHOME=$CODE_BASE/dest/
export GCC_PATH=$BINARYLIBS/buildtools/***/gcc7.3/ # 是脚本获取出来的系统版本,此处为centos7.6_x86_64
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版进行configure

cd openGauss-server
##执行编译debug版本,加上--with-libxml
./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --with-libxml --enable-debug --enable-cassert --enable-thread-safety --without-readline --without-zlib
##编译安装
make -sj
##显示:All of openGauss successfully made. Ready to install.则此步成功

make install -sj
##显示:openGauss installation complete.编译成功
复制

说明:

  • -s参数是silent模式,有些编译信息不会打印出来。
  • 如果使用-j参数,make执行的时候会一直增加并发数,有时会遇到“cannot allicate memory”的错。一般-j参数后可指定数字为 cpu数 X 2。如编译环境是4 CPU,可使用make -j8的参数进行编译。

编译验证

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

1. 创建omm用户赋予环境变量

##root用户执行
useradd omm -g dbgrp
passwd omm
chown -R omm: /root/openGauss-server-3.0.0
su - omm
vi ~/.bashrc
export GAUSSHOME=/root/openGauss-server-3.0.0/dest/ ##编译结果的路径,可根据实际情况修改
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH

source ~/.bashrc
复制

2. 数据库初始化和启动

gs_initdb --pgdata=/home/omm/data --nodename=primary --pwpasswd=opgs@1234 --encoding=UTF-8 --locale=en_US.UTF-8
gs_ctl start -D /home/omm/data -Z single_node -l /home/omm/log/opengauss.log
##查看进程
ps -ef|grep gaussdb
##检查数据库状态
gs_ctl query -D /home/omm/data
复制

3. XML类型的支持情况

gsql -d postgres -r CREATE TABLE xmltest ( id int, data xml ); INSERT INTO xmltest VALUES (1, '<value>one</value>'); INSERT INTO xmltest VALUES (2, '<value>two</value>'); openGauss=# SELECT * FROM xmltest; id | data ----+-------------------- 1 | <value>one</value> 2 | <value>two</value> (2 rows) openGauss=# SELECT xmlconcat('<foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>'); xmlconcat -------------- <foo/><bar/> (1 row) openGauss=# SELECT xmlconcat('<?xml version="1.1"?><foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>'); xmlconcat ----------------------------------- <?xml version="1.1"?><foo/><bar/> (1 row)
复制

参考文章:
https://docs.mogdb.io/zh/mogdb/v3.0/17-xml-type
https://opengauss.org/zh/docs/3.0.0/docs/Compilationguide/版本编译.html

最后修改时间:2022-05-23 17:05:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

墨天轮福利君
暂无图片
2年前
评论
暂无图片 0
您好,您的文章已入选墨力原创作者计划合格奖,10墨值奖励已经到账请查收! ❤️我们还会实时派发您的流量收益。
2年前
暂无图片 点赞
评论