飞腾平台编译安装openGauss数据库

10dedd262df93be8810c6573306bfc11.gif

1. 环境检查

1.1 检查OS版本


openGauss支持的操作系统:

CentOS 7.6(x86_64 架构)
openEuler-20.03-LTS(aarch64 架构)
openEuler-20.03-LTS(x86_64架构)
Kylin-V10(aarch64 架构)

Kylin-V10(x86_64 架构

Asianux 7.6(x86_64架构)
FusionOS 22 (aarch64 架构)
FusionOS 22 (x86 架构)

cat /etc/os-release d41a5692fac919e6dc56115d51ccaee3.jpeg

操作系统为openEuler-20.03-LTS(aarch64 架构)

1.2 检查cpu型号

lscpu | grep "Vendor ID" f8db56273ea1136ac0000228916bc45c.jpeg

安装平台Vendor ID:0x70为飞腾CPU

1.3. 禁用防火墙和selinux

禁用防火墙

systemctl status firewalld systemctl stop firewalld systemctl disable firewalld systemctl is-enabled firewalld

禁用SELINUX

/usr/sbin/sestatus -v

如果selinux为enable状态,则修改/etc/selinux/config文件:
SELINUX=disabled
或使用下面命令:

sed -i '/^SELINUX=.*/ s//SELINUX=disabled/' /etc/selinux/config

并重启服务器


1.4 配置yum源并安装依赖包


上传操作系统iso到/tmp目录
配置本地yum源

mkdir /mnt/iso mount -o loop /tmp/openeuler20.03LTS.iso /mnt/iso cd /etc/yum.repos.d vi media.repo [InstallMedia] name=openeuler20.03LTS gpgcheck=0 enabled=1 baseurl=file:///mnt/iso yum clean all yum makecache yum list yum -y install libaio-devel flex bison ncurses-devel glibc-devel patch openeuler-lsb readline-devel unzip dos2unix vim git wget lrzsz net-tools bzip2 gcc tree zlib*

1.5 安装Python3

建议安装Python3.6+

yum install python3 python3-pip

软链接python命令为python3.7

ln -s /usr/bin/python3.7 /usr/bin/python python -V 3ce7018474b58c997b4b2df8deaa32b7.jpeg

1.6 设置字符集参数

vi /etc/profile export LANG=en_US.UTF-8

1.7 设置时区和时间

[root@localhost ~] timedatectl set-timezone Asia/Shanghai [root@localhost ~] timedatectl status

2 下载软件包

cd /soft2/ git clone https://gitee.com/opengauss/openGauss-server.git openGauss-server -b 5.0.0 wget -c https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_arm.tar.gz

3. 脚本编译安装

3.1 openGauss-server编译

tar -xvf openGauss-third_party_binarylibs_openEuler_arm.tar.gz mv openGauss-third_party_binarylibs_openEuler_arm binarylibs cd openGauss-server/ sh build.sh -m debug -3rd /soft/binarylibs -pkg

   说明


-m [debug | release | memcheck]表示可选择三种目标版本:
release:代表生成release版本的二进制程序,该版本编译时,配置GCC高级别优化选项,去除内核调试代码,通常用于生产环境或性能测试环境。
debug:代表生成debug版本的二进制程序,该版本编译时,增加内核代码调试功能,通常用于开发自测环境。
memcheck:代表生成memcheck版本的二进制程序,该版本编译时,在debug版本基础上新增ASAN功能,通常用于定位内存问题。

显示如下内容,表示编译成功。

686f6dd56c08fff85aa0702ab2439034.jpeg

生成的安装包会存放在./output目录下。
编译和打包日志为:./build/script/makemppdb_pkg.log。


4. 编译后验证

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

4.1 创建用户

groupadd dbgrp useradd omm -g dbgrp passwd omm

4.2 使用omm用户,在~/.bashrc中增加以下环境变量

su - omm vi ~/.bashrc

使环境变量生效

source .bashrc

4.3 建立数据目录和日志目录

su - root chown -R omm:dbgrp /soft2/openGauss-server su - omm mkdir ~/data mkdir ~/log

4.4 数据库初始化

su - omm gs_initdb -D /home/omm/data --nodename=db1

初始化日志如下:

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 database encoding has accordingly been set to “UTF8”. The default text search configuration will be set to “english”. fixing permissions on existing directory /home/omm/data … ok creating subdirectories … in ordinary occasionok creating configuration files … ok selecting default max_connections … 100 selecting default shared_buffers … 1024MB Begin init undo subsystem meta. [INIT UNDO] Init undo subsystem meta successfully. creating template1 database in /home/omm/data/base/1 … The core dump path is an invalid directory 2023-07-20 16:10:19.012 [unknown] [unknown] localhost 281468516106256 0[0:0#0] [BACKEND] WARNING: macAddr is 64174/3171074048, sysidentifier is 4205755650/3221270315, randomNum is 96513835ok 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 log access … ok loading hstore extension … ok loading foreign-data wrapper for MOT access … 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 /home/omm/data --single_node or gs_ctl start -D /home/omm/data -Z single_node -l logfile

4.5 启动数据库

su - omm 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检查数据库状态,或使用 gsql -d postgres 进入gsql命令行查看数据库的相关信息。

dbc9bd9e09fea79401647fcf474bbfe6.jpeg 617e8fbc48362c98773c6334129cc252.jpeg

5. FAQ

编译安装过程中遇到的问题


FAQ 1:python版本需要3.6+以上版本,操作系统自带的python2.7不符合要求,需要安装python3.7,不然编译脚本错误。

解决方案:
yum安装Python3.7

yum install python3 python3-pip

软链接python命令为python3.7

ln -s /usr/bin/python3.7 /usr/bin/python

FAQ 2:一键式脚本编译build.sh使用 -m release编译release版本的二进制程序,初始化数据库报错。


解决方案:
目前还未解决,绕过方案使用-m debug编译debug版本的二进制程序.可以初始化数据库成功。

sh build.sh -m debug -3rd /soft/binarylibs -pkg

-m [debug | release | memcheck]表示可选择三种目标版本:

release:代表生成release版本的二进制程序,该版本编译时,配置GCC高级别优化选项,去除内核调试代码,通常用于生产环境或性能测试环境。

debug:代表生成debug版本的二进制程序,该版本编译时,增加内核代码调试功能,通常用于开发自测环境。


memcheck:代表生成memcheck版本的二进制程序,该版本编译时,在debug版本基础上新增ASAN功能,通常用于定位内存问题。


0a3c2cc2053a5b3073ba768e74d71658.jpeg

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

作业1-224——P1015 [NOIP1999 普及组] 回文数

题目描述 思路 首先此题为一道高精度题,然后本题按照题目意思模拟即可。我们可以开两个数组来记录高精度数字,这样方便我们处理。判断“该数组是否回文”、“c翻转存入d再做cd”可以写成两个单独的函数。然后主程序组织一下他们即可。注意好退出循环的…

String类的使用

String常用的构造方法 String的源码 内部是一个数组和hash值,涉及到常量池后续补充(常量池:存储相同的字符时只会存储一租) String的比较 equals()与:String里面为我们提供了许多方法,可直接调用&#xf…

electron 项目环境变量使用注意 public

问题 最近项目中,electron需要调用唤醒本地的另一个客户端程序,但是这个客户端程序报错了。sqlite3 报out of memory. apiSHGetFolderPathW 获取CSIDL_COMMON_DOCUMENTS报 1008,试图引用不存在的令牌。 排查 一看到这个,首先想…

苍穹外卖Day03——解决总结3中存在的问题

解决Day03中存在的问题 1. ResponseBody 与 RequestBody2. RequestParam 与 PathVariable3. 字段填充技术(注解、AOP、反射)3.1. AOP3.2. 注解3.3. 反射3.5 字段填充在项目应用 4. 阿里云云存储OOS 1. ResponseBody 与 RequestBody ResponseBody&…

varFormatter 数据格式化库 以性能优先的 快速的 内存对象格式转换

varFormatter 数据格式化 技术 开源技术栏 对象/变量格式化工具库,其支持将一个对象进行按照 JSON XML HTML 等格式进行转换,并获取到结果字符串! 目录 文章目录 varFormatter 数据格式化 技术目录介绍获取方式 使用实例格式化组件的基本使…

WIN10 无密码自动登录

1、家里重装了一下WIN10系统,第一次登陆居然用了微软网站账号,结果密码忘记了,后面只能用PIN码登陆系统。 2、需要登录微软的网站修改密码: Microsoft account | Sign In or Create Your Account Today – Microsoft 3、在运行…

【C语言】动态内存管理常用函数

前言 我们在之前学习的数组开辟的空间是固定不变的,有时候我们需要的空间⼤⼩在程序运⾏的时候才能知道~ c语言中的动态内存开辟,让程序员⾃⼰可以根据实际需求申请和释放相应空间,这使得空间的开辟变得灵活了许多。 欢迎关注个人主页&#x…

数据库原理及应用 第三章:关系数据模型

文章目录 三、关系数据模型3.1.1关系模型概述3.1.2候选键和外键3.2关系模型的完整性 三、关系数据模型 3.1.1关系模型概述 3.1.2候选键和外键 3.2关系模型的完整性

写作软件,批量写作文章的软件

在信息爆炸的时代,写作软件成为许多人提高效率、优化内容的利器。本文将介绍6款不同的写作软件,以及知名的147GPT生成工具和文心一言AI生成软件,它们不仅可以帮助用户快速生成原创文章,还支持全自动SEO优化,提升文章在…

wy的leetcode刷题记录_Day79

wy的leetcode刷题记录_Day79 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间:2024-3-1 前言 目录 wy的leetcode刷题记录_Day79声明前言2369. 检查数组是否存在有效划分题目介绍思路代码收获 61. 旋转链表题目介绍思路代码收获 82. 删除排…

【Vue】npm run build 打包报错:请在[.env.local]中填入key后方可使用...

报错如下 根目录添加 .env.local 文件 .env.local :本地运行下的配置文件 配置:VUE_GITHUB_USER_NAME 及 VUE_APP_SECRET_KEY 原因

【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑窗口Debug

目录 前言 行断点 条件断点 前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 行断点 当Matlab Function出现异常时,如果能确定大致的代码段,就可以在相应的行上设置一个断点(Breakpoint)&…

Oracle 11g升级19c 后部分查询功能很慢

*Oracle 11g升级19c 后部分查询功能很慢 今天生产突然有个查询非常慢,日志显示执行了50秒左右,但是从日志中拿出SQL在PLSQL执行,发现用时不到1秒,查看SQL,怀疑是下面几种原因导致 1、使用函数不当 UNIT.UNIT_CODE LIKE CONCAT(‘…

b站小土堆pytorch学习记录——P7-P8 Tensorboard的使用

文章目录 一、前置知识1.Tensorboard是什么2.SummaryWriter3.add_scalar()4.add_image() 二、代码1.一次函数2.蚂蚁和蜜蜂图片 一、前置知识 1.Tensorboard是什么 TensorBoard 是 TensorFlow 的可视化工具,它允许开发者可视化模型的图(graph&#xff0…

栈(顺序栈)实现Language C

###王道考研的学习领悟,个人喜好讲解清晰 何为栈? 定义:栈(stack)是只允许在一端进行插入或删除的线性表。 其重要术语:栈顶,栈底,空栈。 我们只需要把这个图看明白了,理解起来就…

electron+vue3全家桶+vite项目搭建【28】封装窗口工具类【2】窗口组,维护窗口关系

文章目录 引入实现效果思路主进程模块渲染进程模块测试效果 引入 demo项目地址 窗口工具类系列文章: 封装窗口工具类【1】雏形 我们思考一下窗口间的关系,窗口创建和销毁的一些动作,例如父子窗口,窗口组合等等,还有…

Prometheus(二):NodeExporter和Grafana的安装和使用

目录 1 Node Exporter安装1.1 简介1.2 安装1.3 Prometheus收集node_exporter数据 2 安装Grafana2.1 安装2.2 使用1、创建数据源2、选择模板3、模板导入 2.3 grafana创建用户1、创建用户2、验证 总结 1 Node Exporter安装 1.1 简介 node exporter是Prometheus的收集数据的组件…

GCN 翻译 - 1

ABSTRACT 我们提出了一种可扩展的在以图结构为基础的数据上的半监督学习,这种方法直接作用在图数据上,可以看做是卷积神经网络的变种。我们选择了图谱理论里面的一阶近似作为我们的卷积结构。我们的模型能够随着图的规模线性伸缩,并且隐藏层…

【计算机网络】五种IO模型与IO多路转接之select

文章目录 一、五种IO模型二、非阻塞IO1.fcntl2.实现函数SetNoBlock3.轮询方式读取标准输入 三、I/O多路转接之select1.初识select2.select函数原型3.socket就绪条件4.select的特点5.select缺点6.select使用案例--只读取数据的server服务器1.err.hpp2.log.hpp3.sock.hpp4.select…

面试题JS篇

目录 Js 基本数据类型有哪些Ajax 如何使用如何判断一个数据是 NaN?Js 中 null 与 undefined 区别闭包是什么?有什么特性?对页面会有什么影响JS中模块化的方法Js 中常见的内存泄漏什么是事件冒泡?如何阻止事件冒泡?事件…