基于CentOS7的openGauss5.x极简版安装过程分享

news2024/10/8 12:06:33

背景:国产信创适配大环境下,安装并体验一下,了解一些数据库适配情况
约束:CentOS Linux release 7.8.2003 (Core)
范围:仅记录上述平台下的简单安装体验过程
目的:节约大家初次体验的时间,为社会发展略尽绵薄之力

1. 系统要求

1.1. 硬件环境要求

表1 列出了openGauss服务器应具备的最低硬件要求。在实际产品中,硬件配置的规划需考虑数据规模及所期望的数据库响应速度。请根据实际情况进行规划。

表 1 硬件环境要求

项目配置描述
内存功能调试建议32GB以上。性能测试和商业部署时,单实例部署建议128GB以上。复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。此时建议使用大内存的机器,或使用负载管理限制系统的并发。
CPU功能调试最小1×8核,2.0GHz。性能测试和商业部署时,建议1×16核,2.0GHz。CPU超线程和非超线程两种模式都支持。说明:个人开发者最低配置2核4G,推荐配置4核8G。目前,openGauss仅支持ARM服务器和基于x86_64通用PC服务器的CPU。
硬盘用于安装openGauss的硬盘需最少满足如下要求:至少1GB用于安装openGauss的应用程序。每个主机需大约300MB用于元数据存储。预留70%以上的磁盘剩余空间用于数据存储。建议系统盘配置为RAID1,数据盘配置为RAID5,且规划4组RAID5数据盘用于安装openGauss。有关RAID的配置方法在本手册中不做介绍。请参考硬件厂家的手册或互联网上的方法进行配置,其中Disk Cache Policy一项需要设置为Disabled,否则机器异常掉电后有数据丢失的风险。openGauss支持使用SSD盘作为数据库的主存储设备,支持SAS接口和NVME协议的SSD盘,以RAID的方式部署使用。
网络要求300兆以上以太网。建议网卡设置为双网卡冗余bond。有关网卡冗余bond的配置方法在本手册中不做介绍。请参考硬件厂商的手册或互联网上的方法进行配置。

1.2. 软件环境要求

表 2 软件环境要求

软件类型配置描述
Linux操作系统ARM:openEuler 20.03LTS(推荐采用此操作系统)openEuler 22.03LTS麒麟V10Asianux 7.5x86:openEuler 20.03LTSopenEuler 22.03LTSCentOS 7.6Asianux 7.6说明:当前安装包只能在英文操作系统上安装使用。
Linux文件系统剩余inode个数 > 15亿(推荐)
工具bzip2
Python支持Python3.6+

1.3. 软件依赖要求

表 3 软件依赖要求

所需软件建议版本
libaio-devel建议版本:0.3.109-13
flex要求版本:2.5.31 以上
bison建议版本:2.7-4
ncurses-devel建议版本:5.9-13.20130511
glibc-devel建议版本:2.17-111
patch建议版本:2.7.1-10
redhat-lsb-core建议版本:4.1
readline-devel建议版本:7.0-13
libnsl(openEuler+x86环境中)建议版本:2.28-36

2. 安装准备

本节基于root或管理员账户操作。

2.1. 关闭操作系统防火墙

只能在防火墙关闭的情况下安装。

systemctl stop firewalld.service

安装完成后重新开启防火墙

systemctl start firewalld.service

2.2. 校对字符集

使用 locale 命令查看当前系统默认字符集,如果输出的不是 UTF-8,则需要进一步修改。

locale charmap
UTF-8

将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)。

vim /etc/profile
# 加入以下内容并保存
export LANG=UTF-8
# 让配置生效
source /etc/profile

2.3. 检查时区

  1. 检查时区为中国时间标准,如下所示,CST可以认为是中国标准,当然它也可以代表美国等标准

    date
    Fri May 17 16:00:07 CST 2024
    

    通过该命令来保证所有数据库节点的时区一致性,并且保持数据库节点之间的时间误差小于1分钟(30秒内最佳)。

  2. 使用如下命令将各数据库节点/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件。

    cp /usr/share/zoneinfo/$地区/$时区 /etc/localtime
    

    说明:$地区/$时区为需要设置时区的信息,例如:/usr/share/zoneinfo/Asia/Shanghai

  3. 使用date -s命令将各数据库节点的时间设置为统一时间,举例如下。

    date -s "Sat Sep 27 16:00:07 CST 2020"
    

2.4. (可选)关闭swap交换内存

关闭

swapoff -a

开启

swapon -a

说明:关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。 如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。

2.5. 安装依赖库

用root账户安装。以下为使用yum进行安装的命令,其他方式略。

yum -y install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl

2.6. 用户组及用户

  1. 创建用户组dbgroup。

    groupadd dbgroup
    
  2. 创建用户组dbgroup下的普通用户omm,并设置普通用户omm的密码,密码建议设置为英文、数字、特殊符号的特定组合。

    useradd -g dbgroup omm
    passwd omm
    

备注:可以用以下命令查询组或用户是否存在

cat /etc/group | grep 组名
cat /etc/passwd | grep 用户名

3. 服务器单节点安装

此处基于root或管理员账户操作。

  1. 下载、拷贝安装包

  2. 创建安装目录,以下仅为示例目录

    mkdir -p /opt/software/openGauss
    
  3. 解压包(注意替换实际的包名)

    tar -jxf openGauss-x.x.x-操作系统-64bit.tar.bz2 -C /opt/software/openGauss
    
  4. 目录权限设置

    chown -R omm:dbgroup /opt/software/openGauss
    
  5. 修改文件句柄数量

    # 查看当前操作系统最大上限(虚拟),每次系统启动会自动初始化
    cat /proc/sys/fs/file-max
    # 在设置文件句柄数量的时候,如果服务器只装一个数据库,那么可以将句柄数设置为接近上面的最大值
    # 先为root账户设置最大值(永久)
    vim ~/.bashrc
    # 添加,value是具体数值,默认是1024,按需填写,但不要超过最大值,留有余地
    ulimit -n [value]
    # 保存并退出后刷新此配置
    source ~/.bashrc
    # 到opengauss5 极简安装中的文件句柄数默认是100W,有超过小服务器资源上限的风险,建议调低
    # 切换到opengauss的账户
    su omm
    # 重复配置一遍omm的使用限制
    vim ~/.bashrc
    ulimit -n [value]
    source ~/.bashrc
    # 退出omm,回到root账户
    exit
    
  6. 设置用于控制信号量行为的内核参数。

    # 永久修改
    vim /etc/sysctl.conf
    # 内容如下:
    # kernel.sem = 250 85000 250 330
    # 保存退出后使其生效
    sysctl -p
    

    如果不设置该参数的话大概率会在安装时出现 “On systemwide basis, the maximum number of SEMMNI is not correct. the current SEMMNI value is: 128. Please check it.” 的错误信息。

    ipcs -l 可以查看当前系统的配置。

    说明:

    kernel.sem参数在Linux系统中扮演的角色和包含的子参数如下:

    1. SEMMSL(max semaphores per array) :每个信号集容纳最大信号数量
    2. SEMMNS(max semaphores system wide): 系统中信号总量上限
    3. SEMOPM(max ops per semop call):调用单个信号集中最大信号数量,通常等于SEMMSL
    4. SEMMNI(max number of arrays):信号集总量上限

    总的来说,kernel.sem是Linux内核中用于管理信号量行为的一组参数,它通过各个子参数来控制系统中信号量的创建和使用,以协调多进程之间的资源共享和访问顺序。

  7. 切换数据库管理账户

    su omm
    
  8. 假定解压包的路径为/opt/software/openGauss,进入解压后目录下的simpleInstall。

    cd /opt/software/openGauss/simpleInstall
    
  9. 执行install.sh脚本安装openGauss,xxxx是数据库初始化密码,请妥善保管。

    sh install.sh  -w "xxxx" &&source ~/.bashrc
    

    如果安装结果如下说明非常成功地安装好了:

    [2024-05-21 08:45:17.520][25357][][gs_ctl]:  done
    [2024-05-21 08:45:17.520][25357][][gs_ctl]: server started (/opt/software/openGauss/data/single_node)
    import sql file
    Would you like to create a demo database (yes/no)? yes
    Load demoDB [school,finance] success.
    [complete successfully]: You can start or stop the database server using:
        gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node
    

    这个是一般的服务控制命令:gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node

  10. 检验数据库进程是否正常运行

    ps ux | grep gaussdb
    # 模拟运行中进程信息输出如下
    opengau+ 25360  4.6 10.5 6172412 841880 ?      Ssl  08:45   0:11 /opt/software/openGauss/bin/gaussdb -D /opt/software/openGauss/data/single_node
    opengau+ 25774  0.0  0.0 110476   892 pts/0    S+   08:49   0:00 grep --color=auto gaussdb
    

4. 数据库配置

本节基于数据库专用账户进行操作,基于上文,此处应为omm

  1. 数据库基本配置目录,本文是服务器单节点极简版:/opt/software/openGauss/data/single_node

  2. 数据库客户端的访问权限控制配置文件,pg_hba.conf,以下是示例

    TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    "local" is for Unix domain socket connections only
    #表示只允许以安装时-U参数指定的用户从服务器本机进行连接。
    local   all             all                                     trust
    IPv4 local connections:
    #表示允许jack用户从10.10.0.50主机上连接到任意数据库,使用sha256算法对密码进行加密。
    host    all           jack             10.10.0.50/32            sha256
    #表示允许任何用户从10.10.0.0/24网段的主机上连接到任意数据库,使用sha256算法对密码进行加密,并且经过SSL加密传输。
    hostssl    all             all             10.10.0.0/24            sha256
    #表示禁止任何用户从10.10.0.1/32网段的主机上连接到任意数据库。 
    host    all             all             10.10.0.1/32            reject
    
  3. 开放远程访问权限,postgresql.conf

    vim /opt/
    

    定位 Connection Settings,按 /并输入"Connection"按下回车,一般就能迅速定位(大约位于65行附近),调整以下配置:

    listen_addresses = '*'
    local_bind_address = '0.0.0.0'
    port = 5432
    max_connections = 200
    

    调整完保存退出,然后重启opengauss:

    /opt/software/openGauss/bin/gs_ctl restart -D /opt/software/openGauss/data/single_node -Z single_node
    
  4. 连接上数据库验证一下

    /opt/software/openGauss/bin/gsql -d postgres -p 5432
    # 如果看到这样的就可以了
    openGauss=#
    # \q回车  退出客户端
    

5. 安全管理

本节操作请切换至root或管理员账户。

5.1. 关闭HISTORY记录

为避免指令历史记录安全隐患,需关闭各主机的history指令。

  1. 修改根目录下/etc/profile文件。

    vim /etc/profile
    
  2. 步骤 2 设置HISTSIZE值为0。例如,系统中HISTSIZE默认值为1000,将其修改为0。

    HISTSIZE=0
    
  3. 保存/etc/profile。

  4. 设置/etc/profile生效。

    source /etc/profile
    

5.2. 开启防火墙

systemctl start firewalld.service
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

6. 数据库账户配置

为项目或业务领域设立一个专用的管理员账户,更加详细的三权分立数据库管理账户体系请参见官方文档。以下用sysadmin为例。

本节用omm账户,登录客户端:

/opt/software/openGauss/bin/gsql -d postgres -p 5432

6.1. 创建账户

openGauss=# CREATE USER sysadmin WITH SYSADMIN password "xxxxxxxxx";

7. 可视化数据库管理工具

开发、运维同学一般都习惯用可视化工具来快速操作数据库,但是相关工具的适配才刚起步,只能先使用官方工具了。

  1. 从以下入口进入工具清单界面
    在这里插入图片描述

  2. 我的电脑是Windows(x86_64)。
    在这里插入图片描述

  3. 这个是可视化工具界面
    在这里插入图片描述

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

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

相关文章

Python协程的作用

过分揣测别人的想法,就会失去自己的立场。大家好,当代软件开发领域中,异步编程已成为一种不可或缺的技术,用于处理大规模数据处理、高并发网络请求、实时通信等应用场景。而Python协程(Coroutine)作为一种高…

string类的各个功能函数的底层实现

我们在上一篇文章中详细地讲解了string类的各个常用功能成员函数的讲解,本文我们将对上文进行一个小收尾,然后开始实现string类的底层。 一、上一篇的收尾 1.find函数:顾名思义,它的功能是在字符串中找到目标字符并返回它的位置…

骨传导耳机哪个品牌好?避坑必读精析5大热门款式推荐!

作为一名有着多年工作经验的数码测评师,我发现市场上有许多骨传导耳机品牌都声称自己具有出色的音质和佩戴舒适度。但是,从用户的实际反馈来看,大部分产品都或多或少存在一些问题,如音质失真、佩戴不稳定、耳朵不适等,…

【Pytorch】16.使用ImageFolder加载自定义MNIST数据集训练手写数字识别网络(包含数据集下载)

数据集下载 MINST_PNG_Training在github的项目目录中的datasets中有MNIST的png格式数据集的压缩包 用于训练的神经网络模型 自定义数据集训练 在前文【Pytorch】13.搭建完整的CIFAR10模型我们已经知道了基本搭建神经网络的框架了,但是其中的数据集使用的torchvision…

vue实现加入购物车动效

实现 实现逻辑: 点击添加购物车按钮时,获取当前点击位置event的clientX 、clientY;动态创建移动的小球,动态计算小球需要移动到的位置(通过ref 的getBoundingClientRect获取统计元素按钮位置)&#xff1b…

JS 网页密码框验证信息

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>/* 当没有密码…

【错误解决】使用HuggingFaceInstructEmbeddings时的一个错误

起因&#xff1a;使用huggingface构建一个问答程序时出现的问题。 错误内容&#xff1a; 分析&#xff1a; 查看代码发现&#xff0c;HuggingFaceInstructEmbeddings和sentence-transformers模块版本不兼容导致。 可以明显看到方法参数不同。 解决&#xff1a; 安装sentenc…

MySQL主从复制(docker搭建)

文章目录 1.MySQL主从复制配置1.主服务器配置1.拉取mysql5.7的镜像2.启动一个主mysql&#xff0c;进行端口映射和目录挂载3.进入/mysql5.7/mysql-master/conf中创建my.cnf并写入主mysql配置1.进入目录2.执行命令写入配置 4.重启mysql容器&#xff0c;使配置生效5.进入主mysql&a…

c#自动生成缺陷图像-添加新功能(可从xml直接提取目标数据,然后进行数据离线增强)--20240524

在进行深度学习时,数据集十分重要,尤其是负样本数据。 故设计该软件进行深度学习数据预处理,最大可能性获取较多的模拟工业现场负样本数据集。 该软件基于VS2015、.NETFrameWork4.7.2、OpenCvSharp1.0.0.0、netstandard2.0.0.0、SunnyUI3.2.9.0、SunnyUI.Common3.2.9.0及Ope…

Android studio的Gradle出问题

Gradle sync failed: Plugin [id: com.android.application, version: 7.1.1, apply: false] was not found in any of the following sources: 在src里面的build.gradle中 plugins { id ‘com.android.application’ } 的上面加上 buildscript {repositories {jcenter()}depen…

数字驱动,教育先行——低代码揭秘教育机构管理数字化转型

数字化时代为教育带来了许多变革和挑战&#xff0c;同时也为教育创新提供了无限可能。数字化转型可以帮助教育机构应对这些变革和挑战&#xff0c;提高教育效率和质量&#xff0c;满足学生个性化需求&#xff0c;优化教育管理和服务&#xff0c;并提高教育机构的竞争力。 并且…

【译】MySQL复制入门: 探索不同类型的MySQL复制解决方案

原文地址&#xff1a;An Introduction to MySQL Replication: Exploring Different Types of MySQL Replication Solutions 在这篇博文中&#xff0c;我将深入介绍 MySQL 复制&#xff0c;回答它是什么、如何工作、它的优势和挑战&#xff0c;并回顾作为 MySQL 环境&#xff0…

131. 面试中关于架构设计都需要了解哪些内容?

文章目录 一、社区系统架构组件概览1. 系统拆分2. CDN、Nginx静态缓存、JVM本地缓存3. Redis缓存4. MQ5. 分库分表6. 读写分离7. ElasticSearch 二、商城系统-亿级商品如何存储三、对账系统-分布式事务一致性四、统计系统-海量计数六、系统设计 - 微软1、需求收集2、顶层设计3、…

开源大模型与闭源大模型:谁主沉浮?

目录 &#x1f349;引言 &#x1f349;数据隐私 &#x1f348;开源大模型的优势与挑战 &#x1f34d;优势&#xff1a; &#x1f34d;挑战&#xff1a; &#x1f348;闭源大模型的优势与挑战 &#x1f34d;优势&#xff1a; &#x1f34d;挑战&#xff1a; &#x1f34…

【设计模式深度剖析】【2】【创建型】【工厂方法模式】

&#x1f448;️上一篇:单例模式 | 下一篇:抽象工厂模式&#x1f449;️ 目录 工厂方法模式概览工厂方法模式的定义英文原话直译 工厂方法模式的4个角色抽象工厂&#xff08;Creator&#xff09;角色具体工厂&#xff08;Concrete Creator&#xff09;角色抽象产品&#x…

2001-2022年全国31省份互联网发展47个指标合集各省电信业务信息化软件信息技术服务业

全国31省份互联网发展47个指标合集各省电信业务信息化软件信息技术服务业&#xff08;2001-2022年&#xff09;插值填补无缺失 整理了各省电信业务、从业人员、电信通信、互联网发展、企业信息化、软件和信息技术服务业等47个互联网主要发展指标&#xff0c;内含原始数据、线性…

Web前端一套全部清晰 ⑨ day5 CSS.4 标准流、浮动、Flex布局

我走我的路&#xff0c;有人拦也走&#xff0c;没人陪也走 —— 24.5.24 一、标准流 标准流也叫文档流&#xff0c;指的是标签在页面中默认的排布规则&#xff0c;例如:块元素独占一行&#xff0c;行内元素可以一行显示多个。 二、浮动 作用: 让块级元素水平排列。 属性名:floa…

LeetCode1161最大内层元素和

题目描述 给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层&#xff0c;而根节点的子节点位于第 2 层&#xff0c;依此类推。请返回层内元素之和 最大 的那几层&#xff08;可能只有一层&#xff09;的层号&#xff0c;并返回其中 最小 的那个。 解析 在上一题&…

微信小程序报错:notifyBLECharacteristicValueChange:fail:nodescriptor的解决办法

文章目录 一、发现问题二、分析问题二、解决问题 一、发现问题 微信小程序报错&#xff1a;notifyBLECharacteristicValueChange:fail:nodescriptor 二、分析问题 这个提示有点问题&#xff0c;应该是该Characteristic的Descriptor有问题&#xff0c;而不能说nodescriptor。 …

【传知代码】Modnet 人像抠图-论文复现

文章目录 概述原理介绍核心逻辑ModNet 的结构 环境配置WebUI 小结 论文地址 论文GitHub 本文涉及的源码可从Modnet 人像抠图该文章下方附件获取 概述 人像抠图技术在多个领域有着广泛的应用场景&#xff0c;包括但不限于&#xff1a; 展馆互动拍照&#xff1a;展馆中使用的抠…