文章目录
任务二 安装openGauss DBMS
任务目的
在CentOS单机上安装openGauss DBMS,为学习openGauss DBMS准备数据库环境。
实验步骤
需要对CentOS 7.6操作系统进行一些配置,才能满足安装openGauss DBMS的要求。
一、配置CentOS 7.6 操作系统
1. 关闭 CentOS 防火墙
停止 firewall
systemctl stop firewalld.service
禁止 firewall 开机启动
systemctl disable firewalld.service
2. 关闭SELinux
关闭SELinux,需要重启
getenforce
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
getenforce
如下图所示:
3. 配置主机名和 /etc/hosts 文件
修改服务器的主机名为test:
hostnamectl set-hostname test
在文件 /etc/hosts中添加一行内容:
cat >>/etc/hosts <<EOF
192.168.100.91 test
EOF
4. 配置库搜索路径
cat>> /etc/profile<<EOF
export LD_LIBRARY_PATH=/opt/software/openGauss/script/gspylib/clib:$LD_LIBRARY_PATH
EOF
5. 配置网络参数
cat>>/etc/sysctl.conf<<EOF
net.ipv4.ip_local_port_range = 26000 65500
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv4.conf. ens33.rp_filter = 1
net.ipv4.tcp_fin_timeout=60
net.ipv4.tcp_retries1=5
net.ipv4.tcp_syn_retries=5
net.sctp.path_max_retrans=10
net.sctp.max_init_retransmits=10
EOF
6. 设置 root 用户远程登陆
sed -i 's/^#Banner .*/Banner none/' /etc/ssh/sshd_config
sed -i 's/^#PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config
systemctl restart sshd
7. 配置文件系统参数、系统支持的最大进程数
单句复制单句执行
echo "* soft nofile 1000000" >>/etc/security/limits.conf
echo "* hard nofile 1000000" >>/etc/security/limits.conf
echo "* soft nproc unlimited" >>/etc/security/limits.conf
echo "* hard nproc unlimited" >>/etc/security/limits.conf
8. 安装python3.6(可选)
如果安装的CentOS没有自带openSSL和python3.6 就使用通过yum下载,如下:
yum update
yum install -y openssl*
yum install -y python3*
python3 -V
当然yum的官方源可能会因为网络问题导致下载速度非常缓慢,此时可以考虑更换国内源,如阿里源,官方教程可能有一处问题,我们需要在yum makecache
之前,需要先使用下面这个命令:
yum clean all
9. 重启服务器
reboot
如下图所示:
二、下载 openGauss DBMS 介质
1. 创建介质目录
mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
2. 下载openGauss DBMS 介质
openGauss开源社区提供了CentOS操作系统提供了最新版的openGauss企业版的下载链接,下载前需要先登陆openGauss开源社区账号,整个过程均免费。
我们首先在宿主机通过浏览器获取openGauss_6.0.0/5.0.3 企业版的下载链接,如下图所示:
然后我们回到虚拟上。
切换到新建的介质下载目录:
cd /opt/software/openGauss
将openGauss_5.0.3 企业版的介质通过下载链接完成下载:
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.3/x86/openGauss-5.0.3-CentOS-64bit-all.tar.gz
或者
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.0/CentOS7/x86/openGauss-All-6.0.0-CentOS7-x86_64.tar.gz
如下图所示:
3. 解压 openGauss DBMS 介质
解压外层压缩包:
tar -xzf openGauss-6.0.0-CentOS-64bit-all.tar.gz
再解压-OM类型的openGauss DBMS 压缩包:
tar -xzf openGauss-OM-6.0.0-CentOS7-x86_64.tar.gz
如下图所示:
三、安装 openGauss_6.0.0 企业版
openGauss社区提供了安装指南我们将根据安装指南完成任务,其中安装流程图如下:
1. 关闭操作系统防火墙
其实我们之前已经关闭过一次防火墙了,但是也无妨再关一次嘛,让这个世界没有墙,让开源的疆土更加辽阔。
使用VIM打开config文件,将/etc/selinux/config文件中的“SELINUX”值为“disabled”:
vim /etc/selinux/config
如果config文件中已经是disabled,那么就无需操作,否则需要修改“SELINUX”的值“disabled”,执行:wq保存并退出修改,然后重启操作系统。
然后,检查防火墙是否关闭:
systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭,需要执行一下步骤:
systemctl disable firewalld.service
systemctl stop firewalld.service
否则可以直接跳过这个步骤。笔者的虚拟机防火墙默认是关闭的,如果读者遇到开启的情况也不用担心,使用上面两个命令是完全OK的,目前的运行情况如下:
2. 设置字符集参数
使用下面的命令在/etc/profile最后插入LANG=zh_CN.UTF-8
cat >> /etc/profile <<EOF
export LANG=en_US.UTF-8
EOF
3. 设置时区和时间
其实我们在安装虚拟机的时候已经设置过了,但是以防万一还是再输入一遍也无妨
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
由于我们暂时没有使用openGauss的集群,我们就先不将各个主机的时间设置为统一时间,等到后面实验需要的时候我们再设置。
4. 关闭swap交换内存(必须)
关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。 如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。
我们分配的虚拟机的内存是4GiB,相比服务器是很小的,所以按理来说我们应该打开swap内存交换,但是在openGauss DBMS下载的时候,第一,我们可以先关闭swap内存交换从而让下载和测试的过程更快速,第二也最重要的是如果不关闭swap内存交换会导致openGauss DBMS的安装前检查无法正常通过。完成安装之后运行的时候最好要打开swap内存交换。
临时关闭swap内存交换命令:
swapoff -a
swap内存交换开启命令:
swapon -a
5. 设置网卡MTU值
如果对外工作的网卡 ens33 是万兆网卡,需要将其 MTU 参数设置为 8192:
cat >> /etc/profile<<EOF
ifconfig ens33 mtu 8192
EOF
但本实验提供的虚拟机环境中不能配置此项,否则会安装失败。
6. 关闭RemoveIPC
在各数据库节点上,关闭RemoveIPC。CentOS操作系统无该参数,可以跳过该步骤。
所以官方教程收CentOS没有该参数,但是你确实可以在 /usr/lib/systemd/system/systemd-logind.service中找到这个参数,但是你会发现无论你怎么修改这个参数,CentOS 7.6 也不会运行RemoveIPC的进程,读者不放心的话也可以按照官方的教程走一遍,笔者这里偷懒就不再走一遍了。
7. 关闭HISTORY记录
为避免指令历史记录安全隐患,需关闭各主机的history指令。
做本地实验的没必要再关记录了,笔者还是想偷个懒。
8. 设置root用户远程登录
首先,修改PermitRootLogin配置,允许用户远程登录,请用户自行使用vim将文件中 /etc/ssh/sshd_config的PermitRootLogin no修改为:
PermitRootLogin yes
如果是VScode用户想用远程登陆还需要将该文件中的
#AllowTcpForwarding yes修改为:
AllowTcpForwarding yes
也即去掉注释。
然后,修改Banner配置,去掉连接到系统时,系统提示的欢迎信息。
vim /etc/ssh/sshd_config
注释掉“Banner”所在行。
最后使用下面的命令使设置生效:
systemctl restart sshd.service
9. 创建用户和用户组(可选)
初始化安装环境时,由-G参数所指定的安装用户所属的用户组。该用户组如果不存在,则会自动创建,也可提前创建好用户组;初始化安装环境时,由-U参数所指定和自动创建的操作系统用户,如果已经存在该用户,请清理该用户或更换初始化用户。
我们在这里先创建一个用户组dbgrp:
groupadd dbgrp
10. 创建XML配置文件
XML文件的配置具有多样性,需要根据读者当前的情况而定,如果读者是按照笔者上文一步步来的话,可以使用笔者所写的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="dbCluster" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="test" />
<!-- 数据库安装目录-->
<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" />
<!-- 数据库core文件目录-->
<PARAM name="corePath" value="/opt/huawei/corefile" />
<!-- 节点IP,与数据库节点名称列表一一对应 -->
<!-- 如果用ipv6 替换ipv4地址即可 如:<PARAM name="backIp1s" value="2407:xxxx:xxxx:xxxx:xxxx:xxxx:caa:2335"/> -->
<PARAM name="backIp1s" value="192.168.100.91"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="1000001">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="test"/>
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<!-- 用ipv6安装部署时 换上ipv6地址即可,后面xml文件示例也是同样操作 -->
<PARAM name="backIp1" value="192.168.100.91"/>
<PARAM name="sshIp1" value="192.168.100.91"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
再 /opt/software/openGauss 目录下创建cluster_config.xml并写入上述配置内容:
cat >>cluster_config.xml<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="dbCluster" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="test" />
<!-- 数据库安装目录-->
<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" />
<!-- 数据库core文件目录-->
<PARAM name="corePath" value="/opt/huawei/corefile" />
<!-- 节点IP,与数据库节点名称列表一一对应 -->
<!-- 如果用ipv6 替换ipv4地址即可 如:<PARAM name="backIp1s" value="2407:xxxx:xxxx:xxxx:xxxx:xxxx:caa:2335"/> -->
<PARAM name="backIp1s" value="192.168.100.91"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="1000001">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="test"/>
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<!-- 用ipv6安装部署时 换上ipv6地址即可,后面xml文件示例也是同样操作 -->
<PARAM name="backIp1" value="192.168.100.91"/>
<PARAM name="sshIp1" value="192.168.100.91"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
EOF
如下图所示:
10. 预安装
首先,修改安装包目录权限:
chmod 755 -R /opt/software
然后,进入到工具脚本存放目录下:
cd /opt/software/openGauss/script
最后,执行下列命令准备安装环境:
关闭内存swap交换:
swapoff -a
执行前置安装:
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
11. 安装 openGauss DBMS
1.执行下面的命令,将目录的权限交给omm:
chown -R omm:dbgrp /opt/software
2.安装openGauss DBMS 需要使用omm用户,执行下面的命令,切换到omm用户:
su - omm
我们当前使用的openEuler虚拟机test,内存较小,只有4GB,因此需要以omm用户的身份,执行下面的命令,来安装openGauss数据库管理系统和创建数据库集簇:
cd /opt/software/openGauss/script
./gs_install -X /opt/software/openGauss/cluster_config.xml \
--gsinit-parameter="--encoding=UTF8" \
--dn-guc="max_connections=1000" \
--dn-guc="max_process_memory=3GB" \
--dn-guc="shared_buffers=128MB" \
--dn-guc="bulk_write_ring_size=128MB" \
--dn-guc="cstore_buffers=16MB"
运行结果如图:
12. 重新打开 CentOS 的交换区
swapon -a
13. 首次登陆数据库
在CentOS中,使用用户omm执行下面的操作,登录到openGauss数据库,修改数据库的密码:
gsql -d postgres -p 26000 -r
然后在openGauss数据库的交互窗口输入如下命令,修改数据库的密码:
ALTER ROLE omm IDENTIFIED BY 'Passw0rd@ustb' REPLACE 'huawei@1234';
执行下面的命令,检查数据库版本:
show server_version;
执行下面命令,查看帮助:
help
执行下面命令推出gsql客户端程序:
\q