赞
踩
这是一篇基于华为云ECS+CentOS 7的openGauss数据库安装实践。
目录
安装数据库前先要有已安装centOS 7.6的服务器+数据库安装包。
- [root@pekphisprb70593 ~]# cat /etc/os-release
- NAME="CentOS Linux"
- VERSION="7 (Core)"
- ID="centos"
- ID_LIKE="rhel fedora"
- VERSION_ID="7"
- PRETTY_NAME="CentOS Linux 7 (Core)"
- ANSI_COLOR="0;31"
- CPE_NAME="cpe:/o:centos:centos:7"
- HOME_URL="https://www.centos.org/"
- BUG_REPORT_URL="https://bugs.centos.org/"
-
- CENTOS_MANTISBT_PROJECT="CentOS-7"
- CENTOS_MANTISBT_PROJECT_VERSION="7"
- REDHAT_SUPPORT_PRODUCT="centos"
- REDHAT_SUPPORT_PRODUCT_VERSION="7"
centos自带的python是python2,不符合官方文档要求。(实际也确实不能支撑openGauss安装,我已经试过了)
而且官方文档只写了要求有python3,并没有详细的说明要怎么装,所以就对一些新手不太友好。
centos要求python只能是3.6.X,而不是及以上,也就是不能用3.7。我这里用的3.6.15。Python3安装还依赖zlib。所以无论在线还是离线安装都需要先把zlib相关安装完成。
如果服务器可以直接连到互联网yum源或者自己公司的yum源 ,就可以参考在线版安装。否则使用离线安装。
这里要求服务器可以直接连到互联网用yum 或者wget,或者配置了代理。
1.安装依赖包,有些可能系统自带,没关系。
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
完成后会提示“Complete!”
2.下载python安装包
wget https://www.python.org/downloads/release/python-3615/
因为下载很慢,也可以先去python官网 https://www.python.org/downloads/release/python-3615/下载一个新版本到本地再上传到服务器。
解压然后安装python3.6。make编译时间比较长,耐心等待,满屏的输出陪着你。
- tar -zxvf Python-3.6.15.tgz
- cd Python-3.6.15/
- ./configure --prefix=/usr/local/python3 --enable-shared
- make
- make install
最后提示Successfully就说明安装成功了。
但是,注意此时还需要设置下OS上python的软连接。其中,/usr/local/python3/需要替换为你自己python安装包的实际路径,就是上面./configure的路径。如果是按照我的指导做的就不用改。
- ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
- ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
- ln -s /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64/
- export LD_LIBRARY_PATH=/usr/local/python3/lib:$LD_LIBRARY_PATH
到这里在centos上安装python3.6就完成了。
由于有时需要在公司内网安装,服务器直接下载不方便,什么 yum 、wget 统统不可用。只能去官网下载软件到windows然后上传linux后安装。
- [root@pekphisprb70593 software]# rpm -qa|grep zlib
- zlib-1.2.7-18.el7.x86_64
所以我机器上自带了1.2.7版本,需要安装1.2.7版本的zlib-devel。自己去搜一个对应版本的上传到服务器上。
rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
剩下的就是按照在线版中说的,将python安装包下载本地后上传,执行与在线版相同的安装和配置动作即可。
目前仅支持在防火墙关闭的状态下进行安装。
1.修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。使用VIM打开config文件。
vi /etc/selinux/config
查看“SELINUX”的值是否为“disabled”。是的话直接下一步。不是的话修改“SELINUX”的值“disabled”,执行:wq保存并退出修改,然后reboot重启。
2.检查防火墙是否关闭。若防火墙状态显示为inactive (dead),直接下一步。
systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭,请关闭防火墙。
- systemctl disable firewalld.service
- systemctl stop firewalld.service
3.将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=en_US.UTF-8”(也可以设置成GBK,看你习惯用啥)。
4.使用swapoff -a命令将交换内存关闭。
5.修改/etc/systemd/logind.conf的“RemoveIPC”的值“no”,前面的#也删掉。
6.重新加载参数并检查。
- [root@pekphisprb70594 ~]# systemctl daemon-reload
- [root@pekphisprb70594 ~]# systemctl restart systemd-logind
7.执行ifconfig命令查询服务器的网卡名称。默认一般就是对的。
如下图所示,服务器IP为10.244.53.173,则该服务器的网卡名称为eth0。对于X86,官方文档MTU值推荐1500。
设置root用户远程登录
1.vim打开配置文件/etc/ssh/sshd_config。
2.查看PermitRootLogin配置是否为yes,表示允许用户远程登录。
3.在Banner XXX 前面加 #,注释掉欢迎语。
4.重启sshd服务。
[root@pekphisprb70596 openGauss]# systemctl restart sshd.service
在其他服务器上执行上面的步骤。
从安装文档示例中,把主机名pekphisprb70593和IP 10.x.x.x替换成自己实际使用的值。保存到文件,文件名为cluster_config.xml。
下面是修改后的内容。注意编码格式,我用notepad++ 可以看到编码格式为UTF-8。新手建议Windows上修改完再上传服务器。
- <?xml version="1.0" encoding="UTF-8"?>
- <ROOT>
- <!-- openGauss整体信息 -->
- <CLUSTER>
- <PARAM name="clusterName" value="opengSingle" />
- <PARAM name="nodeNames" value="pekphisprb70593" />
- <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="backIp1s" value="10.x.x.x"/>
-
- </CLUSTER>
- <!-- 每台服务器上的节点部署信息 -->
- <DEVICELIST>
- <!-- node1上的节点部署信息 -->
- <DEVICE sn="pekphisprb70593">
- <PARAM name="name" value="pekphisprb70593"/>
- <PARAM name="azName" value="AZ1"/>
- <PARAM name="azPriority" value="1"/>
- <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
- <PARAM name="backIp1" value="10.x.x.x"/>
- <PARAM name="sshIp1" value="10.x.x.x"/>
-
- <!--dbnode-->
- <PARAM name="dataNum" value="1"/>
- <PARAM name="dataPortBase" value="15400"/>
- <PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>
- <PARAM name="dataNode1_syncNum" value="0"/>
- </DEVICE>
- </DEVICELIST>
- </ROOT>
这一步基本上就是按照产品文档进行安装的了,没啥好说的。
1.以root用户登录待安装openGauss的任意主机,并按规划创建存放安装包的目录。
- mkdir -p /opt/software/openGauss
- chmod 755 -R /opt/software
2.将安装包“openGauss-3.0.0-CentOS-64bit-all.tar.gz”和配置文件“cluster_config.xml”都放到上一步所创建的/opt/software/openGauss目录中。
3.解压安装包。
- cd /opt/software/openGauss
- tar -zxvf openGauss-3.0.0-CentOS-64bit-all.tar.gz
- tar -zxvf openGauss-3.0.0-CentOS-64bit-om.tar.gz
4.进入script执行预安装命令。我采用的是交互式,所以需要在中间提示的时候输入密码。安装时长大概一两分钟。
- [root@opengauss1 openGauss]# cd script/
- [root@opengauss1 script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
- Parsing the configuration file.
- Successfully parsed the configuration file.
- Installing the tools on the local node.
- Successfully installed the tools on the local node.
- Are you sure you want to create trust for root (yes/no)?yes
- Please enter password for root
- Password:
- Successfully created SSH trust for the root permission user.
- Setting host ip env
- ...
- ...
- Fixing server package owner.
- Setting finish flag.
- Successfully set finish flag.
- Preinstallation succeeded.
5.切换到omm用户,使用gs_install安装openGauss。中间根据提示输入要设置的数据库密码,大概两三分钟的样子。
- [root@pekphisprb70593 script]# su - omm
- Last login: Wed Jul 6 09:17:01 CST 2022
- [omm@pekphisprb70593 ~]$ gs_install -X /opt/software/openGauss/cluster_config.xml
- Parsing the configuration file.
- Check preinstall on every node.
- Successfully checked preinstall on every node.
- Creating the backup directory.
- Successfully created the backup directory.
- begin deploy..
- Installing the cluster.
- ...
- Please enter password for database:
- Please repeat for database:
- ...
- Configuration is completed.
- Successfully started cluster.
- Successfully installed application.
- end deploy..
6.检查下数据库状态,state都是Normal就可以。
[omm@opengauss1 dn]$ gs_om -t status --detail
7.现在试一下连接。
- [omm@opengauss1 om]$ gsql -d postgres -p 15400
- gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:19 commit 0 last mr )
- Non-SSL connection (SSL connection is recommended when requiring high-security)
- Type "help" for help.
-
- openGauss=# CREATE DATABASE mydb WITH ENCODING 'GBK' template = template0;
- CREATE DATABASE
- openGauss=#
- openGauss=# \q
安装到此结束。
1.Python安装 make install提示zipimport.ZipImportError:can't decompress data;zlib not available。
- tar -zxvf Python-3.6.15.tgz
- cd Python-3.6.15/
- ./configure prefix=/usr/local/python3
- make
- make install
然后这里报错了,提示zlib没有,解压不了数据。
这种一般是没有装zlib-devel。可以用yum的话执行 yum -y install zlib-devel 装一下。
只能离线装的话就按照本文离线版安装章节解决下。
PS:这里我搜了很多资料,因为没有配置yum,只能离线方式安装。开始按照zlib-xxx.tar.gz安装然后编译,结果安装python一直提示上面的错,还以为是zlib配置的不对,后来尝试了zlib-devel的其他版本也不可。遇到相同问题的人避开这个坑。
2.openGauss执行./preinstall时报错提示“Unable to import module: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory.”是python配置没弄好。
解决办法:
找到这个文件,写到python配置文件里。
- [root@pekphisprb70593 script]# find / -name libpython3.6m.so.1.0
- /usr/local/python3/lib/libpython3.6m.so.1.0
- /opt/Python-3.6.15/libpython3.6m.so.1.0
- [root@pekphisprb70593 script]# cd /etc/ld.so.conf.d/
在这个路径下新建python3.conf,里面写入libpython3.6m.so.1.0的上一层目录,我这里找到两条,写一条就好了,比如/usr/local/python3/lib,然后保存退出。
执行下面这个重新加载下。
[root@pekphisprb70593 ld.so.conf.d]# ldconfig
再重新执行步骤4 ./gs_preinstall那条命令就可以了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。