当前位置: 首页 > news >正文

飞腾平台编译安装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 b216c2a531035e22c8bd0808dfb0504f.jpeg

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

1.2 检查cpu型号

lscpu | grep "Vendor ID" 074f85d20502932d27a6012b54e4eae6.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 3cd128d8d41cb1fd896026c769b2b67e.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功能,通常用于定位内存问题。

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

7f0068d09b06f4cd640d787edb8a678c.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命令行查看数据库的相关信息。

ae22d60268a5292ec2a28dadd61ea234.jpeg 249b422b4b45f2dd91cab6bcc38d356e.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功能,通常用于定位内存问题。


25e56ddd10092c3cce209da62c2be813.jpeg

相关文章:

  • CentOS安装GUI图形界面
  • C# 经典:ref 和 out 的区别详解
  • 什么样才算好图——从生图模型质量度量方法看模型能力的发展
  • 【Javascript编程实操02】1、判断一个年份是闰年还是平年 2、找到三个数中最小的数
  • LeetCode 2621.睡眠函数
  • HTTP---------状态码
  • Huggingface初上手即ERNIE-gram句子相似性实战
  • pip包管理工具
  • 【大数据】-- dataworks 创建odps 的 hudi 外表
  • Mendeley 生成bibtex文件,sh脚本删减无用信息
  • 【解决】修改 UI界面渲染层级 的常见误区
  • 本地写的Bash脚本,Linux端运行报错:/bin/bash^M: bad interpreter: No such file or directory
  • 「Python系列」Python JSON数据解析
  • MacBook将iPad和iPhone备份到移动硬盘
  • 常见Prometheus exporter部署
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • DOM的那些事
  • Git学习与使用心得(1)—— 初始化
  • JS学习笔记——闭包
  • magento 货币换算
  • React Native移动开发实战-3-实现页面间的数据传递
  • scala基础语法(二)
  • TCP拥塞控制
  • windows-nginx-https-本地配置
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 笨办法学C 练习34:动态数组
  • 多线程事务回滚
  • 回流、重绘及其优化
  • 基于axios的vue插件,让http请求更简单
  • 浅谈web中前端模板引擎的使用
  • 数组大概知多少
  • 数组的操作
  • 提醒我喝水chrome插件开发指南
  • 我这样减少了26.5M Java内存!
  • 终端用户监控:真实用户监控还是模拟监控?
  • 数据库巡检项
  • ​​​​​​​​​​​​​​Γ函数
  • #android不同版本废弃api,新api。
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (二)学习JVM —— 垃圾回收机制
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (三分钟)速览传统边缘检测算子
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)linux文件内容查看
  • (一)appium-desktop定位元素原理
  • (一)UDP基本编程步骤
  • (原創) 未来三学期想要修的课 (日記)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • .gitignore
  • .net core 6 集成和使用 mongodb