[转帖]手把手教你安装openGauss 3.1.0

手把手,安装,opengauss · 浏览次数 : 0

小编点评

## OpenGauss 数据库环境清理操作步骤 **准备步骤:** 1. 设置/etc/hosts配置了几个ip都要对应到hosts中 2. 执行预安装脚本 3. 开始安装数据库1 4. 验证su - ommgs_install -t statuscluster_state:Normal登录库gsql -d postgres -p 15400 5. 卸载openGauss卸载openGauss的过程 **卸载操作步骤:** **1. 卸载openGauss集群** ``` su - ommgs_uninstall --delete-data本地卸载gs_uninstall --delete-data -L2 ``` **2. 清理环境一键式环境清理** ``` rm -rf /opt/software/openGauss/data rm -rf /opt/software/openGauss/log ``` **3. 清理环境** ``` rm -rf /opt/software/openGauss/backup ``` **4. 检查root用户互信是否建立** ``` getent passwd | grep root ``` **5. 建立root用户互信** ``` su -s root passwd ``` **6. 运行gs_postuninstall命令对openGauss服务器上环境信息做清理** ``` gs_postuninstall -U omm -X /opt/software/open.xml --delete-user --delete-group ``` **注意事项:** * 需要使用root用户执行gs_postuninstall命令。 * 卸载openGauss提供的卸载脚本帮助用户完整的卸载openGauss。 * 操作步骤以操作系统用户omm登录数据库主节点。 * 可以使用gs_postuninstall命令对openGauss服务器上环境信息做清理。

正文

手把手教你安装openGauss 3.1.0

 

目录

 

前言

本文对应视频链接如下
【高校课堂】openGauss 数据库安装部署

一、安装包的下载

1、centos 7.6的下载

  • 下载地址3个
    http://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/
    http://linuxsoft.cern.ch/centos-vault/7.6.1810/isos/x86_64/
  • 经过测试,下面这个源下载速度比较快
    http://mirror.nsc.liu.se/centos-store/7.6.1810/isos/x86_64/
    image.png
    选择DVD版本就行

2、openEuler 20.03LTS的下载

  • 下载地址:
    https://repo.openeuler.org/openEuler-20.03-LTS-SP3/ISO/x86_64/
    image.png

    如果操作系统不是centos7.6怎么办?
    修改/etc/redhad-release

3、openGauss安装包的下载

  • 下载地址
    https://opengauss.org/zh/download.html
    选择最新版本:3.1.0
    image.png
    软件包下载完毕。

二、安装环境的准备

1、硬件环境要求

项目配置描述
内存 功能调试建议32GB以上。
性能测试和商业部署时,单实例部署建议128GB以上。
复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。
此时建议使用大内存的机器,或使用负载管理限制系统的并发。
CPU 功能调试最小1×8核,2.0GHz。
性能测试和商业部署时,单实例部署建议1×16核,2.0GHz。
CPU超线程和非超线程两种模式都支持。
说明:目前,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的配置方法在本手册中不做介绍。请参考硬件厂商的手册或互联网上的方法进行配置。
  • 本次实验环境:
    内存:4G
    cpu 2x4
    硬盘:20G

2、软件环境要求

软件类型配置描述
Linux操作系统 ARM:
openEuler 20.03LTS(推荐采用此操作系统)
麒麟V10
Asianux 7.5

x86:
openEuler 20.03LTS
CentOS 7.6
Asianux 7.6
说明:当前安装包只能在英文操作系统上安装使用。
Linux文件系统 剩余inode个数 > 15亿(推荐)
工具 bzip2
Python
openEuler:支持Python 3.7.X
CentOS:支持Python 3.6.X
麒麟:支持Python 3.7.X
Asianux:支持Python 3.6.X
说明:
python需要通过–enable-shared方式编译。

本次实验环境
Linux操作系统:CentOS 7.6

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

使用yum来安装依赖包

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

4、关闭操作系统防火墙

  • 目前仅支持在防火墙关闭的状态下进行安装。
    设置防火墙开机不自动启动
systemctl disable firewalld.service

关闭防火墙

systemctl stop firewalld.service

设置selinux

vi /etc/selinux/config
修改为:SELINUX=disabled

在root用户下临时关闭selinux

setenforce 0

6、设置操作系统字符集编码

LANG=en_US.UTF-8 
echo "LANG=en_US.UTF-8" >> /etc/profile
source /etc/profile
echo $LANG

7、设置时区和时间

查询时区

timedatectl
timedatectl list-timezones |grep Shanghai
timedatectl set-timezone Asia/Shanghai

修改时区和时间

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

date -s "2021-04-29 15:51:50"

8、关闭swap交换内存(可选)

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

  • 关闭
swapoff -a 
  • 开启
swapon -a

9、设置网卡MTU值

将各数据库节点的网卡MTU值设置为相同大小。
操作步骤
执行如下命令查询服务器的网卡名称。

ifconfig

使用如下命令将各数据库节点的网卡MTU值设置为相同大小。MTU值推荐8192,要求不小于1500。

ifconfig ens33 mtu 8192

10、关闭virbr0网卡

centos 7.6

ifconfig virbr0 down
systemctl disable libvirtd.service

11、关闭RemoveIPC[Only for openEuler]

在各数据库节点上,关闭RemoveIPC。CentOS操作系统无该参数,可以跳过该步骤。

sed -i '/^RemoveIPC/d' /etc/systemd/logind.conf
sed -i '/^RemoveIPC/d' /usr/lib/systemd/system/systemd-logind.service
echo "RemoveIPC=no"  >> /etc/systemd/logind.conf
echo "RemoveIPC=no"  >> /usr/lib/systemd/system/systemd-logind.service
systemctl daemon-reload
systemctl restart systemd-logind
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC

12、关闭HISTORY记录

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

  • 步骤 1 修改根目录下/etc/profile文件。
vim /etc/profile
  • 步骤 2 设置HISTSIZE值为0。例如,系统中HISTSIZE默认值为1000,将其修改为0。
HISTSIZE=0
  • 步骤 3 保存/etc/profile。
wq
  • 步骤 4 设置/etc/profile生效。
source /etc/profile

13、设置root用户远程登录

修改PermitRootLogin配置,允许用户远程登录。

  • a. 打开sshd_config文件。
vim /etc/ssh/sshd_config
  • b. 修改权限配置,可以使用以下两种方式实现:
注释掉“PermitRootLogin no”。
#PermitRootLogin no
将“PermitRootLogin”改为“yes”。
PermitRootLogin yes

14、配置Banner

修改Banner配置,去掉连接到系统时,系统提示的欢迎信息。
欢迎信息会干扰安装时远程操作的返回结果,影响安装正常执行。

  • a. 编辑sshd_config文件。
vim /etc/ssh/sshd_config
  • b. 修改Banner配置,注释掉“Banner”所在的行。
#Banner XXXX
  • c. 执行:wq保存并退出编辑页面。
    使用如下命令使设置生效。
systemctl restart sshd.service

以root用户身份重新登录。

ssh xxx.xxx.xxx.xxx

15、创建用户和用户组

为了实现安装过程中安装帐户权限最小化,及安装后openGauss的系统运行安全性,安装脚本在安装过程中会自动按照用户指定内容创建安装用户,并将此用户作为后续运行和维护openGauss的管理员帐户。
1、用户组:dbgrp

初始化安装环境时,由-G参数所指定的安装用户所属的用户组。
该用户组如果不存在,则会自动创建,也可提前创建好用户组。
在执行gs_preinstall脚本时会检查权限。
gs_preinstall脚本会自动赋予此组中的用户对安装目录、数据目录的访问和执行权限。
2、用户:omm

初始化安装环境时,由-U参数所指定和自动创建的操作系统用户。
此用户具备数据库的最高操作权限,此用户初始密码由用户指定。
从安全性考虑,用户所属组是dbgrp
操作:

groupadd dbgrp 
useradd -g dbgrp omm
echo 'omm@123' | passwd --stdin omm

16、设置sysctl.conf 不用配置

vi /etc/sysctl.conf 
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.sctp.path_max_retrans = 10
net.sctp.max_init_retransmits = 10
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_retries2 = 12
net.ipv4.ip_local_reserved_ports = 15400-15407,20050-20057
net.core.wmem_max = 21299200
net.core.rmem_max = 21299200
net.core.wmem_default = 21299200
net.core.rmem_default = 21299200
kernel.sem = 250 6400000 1000 25600
net.ipv4.tcp_rmem = 8192 250000 16777216
net.ipv4.tcp_wmem = 8192 250000 16777216
vm.min_free_kbytes = 201318
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.core.somaxconn = 65535
kernel.shmall = 1152921504606846720
kernel.shmmax = 18446744073709551615

执行命令,使其生效

sysctl -p

问题:

sysctl: cannot stat /proc/sys/net/sctp/path_max_retrans: No such file or directory
sysctl: cannot stat /proc/sys/net/sctp/max_init_retransmits: No such file or directory
解决方式:安装sctp
lsmod |grep sctp
yum -y install lksctp*
modprobe sctp
再次执行sysctl -p

17、配置资源限制

echo "* soft stack 3072" >> /etc/security/limits.conf
echo "* hard stack 3072" >> /etc/security/limits.conf
echo "* soft nofile 1000000" >> /etc/security/limits.conf
echo "* hard nofile 1000000" >> /etc/security/limits.conf
echo "* soft nproc unlimited" >> /etc/security/limits.d/90-nproc.conf
  • 查看
tail -n 4 /etc/security/limits.conf
tail -n 1 /etc/security/limits.d/90-nproc.conf

18、关闭透明大页

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
/usr/bin/sh /etc/rc.d/rc.local

19、创建目录

mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software

20、解压安装包

cd /root
tar -zxvf openGauss-3.1.0-CentOS-64bit-all.tar.gz -C /soft/openGauss/

image.png
继续解压安装包openGauss-3.1.0-CentOS-64bit-om.tar.gz

 tar -zxvf openGauss-3.1.0-CentOS-64bit-om.tar.gz

image.png
解压出来的内容比较多
chmod -R 777 /opt/software/openGauss

21、创建XML配置文件

  • 需要修改的地方:
    数据库节点名称
    nodeNames value=node1_hostname
    sn=node1_hostname
    把value后面的值改为主机名
    IP地址
    节点IP,与数据库节点名称列表一一对应
    backIp1s value=192.168.204.16
    backIp1 value=192.168.204.16
    sshIp1 value=192.168.204.16
    端口
    dataPortBase value=15400
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- openGauss整体信息 -->
    <CLUSTER>
        <!-- 数据库名称 -->
        <PARAM name="clusterName" value="dbCluster" />
        <!-- 数据库节点名称(hostname) -->
        <PARAM name="nodeNames" value="node1_hostname" />
        <!-- 数据库安装目录-->
        <PARAM name="gaussdbAppPath" value="/opt/software/install/app" />
        <!-- 日志目录-->
        <PARAM name="gaussdbLogPath" value="/opt/software/log/omm" />
        <!-- 临时文件目录-->
        <PARAM name="tmpMppdbPath" value="/opt/software/tmp" />
        <!-- 数据库工具目录-->
        <PARAM name="gaussdbToolPath" value="/opt/software/om" />
        <!-- 数据库core文件目录-->
        <PARAM name="corePath" value="/opt/software/corefile" />
        <!-- 节点IP,与数据库节点名称列表一一对应 -->
        <PARAM name="backIp1s" value="192.168.204.16"/> 
    </CLUSTER>
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- 节点1上的部署信息 -->
        <DEVICE sn="node1_hostname">
            <!-- 节点1的主机名称 -->
            <PARAM name="name" value="node1_hostname"/>
            <!-- 节点1所在的AZ及AZ优先级 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="192.168.204.16"/>
            <PARAM name="sshIp1" value="192.168.204.16"/>
               
    <!--dbnode-->
    <PARAM name="dataNum" value="1"/>
    <PARAM name="dataPortBase" value="15400"/>
    <PARAM name="dataNode1" value="/opt/software/install/data/dn"/>
            <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>
    </DEVICELIST>
</ROOT>

22、设置/etc/hosts

配置了几个ip都要对应到hosts中

vi /etc/hosts
[root@master01 om]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.204.16master01
192.168.204.141 master01

23、执行预安装脚本

export MY_HOSTNAME=master01
cd /opt/software/openGauss/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/open.xml
  • 查系统环境
./gs_checkos -i A -h master01 –detail

image.png
image.png

二、开始安装数据库

1、切换用户

必须使用上面预安装指定的用户进行安装
su – omm

2、开始安装

使用XML配置文件
./gs_install -X /opt/software/open.xml

需要输入密码,密码要求:

  • 最少包含8个字符。
  • 不能和用户名、当前密码(ALTER)、或当前密码反序相同。
  • 至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。
su - omm
gs_install -X /opt/software/open.xml

Parsing the configuration file.
Check preinstall on every node.
Successfully checked preinstall on every node.
Creating the backup directory.
Last time end with Start cluster.
Continue this step.
Successfully created the backup directory.
begin deploy..
Successfully started cluster.
Successfully installed application.
end deploy..

安装成功

三、验证

su - omm
gs_om -t status

image.png
cluster_state:Normal

  • 登录库
gsql -d postgres -p 15400

四、卸载openGauss

卸载openGauss的过程包含卸载openGauss和对openGauss服务器的环境做清理。
执行卸载
openGauss提供了卸载脚本帮助用户完整的卸载openGauss。
操作步骤

  1. 以操作系统用户omm登录数据库主节点。
  2. 使用gs_uninstall卸载openGauss。

1、卸载openGauss

集群卸载

su - omm
gs_uninstall --delete-data

本地卸载

gs_uninstall --delete-data -L

2、清理环境

一键式环境清理
在openGauss卸载完成后,如果不需要在环境上重新部署openGauss,可以运行脚本gs_postuninstall对openGauss服务器上环境信息做清理。openGauss环境清理是对环境准备脚本gs_preinstall所做设置的清理。
前提条件

  • openGauss卸载执行成功。
  • root用户互信可用。
  • 只能使用root用户执行gs_postuninstall命令。
    操作步骤
  1. 以root用户登录openGauss服务器。
  2. 查看root用户互信是否建立,如果root用户没有建立互信,需要手工建立root用户互信。

root用户

cd /opt/software/openGauss/script
./gs_postuninstall -U omm -X /opt/software/open.xml --delete-user --delete-group

与[转帖]手把手教你安装openGauss 3.1.0相似的内容:

[转帖]手把手教你安装openGauss 3.1.0

手把手教你安装openGauss 3.1.0 目录 前言 一、安装包的下载 1、centos 7.6的下载 2、openEuler 20.03LTS的下载 3、openGauss安装包的下载 二、安装环境的准备 1、硬件环境要求 2、软件环境要求 3、软件依赖要求 4、关闭操作系统防火墙 6、设置操

[转帖]手把手教你在QEMU上运行RISC-V Linux

https://kernel.0voice.com/forum.php?mod=viewthread&tid=3080 嵌入式Linux内核 发布于 2023-3-15 14:44:37 阅读 46只看楼主 今天教大家在QEMU模拟器上运行一个RISC-V Linux 一个RISC-V Linux包

[转帖]linux 内核协议栈 TCP time_wait 原理、配置、副作用

https://my.oschina.net/u/4087916/blog/3051356 0. 手把手教你做中间件、高性能服务器、分布式存储技术交流群 手把手教你做中间件、高性能服务器、分布式存储等 (redis、memcache、nginx、大容量 redis pika、rocksdb、mong

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打