目录
- 前言
- 一、安装包的下载
- 二、安装环境的准备
- 1、硬件环境要求
- 2、软件环境要求
- 3、软件依赖要求
- 4、关闭操作系统防火墙
- 6、设置操作系统字符集编码
- 7、设置时区和时间
- 8、关闭swap交换内存(可选)
- 9、设置网卡MTU值
- 10、关闭virbr0网卡
- 11、关闭RemoveIPC[Only for openEuler]
- 12、关闭HISTORY记录
- 13、设置root用户远程登录
- 14、配置Banner
- 15、创建用户和用户组
- 16、设置sysctl.conf 不用配置
- 17、配置资源限制
- 18、关闭透明大页
- 19、创建目录
- 20、解压安装包
- 21、创建XML配置文件
- 22、设置/etc/hosts
- 23、执行预安装脚本
- 二、开始安装数据库
- 三、验证
- 四、卸载openGauss
前言
本文对应视频链接如下
【高校课堂】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/
选择DVD版本就行
2、openEuler 20.03LTS的下载
-
下载地址:
https://repo.openeuler.org/openEuler-20.03-LTS-SP3/ISO/x86_64/如果操作系统不是centos7.6怎么办?
修改/etc/redhad-release
3、openGauss安装包的下载
- 下载地址
https://opengauss.org/zh/download.html
选择最新版本:3.1.0
软件包下载完毕。
二、安装环境的准备
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/
继续解压安装包openGauss-3.1.0-CentOS-64bit-om.tar.gz
tar -zxvf openGauss-3.1.0-CentOS-64bit-om.tar.gz
解压出来的内容比较多
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
二、开始安装数据库
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
cluster_state:Normal
- 登录库
gsql -d postgres -p 15400
四、卸载openGauss
卸载openGauss的过程包含卸载openGauss和对openGauss服务器的环境做清理。
执行卸载
openGauss提供了卸载脚本帮助用户完整的卸载openGauss。
操作步骤
- 以操作系统用户omm登录数据库主节点。
- 使用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命令。
操作步骤
- 以root用户登录openGauss服务器。
- 查看root用户互信是否建立,如果root用户没有建立互信,需要手工建立root用户互信。
root用户
cd /opt/software/openGauss/script
./gs_postuninstall -U omm -X /opt/software/open.xml --delete-user --delete-group