暂无图片
暂无图片
12
暂无图片
暂无图片
暂无图片

手把手教你安装openGauss 3.1.0

原创 IT烧麦(博) 2022-11-05
5748

目录

前言

本文对应视频链接如下
【高校课堂】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
最后修改时间:2022-11-13 09:20:05
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论