【参赛作品34】opengauss数据库的词法和语法分析

作者:fhhsy
一、安装环境:
VMware Workstation Pro虚拟机
CentOS-7-x86_64-DVD-1810映像文件

二、安装步骤
1、从安装虚拟机开始:
新建一个虚拟机:

在安装虚拟机的时候,因为有时候会因为后续步骤,导致虚拟机崩溃(即无法打开,一直黑屏,一直也没有找出什么好的解决方法,所以就直接采用了最粗暴的解决办法,那就是把虚拟机移除以后删除掉,然后重新开一个,然后新的虚拟机就能多坚持几天,所以最好在安装好虚拟机以后,赶快把所有的事情做完,不然在接下来的步骤中拖拖拉拉,就要重复好多次这样的步骤,非常麻烦。也是因为这个原因,我把虚拟机放到了一个非常显眼的位置(桌面文件夹),便于删除,不然的话,虚拟机太占位置了,怕把电脑占满。(这个问题是有解决办法的,后面会具体说,在此不赘述)
把虚拟机设置成linux 版本为CentOS 64位,最大磁盘大小分配为900GB,选择将虚拟磁盘存储为单个文件。
在完成位置和磁盘大小分配以后,完成虚拟机的新建,随后点击虚拟机,但是不要打开,点击编辑虚拟机设置,如下图所示

在编辑虚拟机设置中进一步对虚拟机进行编辑,将内存分配为4GB,每个处理器内核数量改为4个,将原本虚拟机自带的一个网卡修改为Host-only,然后加一块NAT类型的网卡。把以上的东西全部完成以后,为虚拟光驱放入iso文件(即CentOS-7-x86_64-DVD-1810.iso文件),完成映像的操作,最后的配置如下:

2、安装centos虚拟机:
打开虚拟机,选择install centos 7,进入安装界面进入安装界面以后,首先弹出的是选择安装过程中的使用语言,因为选择中文有时候会出现卡死的状况,因此选择英文,在完全安装完成以后再换回中文。时间和地区随便选一个就行了,影响不大。
选择时区以后,单价“SOFTWARE SELECTION”按钮,出现软件选择画面,选中”Server with GUI”按钮,把右侧软件选项栏所有选项全部选上,然后单击done按钮即可(这里我一截图就卡死,也不知道啥情况)
完成上述选择以后,单击”INSTALLATON DESTINATION”按钮,选择安装centos 7.6操作系统的目标硬盘。把操作系统安装到/dev/sda上,然后自己控制各个分区的大小(默认分区不适合生产环境,需要自己分配才更适合linux的生产环境),点入按钮界面以后,在下面的选项中选中“i will configure partitioning”单选按钮,然后done,就可以进入下一个界面,即磁盘分区
用+按钮去增加磁盘分区即可,最终完成的情况如图所示:
 
完成分盘以后点击done完成分盘。
接下来,单击”NETWORK & HOSTNAME”按钮,开始配置服务器上的网络和主机名字。
手动配置ens33的IP地葬,为ens33分配一个静态IP地址——192.168.100.91/24.接下来单击“configure”按钮,出现网卡配置界面。在配置界面单击”general”标签,再单击”automatically connect to this network when it is available”复选框,然后再单击”IPv4 Settings”标签.然后单机method中的下拉按钮出现配置画面,在”Method”的下拉选项中选择manual后,将出现配置画面,单击add按钮,出现配置画面,为网卡ens33输入IP地址“192.168.100.91”,子网掩码为“255.255.255.0”,网关IP地址为“0.0.0.0”,然后单击“Save”按钮保存网络设置,完成第一块网卡ens33的手动IP地址设置,此时出现ens33的网卡配置画面,如图:

在下面提前把Host name的名字改为test,点击apply,把host的名字改为test,当然,这一步不是必要的。
然后配置第二块网卡ens34,选中网卡ens34,单击“configure”按钮,出现网卡配置界面。在配置界面单击”general”标签,再单击”automatically connect to this network when it is available”复选框,,点击save即可完成配置,由于ens34是使用了虚拟化软件提供的DHCP服务,所以无需太多的操作即可完成。点击两次开关,确认网卡是否为开启状态,如果忘了开网卡,那就悲剧了。单击done按钮,完成对于网卡和主机名字的配置
完成这一切配置以后,接下来就可以单击”LANGUAGE SUPPORT”进入语言配置界面,拉到最后把支持语言换成中文就行了,完成这一切操作以后。选择开始安装(begin installation)按钮,开始安装,之后在安装界面会有两个按钮,左边的是root超级用户密码设置,右边是用户设置,自行设置账号密码以后,等待安装的完成。
3、进入虚拟机进行下一步配置
以root超级用户的身份进入虚拟机,开始配置
接下来可能没图了,因为我每次进入第三步的时候虚拟机都炸了,就像这样:

由于是在旧电脑上进行的实验,电脑的内存跟不上了,虚拟机一开就满,导致配置的虚拟机一直爆炸,虽然也可以在这上面完成一些东西,但是没什么参考价值,不过还好问题不大,回头把一些出现的问题在下面给图就好。
首先要先把之前分盘中出现的tobedelete给删掉
执行umount /toBeDeleted命令,卸载文件系统的挂接点,然后执行cat /etc/fstab命令,删除/etc/fstab文件中的挂接点 /toBeDeleted的行最后在root用户中执行lvremove centos/toBeDeleted命令删除逻辑卷。
这样做可以把占用的空间释放出来,也可以通过命令分配给其他的逻辑卷。
然后就可以开始配置centos 7.6操作系统了。首先要停止防火墙,在终端中输入systemctl stop firewalld.service 命令。然后输入systemctl disable firewalld.service命令,停止防火墙的开机自启动。而后关闭SELinux,我的电脑就是在这一步执行以后的重新启动中虚拟机崩溃,当然前面也有崩溃的情况,但是到了这一步就是100%,但是由于selinux是安全增强型linux系统,它是一个linux内核模块,也是linux的一个安全子系统。selinux的主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则),如果不把它关闭掉,接下来的下载安装就很难继续下去。关闭SELinux,需要的命令如下
getenforce
sed -i ‘s/^SELINUX=./SELINUX=disabled/’ /etc/selinux/config
setenforce 0
getenforce
完成命令执行以后,重新启动虚拟机。
重新启动完成以后,配置主机名和/etc/hosts文件
hostnamectl set-hostname test
Hostname
重新打开终端窗口,用root执行命令,在/etc/hosts文件中添加一行内容
cat >>/etc/hosts <<EOF
192.168.100.91 test
EOF
执行命令完成主机名和文件配置。
配置库搜索路径
cat>> /etc/profile<<EOF
export LD_LIBRARY_PATH=/opt/software/openGauss/script/gspylib/clib:$LD_LIBRARY_PATH
EOF
完成搜索路径配置以后 配置网络参数
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
设置root用户远程登陆
sed -i 's/^#Banner .
/Banner none/’ /etc/ssh/sshd_config
sed -i 's/^#PermitRootLogin ./PermitRootLogin yes/’ /etc/ssh/sshd_config
systemctl restart sshd
文件系统参数、系统支持的最大进程数
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
安装python3.6
yum install -y openssl*
yum install -y python3*
python3 -V
完成安装以后,将虚拟机重新启动,然后创建存放opengauss数据库安装包的目录,之后下载opengauss DBMS介质,配置filezilla连接centos服务器。
配置filezilla是重点,因为你需要先确认网卡ip地址,在终端中输入ifconfig确认自己的ip地址是不是和本机中命令行中输入的ipconfig地址相同,如果不同的话,后面出现的问题就会和我一样。后面会有,在此不赘述。
如此输入:

在弹出的界面中把“更新该主机的缓存密钥”打上对勾使得filezilla信任该密钥。之后选择站点输入/opt/software/openGauss,就可以完成介质的上传了。这一步曾经出现过一些尴尬的问题,后面会提到。
在传输完成以后,进入虚拟机,把openGauss安装包解压
cd /opt/software/openGauss
tar xf openGauss-1.0.1-CentOS-64bit.tar.gz
接下来使用root用户,执行下面的命令以创建XML安装配置文件
cat > clusterconfig.xml<<EOF

<?xml version="1.0" encoding="UTF-8"?>

EOF 随后检查环境变量LD_LIBRARY_PATH echo $LD_LIBRARY_PATH 这步必须要注意,只有出现/opt/software/openGauss/script/gspylib/clib: 如果没有这个环境变量,是会安装失败的,一旦发现没有环境变量就要输入 export LD_LIBRARY_PATH=/opt/software/openGauss/script/gspylib/clib:$LD_LIBRARY_PATH 。这条命令是在不影响原本环境变量的基础上增加一个环境变量,加好了就行了 接下来临时关闭centos的交换区 :swapoff -a free -g。 安装前的交互式检查 python3 /opt/software/openGauss/script/gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/clusterconfig.xml

/opt/software/openGauss/script/gs_checkos -i A -h test --detail
之后修改安装权限
cd /opt/software/openGauss/script
chmod -R 755 /opt/software/openGauss/script
chown -R omm:dbgrp /opt/software/openGauss/script
开始安装
su - omm
cd /opt/software/openGauss/script
gs_install -X /opt/software/openGauss/clusterconfig.xml
–gsinit-parameter="–encoding=UTF8"
–dn-guc=“max_connections=10”
–dn-guc=“max_process_memory=3GB”
–dn-guc=“shared_buffers=128MB”
–dn-guc=“bulk_write_ring_size=128MB”
–dn-guc=“cstore_buffers=16MB”
这里在后面出现了不小的问题,在后面会有附图。
重新打开CentOS的交换区
free -g
swapon -a
free -g
首次登录数据库
gsql -d postgres -p 26000 -r
ALTER ROLE omm IDENTIFIED BY ‘[email protected]’ REPLACE ‘[email protected]’;
show server_version;
SELECT version();
help
q

三、安装出现的问题以及解决方法
三个主要问题:
问题1,虚拟机崩溃问题:
如图所示,当虚拟机打开的过程中,出现长时间加载,加载结束以后并未打开图形界面,而是直接弹出了这个界面:

这个问题一般出现在虚拟机完成安装,但是在打开虚拟机删除toBeDeleted以后,到挂壁SELinux重启以前,这段过程中,在关闭虚拟机后重启,就会出现这种情况,这种情况出现的原因是因为虚拟机的图形界面崩溃,或者是用户无权限,如果是前者,我一般都会直接将虚拟机删除,然后重新进行安装;而后者的话。那么就可以通过在该界面输入密码以后,输入指令vi /etc/inittab可以看到id:3:initdefault: 纯文本界面运行等级,把它改为id:5:initdefault: 图形界面运行等级,就可以解决该问题。
问题2:在filezilla传输opengauss安装包的时候出现问题

那么在主机上ping虚拟机ip地址一下,看看能不能ping到

不能ping到,看起来是ip地址出了问题:

虚拟机终端输入ifconfig,查询虚拟机ip地址,主机命令行输入ipconfig

现在改过来了,当时是不一样的,把他们的网段改到一致,然后再重新传输:

这一次传输成功了。
问题3:在安装openGauss DBMS的时候,安装到gs_install -X /opt/software/openGauss/clusterconfig.xml 的时候失败,经过检查,发现环境变量没有任何问题,前面的步骤也没什么问题,但是就是会出错,比如:

告知命令找不到,此问题比较复杂,我自己也搞得模棱两可,最后运气好成功了。
首先寻找ge_install是否存在,输入命令./ge_install,忽略一大堆无用显示以后,注意到这个问题

猜测与PGhost变量的缺失有一定关系,输入cd /opt进入opt,输入ls寻找:
我的电脑是这么显示的

代表PGhost实际上是存在的,只不过找不到而已。
将原命令修改为 ./gs_install -X /opt/software/openGauss/clusterconfig.xml <br>> --gsinit-parameter="–encoding=UTF8" <br>> --dn-guc=“max_connections=10” <br>> --dn-guc=“max_process_memory=3GB” <br>> --dn-guc=“shared_buffers=128MB” <br>> --dn-guc=“bulk_write_ring_size=128MB” <br>> --dn-guc="cstore_buffers=16MB"
成功运行,任务完成。
到这里为止,opengauss数据库的安装任务完成。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>