openGauss数据库安装手册
作者:李强
Email:liqiang3@sugon.com
版本:1.0 2020-07-12 初稿
1.1 2020-08-24 增加卸载重装
1.2 2020-08-24 修改外接存储操作
0. 阅读参考
openGauss官方网站:https://opengauss.org/zh
openGauss官方文档:https://opengauss.org/zh/docs/1.0.0/docs/Quickstart/Quickstart.html
openGauss的安装流程如上图所示,请参阅官方文档中的“安装准备、安装openGauss“等章节,完成安装过程。
1. 安装准备
1.1 虚拟机准备
硬件要求:
- 内存 >= 32GB
- CPU >= 8核 2.0GHZ
- 硬盘 >= 40GB
软件要求:
- 操作系统:
-
- openEuler 20.3LTS ARM
- CentOS 7.6 x86_64
-
- Python:
-
- openEuler:安装Python 3.7.X
- CentOS:安装Python 3.6.X
-
1.2 下载openGauss
打开https://opengauss.org/zh/download.html 可以找到openGauss安装包的下载链接。
请注意openeuler_aarch64为ARM版本,必须使用ARM服务器和openEuler ARM版本的操作系统进行安装。 如果只有x86服务器,请下载centos_x86_64安装包,在CentOS 7.6操作系统上进行安装。
1.3 安装CentOS 7.6 或openEuler
下载地址:
- CentOS 7.6:http://mirrors.sohu.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
- openEuler:https://repo.openeuler.org/openEuler-20.03-LTS/ISO/aarch64/openEuler-20.03-LTS-aarch64-dvd.iso
安装CentOS 7.6或者openEuler 20.3,并配置网络和存储。
设置主机名
# 设置主机名,单机使用gaussdb,集群使用gaussdb1,2… hostnamectl set-hostname gaussdb.sugon.com |
openEuler 20.3网络配置方法:
openEuler没有安装network服务,而是使用NetworkManager进行网络配置管理。
请使用nmcli命令进行网卡配置,或编辑/etc/sysconfig/network-scripts/ifcfg-*配置文件后,使用ifdown/ifup命令重启网卡。
nmcli con add type ethernet con-name ens192 ifname ens192 ip4 192.168.5.11/16 gw4 192.168.0.253 |
yum源配置:
有Internet网络时,可以添加外部yum源:
yum-config-manager --add-repo=http://mirrors.163.com/centos/7/os/x86_64/ rpm --import http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 |
没有Internet网络时,可以添加DVD光盘为yum源。
mount /dev/sr0 /mnt/cdrom yum-config-manager --add-repo=file:///mnt/cdrom rpm --import /mnt/cdrom/RPM-GPG-KEY-openEuler |
1.4 安装Python 3
- CentOS 7.6安装Python 3.6:执行yum install -y python36命令,安装python3.6;
- openEuler 20.3安装Python 3.7:openEuler 20.3自带python3.7,输入python3命令即可进入,默认python命令指向python2.7。
1.5 安装其他软件包
openGauss需要安装以下软件包。
yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel patch |
也可以安装以下非必须工具,便于安装。
yum install -y net-tools tar lrzsz |
1.6 修改操作系统配置
(1)关闭防火墙和SeLinux
systemctl disable firewalld.service systemctl stop firewalld.service sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config setenforce 0 |
(2)设置字符集参数
if [ "$LANG" != "en_US.UTF-8" ];then export LANG=en_US.UTF-8 echo export LANG=en_US.UTF-8 >> /etc/profile fi |
(3)检查设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
(4)关闭swap交换区
swapoff -a |
(5)检查设置网卡MTU值
ifconfig ifconfig ens192 mtu 8192 |
(6)设置root用户远程登录配置
sed -i 's/^Banner .*/Banner none/' /etc/selinux/config sed -i 's/^#PermitRootLogin .*/PermitRootLogin yes/' /etc/selinux/config sed -i 's/^PermitRootLogin no/PermitRootLogin yes/' /etc/selinux/config systemctl restart sshd |
(7)修改操作系统参数(可选)
有部分内核参数建议手动修改。
echo 5 > /proc/sys/net/ipv4/tcp_retries1 echo 5 > /proc/sys/net/ipv4/tcp_syn_retries echo 10 > /proc/sys/net/sctp/path_max_retrans echo 10 > /proc/sys/net/sctp/max_init_retransmits echo net.ipv4.tcp_retries1 = 5 >>/etc/sysctl.conf echo net.ipv4.tcp_syn_retries = 5 >>/etc/sysctl.conf echo net.sctp.path_max_retrans = 10 >>/etc/sysctl.conf echo net.sctp.max_init_retransmits = 10 >>/etc/sysctl.conf |
(8)NTP配置(可选)
系统可能没有安装NTP时间同步服务,需要手动安装并开启。
yum install -y ntp systemctl start ntpd && systemctl enable ntpd |
1.7 了解安装用户及用户组
- 用户:omm
- 用户组:dbgrp
无需手动创建,gs_install初始化安装环境时,会自动创建。
1.8 创建软件目录
mkdir /opt/huawei chmod 777 /opt/huawei |
1.9 上传安装包
mkdir -p /opt/software/openGauss chmod 755 -R /opt/software cd /opt/software/openGauss # rz 上传软件包 tar -zxvf openGauss-1.0.0-CentOS-64bit.tar.gz # openEuler 安装包 # tar -zxvf openGauss-1.0.0-openEuler-64bit.tar.gz |
2. 安装openGauss
2.1 创建XML配置文件
安装openGauss前需要创建XML文件。XML文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场配置对应的XML文件。
因权限问题,在配置多节点集群时,最好将XML配置文件放在低权限限制路径,如/tmp,或者chmod手动修改各节点传输XML路径的权限。
vi /tmp/clusterconfig.xml |
单节点配置文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<PARAM name="clusterName" value="dbCluster" />
<PARAM name="nodeNames" value="gaussdb.sugon.com" />
<PARAM name="backIp1s" value="192.168.5.1"/>
<PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
<PARAM name="gaussdbLogPath" value="/var/log/omm" />
<PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" />
<PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
<PARAM name="corePath" value="/opt/huawei/corefile" />
<PARAM name="clusterType" value="single-inst"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- node1上的节点部署信息 -->
<DEVICE sn="1000001">
<PARAM name="name" value="gaussdb.sugon.com"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.5.1"/>
<PARAM name="sshIp1" value="192.168.5.1"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/opt/huawei/install/data/db1"/>
</DEVICE>
</DEVICELIST>
</ROOT>
一主一备配置文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<PARAM name="clusterName" value="dbCluster" />
<PARAM name="nodeNames" value="gaussdb1.sugon.com,gaussdb2.sugon.com" />
<PARAM name="backIp1s" value="192.168.5.11,192.168.5.12"/>
<PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
<PARAM name="gaussdbLogPath" value="/var/log/omm" />
<PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/>
<PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
<PARAM name="corePath" value="/opt/huawei/corefile"/>
<PARAM name="clusterType" value="single-inst"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- node1上的节点部署信息 -->
<DEVICE sn="1000001">
<PARAM name="name" value="gaussdb1.sugon.com"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.5.11"/>
<PARAM name="sshIp1" value="192.168.5.11"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/opt/huawei/install/data/db1,gaussdb2.sugon.com,/opt/huawei/install/data/db1"/>
</DEVICE>
<!-- node2上的节点部署信息,其中“name”的值配置为主机名称 -->
<DEVICE sn="1000002">
<PARAM name="name" value="gaussdb2.sugon.com"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.5.12"/>
<PARAM name="sshIp1" value="192.168.5.12"/>
</DEVICE>
</DEVICELIST>
</ROOT>
参数说明:
实例类型 | 参数 | 说明 |
整体信息 | clusterName | openGauss名称。 |
nodeNames | openGauss中主机名称。 | |
backIp1s | 主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通讯。 | |
gaussdbAppPath | openGauss程序安装目录。此目录应满足如下要求: | |
gaussdbLogPath | openGauss运行日志和操作日志存储目录。此目录应满足如下要求: | |
tmpdbPath | 数据库临时文件存放目录。 | |
gaussdbToolPath | openGauss系统工具目录,主要用于存放互信工具等。此目录应满足如下要求: | |
corePath | openGauss core文件的指定目录。 | |
clusterType | openGauss类型,openGauss拓扑类型;可选字段。 |
2.2 初始化安装环境
(1)openEuler需修改脚本
# openEuler 需要执行以下操作,注释掉vm.min_free_kbytes=112640行 # sed -i 's/^sysctl -w vm.min_free_kbytes=112640/#&/' /etc/profile.d/performance.sh |
(2)配置LD_LIBRARY_PATH环境变量,否则密码验证会报错
export LD_LIBRARY_PATH=/opt/software/openGauss/script/gspylib/clib:$LD_LIBRARY_PATH |
(3)执行gs_preinstall初始化安装环境
cd /opt/software/openGauss/script ./gs_preinstall -U omm -G dbgrp -X /tmp/clusterconfig.xml |
2.3 执行安装
su – omm gs_install -X /tmp/clusterconfig.xml |
3. 安装验证
3.1 状态检查
gs_om -t status --detail |
3.2 登录检查
gsql -d postgres -p 26000 =# ALTER ROLE omm IDENTIFIED BY 'New_Password' REPLACE ' Old_Password'; =# \q |
3.2 外接存储
外接存储需要挂载到/opt/huawei/install/data/db1/pg_location目录上,新创建的表空间和数据库,会放在这个目录下。
请登录root用户,完成以下操作。
# 列出XStor的LUN lsscsi --size # 创建文件系统 mkfs.xfs /dev/sdb # 挂载磁盘并修改权限 mount /dev/sdb /opt/huawei/install/data/db1/pg_location chown omm:dbgrp /opt/huawei/install/data/db1/pg_location #添加到fstab echo `blkid /dev/sdb|awk '{print $2}'` /opt/huawei/install/data/db1/pg_location xfs defaults,_netdev 0 0 >> /etc/fstab |
3.3 安装目录
openGauss安装生成的目录,路径与XML配置文件中相同,XML文件未配置时使用默认路径。
序号 | 项目目录说明 | 目录 | 子目录 | 说明 |
1 | openGauss安装目录 | /opt/huawei/install/app | bin | 存放数据库二进制文件的目录。 |
etc | cgroup工具配置文件。 | |||
include | 存放数据库运行所需要的头文件。 | |||
lib | 存放数据库的库文件的目录。 | |||
share | 存放数据库运行所需要的公共文件,如配置文件模板。 | |||
2 | openGauss数据目录 | /opt/huawei/install/data | data_dnxxx | DBnode实例的数据目录,其中主实例的目录名为“data_dnxxx”,
备实例的为data_dnSxxx。xxx代表DBnode编号。 |
3 | openGauss日志目录 | /var/log/omm | bin | 二进制程序的日志目录。 |
gs_profile | 数据库内核性能日志目录。 | |||
om | OM的日志目录。例如:
部分local脚本产生的日志,增删数据库节点接口的日志,gs_om接口的日志,前置接口的日志,节点替换接口的日志等。 | |||
pg_audit | 数据库审计日志目录。 | |||
pg_log | 数据库节点实例的运行日志目录。 | |||
4 | openGauss系统工具目录 | /opt/huawei/install/om | script | 用于openGauss用户进行openGauss管理的脚本文件。 |
sudo | 用于root用户进行openGauss管理的脚本文件。 | |||
lib | bin目录下的二进制文件依赖的库文件。 |
4. 卸载重装
4.1 卸载
在主节点,登录omm用户,执行gs_uninstall脚本即可完成openGauss卸载。
su – omm gs_uninstall --delete-data |
4.2 重装
重新安装openGauss时,建议先删除omm用户,规避检查报错。重新执行gs_preinstall脚本初始化时,会重建omm用户及配置。
userdel -r omm |