openGauss环境搭建 | 新手指南

一、搭建准备

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是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。 

今天分享就到这里了,欢迎交流~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/432933.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【归并排序】AcWing. 505 / NOIP2013提高组《火柴排队》(c++)

【题目描述】 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。 现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: 其中 ai 表示第一列火柴中第 i 个火柴的高度&a…

gitlab的安装

1、下载rpm 安装包 (1)直接命令下载 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.6.10-ce.0.el7.x86_64.rpm(2)直接去服务器上下载包 Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source…

基于springboot+vue的政府管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Maya笔记 软选择

文章目录 1什么是软选择2注意3如何打开软选择3.1方法一3.2方法二 4调整软选择的范围5衰减模式5.1体积模式5.2表面模式 6衰减曲线 1什么是软选择 也就是渐变选择,从中心点向外影响力度越来越小 软选择针对的是点线面这些模型元素 下图中展示了对被软选择的区域移动…

禅道软件介绍:开源版(免费)和付费版的区别

禅道免费版是有两个版本其中一个是开源的,另一个是云禅道的5人以下免费版。禅道免费版和付费版的区别在于:禅道免费版虽然提供基础项目管理功能,但也只适合有技术能力自行维护和定制的团队。付费版(如企业版、旗舰版)则…

在nginx 服务器部署vue项目

以人人快速开发的开源项目:renren-fast-vue 为例 注:这里开始认为各位都会使用nginx 打包vue项目 npm run build 测试打包的项目是否可以运行 serve dist 可以正常运行 编译报错请移步到:renren-fast-vue1.2.2 项目编译报错: build g…

微信公众号公司主体变更怎么办?

公众号迁移的好处有哪些?迁移后原公众号还能用吗?1)获得更多权限功能如果公众号是个人主体,想进行认证,拥有更多权限功能。例如菜单栏跳转外部链接,相拥有留言功能,服务号认证获得开发权限等。就…

字节后端实习 一面凉经

心脏和字节永远都在跳动 深圳还有没有大厂招后端日常实习生啊,求捞~(boss小公司也不理我) 很纠结要不要干脆直接面暑期实习,又怕因为没有后端实习经历,面不到大厂实习。死锁了

java算法第十五天 | ● 层序遍历 ● 226.翻转二叉树 ● 101.对称二叉树

层序遍历 思路: 需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。 而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在…

智能AI数字人直播源码系统 帮你打造24不间断直播间 带完整的搭建教程

在数字化时代,直播已成为企业与个人展示自我、传递信息的重要渠道。然而,传统直播方式受限于时间、人力等因素,难以实现全天候的直播服务。下面,小编给大家介绍一款智能AI数字人直播源码系统,帮助用户轻松打造24小时不…

STM32的RCC原理(复位和时钟控制)

基本概念 STM32微控制器的RCC(Reset and Clock Control)模块是一个非常重要的部分,它负责管理微控制器的时钟系统和复位系统。以下是一些基本的原理和概念: 时钟源:STM32微控制器的时钟系统有多个时钟源,包…

【人工智能课程】计算机科学博士作业三

【人工智能课程】计算机科学博士作业三 来源:李宏毅2022课程第10课的作业 1 图片攻击概念 图片攻击是指故意对数字图像进行修改,以使机器学习模型产生错误的输出或者产生预期之外的结果。这种攻击是通过将微小的、通常对人类难以察觉的扰动应用于输入…

使用 Docker 部署 File Browser 文件管理系统

1)File Browser 介绍 官网:https://filebrowser.org/ GitHub:https://github.com/filebrowser/filebrowser 今天为大家分享一款开源的私有云盘项目:File Browser,简单实用、轻量级、跨平台,安装部署简单快…

Day 6.有名信号量(信号灯)、网络的相关概念和发端

有名信号量 1.创建: semget int semget(key_t key, int nsems, int semflg); 功能:创建一组信号量 参数:key:IPC对像的名字 nsems:信号量的数量 semflg:IPC_CREAT 返回值:成功返回信号量ID…

职场中的团队合作:如何建立高效的团队协作

在职场中,团队合作是至关重要的。一个高效的团队可以协同工作,共同实现目标,提高工作效率,创造出卓越的成果。然而,建立一个高效的团队并不容易,需要团队成员之间的良好沟通、相互信任和合作。本文将分享一…

Java核心技术卷1——运算符 每日笔记

3.5 运算符 运算符用于连接值。 3.5.1算数运算符 在Java中,使用算术运算符、-、*、/表示加、减、乘、除运算。 当参与/运算的两个操作数都是整数时,表示整数除法; 否则表示浮点数除法。 整数的求余(取模)操作用%表示…

Laravel Octane 和 Swoole 协程的使用分析二

又仔细研究了下 Octane 源码和 Swoole 的文档,关于前几天 Laravel Octane 和 Swoole 协程的使用分析中的猜想,得到进一步验证: Swoole 的 HTTP Server 启动后会创建一个 master 进程和一个 manager 进程;master 进程又会创建多个…

《UE5_C++多人TPS完整教程》学习笔记26 ——《P27 在线会话测试(Testing An Online Session)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P27 在线会话测试(Testing An Online Session)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主&#xff0…

山海鲸可视化软件实战:如何制作一个高效的商品销售数据看板

作为一名数据分析师,我经常需要通过各种工具将数据转化为有价值的信息,为公司的决策提供支持。最近,我使用山海鲸可视化软件制作了一个商品销售数据看板,山海鲸可视化是一款可以免费可视化编辑、免费私有化部署的产品。下面&#…

6_怎么看原理图之协议类接口之LCD笔记

首先想一想再前几篇文章讲的协议类的前提 1、双方约定好通信的协议 2、双方满足一定的时序要求 以上第二点又有一些要求: 1)弄清2440在这个通信协议中,能设置哪些时序的值,这些值的含义是什么——2440手册 2)弄清楚这…