Centos7.6下的OpenGauss2.1.0编译安装

Posted tamchikit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7.6下的OpenGauss2.1.0编译安装相关的知识,希望对你有一定的参考价值。

一、安装环境

1、安装流程

(1)自行编译好 gcccmake,gcc推荐使用 7.3.0 版本,cmake推荐 >=3.16

(2)下载三方库源码,修改脚本增加新的平台信息。

社区针对 centos_7.6_x86_64openEuler20.03 LTS_armopenEuler20.03 LTS_ x86_64 三种架构及操作系统已经提供了编译好的二进制,对于这三种系统架构,可以直接使用社区提供的编译好的文件openGauss-third_party_binarylibs.tar.gz

2、安装依赖

yum install unzip gcc-c++ readline readline-devel
yum install libaio-devel flex bison  ncurses-devel  glibc-devel patch lsb_release

其余依赖,包括python3的编译安装与直接使用安装包安装一致。

3、创建用户和用户组

su
groupadd dbgrp -g 2000
useradd omm -g 2000 -u 2000
passwd omm

4、创建安装目录、数据目录并赋予权限

//创建安装目录跟数据目录
mkdir -p {/opt/og,/opt/ogdata}

//赋予omm用户权限
chown -R omm: {/opt/og,/opt/ogdata}
chmod -R 755 /opt/og
chmod -R 700 /opt/ogdata

5、下载源码以及第三方依赖包

第三方依赖包openGauss-third_party_binarylibs.tar.gz

openGauss源码

下载文件放到/home/omm目录下

//赋予权限
chown omm: openGauss-third_party_binarylibs.tar.gz
chmod 755 openGauss-third_party_binarylibs.tar.gz

chown omm: openGauss-server-master.zip
chmod 755 openGauss-server-master.zip

6、编译准备

//使用omm用户
su - omm

//解压
unzip openGauss-server-master.zip
tar -zxvf openGauss-third_party_binarylibs.tar.gz

//重命名
mv openGauss-third_party_binarylibs binarylibs
mv openGauss-server-master openGauss-server

//配置环境变量
export CODE_BASE=/home/omm/openGauss-server
export BINARYLIBS=/home/omm/binarylibs
export GAUSSHOME=/opt/og
export GCC_PATH=$BINARYLIBS/buildtools/centos7.6_x86_64/gcc7.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

注意:

(1)GCC_PATH中需根据相应平台修改

(2)配置环境变量必须在omm用户下执行,由于是在命令行配置的临时环境变量,重启之后会失效。

(配置永久环境变量)

//su - omm 

vim ~/.bash_profile 

//在bash_profile文件末尾添加并保存以下命令:

export CODE_BASE=/home/omm/openGauss-server
export BINARYLIBS=/home/omm/binarylibs
export GAUSSHOME=/opt/og
export GCC_PATH=$BINARYLIBS/buildtools/centos7.6_x86_64/gcc7.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

//立即生效
source ~/.bash_profile

7、编译安装

cd openGauss-server/

//第一次编译报错可以忽略,如果重新编译需要clean
make clean


//编译release版本
$ ./configure  --prefix=/opt/og \\
--3rd=/home/omm/binarylibs \\
--gcc-version=7.3.0 \\
--without-readline \\
--without-zlib \\
--enable-thread-safety \\
CC=g++ CFLAGS="-O2 -g3"

make

make install

//openGauss installation complete.看到提示则表示安装完成

//查看版本
/opt/og/bin/gsql --version

ps:这里装好的版本为2021年11月06日github上的最新源码版本,并非2.1.0,但2.1.0版本的编译安装大同小异。

make的过程中可能报错,缺失某些头文件,原因可能为文件导入虚拟机时不完整或者环境依赖库未完全拷贝。

 8、数据库初始化

//数据库初始化,用户密码必须包含三种字符类型且长度大于8
gs_initdb --nodename=master_5432 \\
--pgdata=/opt/ogdata \\
--encoding=UTF-8 \\
--locale=en_US.UTF-8 \\
--dbcompatibility='A' \\
--username=omm \\
--pwpasswd=Mypwd123

returns:

[omm@localhost openGauss-server]$ gs_initdb --nodename=master_5432 \\
> --pgdata=/opt/ogdata \\
> --encoding=UTF-8 \\
> --locale=en_US.UTF-8 \\
> --dbcompatibility='A' \\
> --username=omm \\
> --pwpasswd=Mypwd123
The files belonging to this database system will be owned by user "omm".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

fixing permissions on existing directory /opt/ogdata ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
Begin init undo subsystem meta.
[INIT UNDO] Init undo subsystem meta successfully.
creating template1 database in /opt/ogdata/base/1 ... The core dump path is an invalid directory
2021-11-06 00:07:25.762 [unknown] [unknown] localhost 139722719373760 0[0:0#0]  [BACKEND] WARNING:  macAddr is 12/689175426, sysidentifier is 796947/4219651868, randomNum is 803850012
ok
initializing pg_authid ... ok
setting password ... ok
initializing dependencies ... ok
loading PL/pgSQL server-side language ... ok
creating system views ... ok
creating performance views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
initialize global configure for bucketmap length ... ok
creating information schema ... ok
loading foreign-data wrapper for distfs access ... ok
loading foreign-data wrapper for hdfs access ... ok
loading foreign-data wrapper for log access ... ok
loading hstore extension ... ok
loading security plugin ... ok
update system tables ... ok
creating snapshots catalog ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
freezing database template0 ... ok
freezing database template1 ... ok
freezing database postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run gs_initdb.

Success. You can now start the database server of single node using:

    gaussdb -D /opt/ogdata --single_node
or
    gs_ctl start -D /opt/ogdata -Z single_node -l logfile

9、主数据库配置

 以上为数据库一些基本配置的默认值,表示监听所有ip,监听端口为5432

若要使用备用数据库需要在/opt/ogdata/postgresql.conf增加以下配置:

replconninfo1 = 'localhost=MasterIPAddresses \\
localport=5439 \\
localservice=5432 \\
remotehost=StandbyIPAddresses \\
remoteport=5439 \\
remoteservice=5432'

注意:其中MasterIPAddresses和StandbyIPAdresses需要用主数据库和备数据库对应ip替换。

replconninfo1的localport会被置为监听的端口号+1。此时,假如我把listen_addresses置为*,内核会判断此时需要打开poolerport,而poolerport在系统内部硬性规定为监听端口号+1(方便内部运维进行管理),与localport产生端口冲突导致数据库无法正常启动,请修改om安装主备环境时默认replconninfo的localport,预留一定的端口号给系统,避免产生端口号的冲突。

在/opt/ogdata/pg_hba.conf下 增加

host    all     all        StandbyIP/32            trust

10、使用

启动服务

/opt/og/bin/gs_ctl start -D /opt/ogdata

 使用omm用户登陆postgres数据库

/opt/og/bin/gsql -p 5432 -Uomm postgres

关于备用数据库的双机复制以及使用可以参考抢鲜体验2:openGauss从源码到主备 - 墨天轮

以上是关于Centos7.6下的OpenGauss2.1.0编译安装的主要内容,如果未能解决你的问题,请参考以下文章

Centos7.6安装过程

虚拟机virtualbox 安装centos7.6.1810

如何在openGauss 2.1.0中使用Job?

centos7安装client软件包报错误无须任何处理

CentOS7.6安装zookeeper

CentOS7.6 安装配置