近期很多的项目由于信创要求使用一些国产的数据库,比如OpenGauss。OpenGuass是华为高斯DB的开源版,内核还是PostgreSQL,商业版是收费的。这里记录一下是如何安装部署 的。
官方中文文档
官方下载地址
部署要求
- 操作系统要求
- ARM:
- openEuler 20.3LTS
- 麒麟V10
- Asianux 7.5
- X86:
- openEuler 20.3LTS
- CentOS 7.6
- Asianux 7.6
我使用的使用是Centos7.4
操作系统环境依赖安装
- 一般以来
yum repolist
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel bzip2
- python3环境部署
OpenGauss的部署依赖于Python3的环境,我使用的Python3.6.10。下载地址
mkdir -p /opt/python3 #(将python-3.6.10.tgz放入)
python -V #查看当前python版本,centos默认为2.7版本
cd /opt/python3
tar xf Python-3.6.10.tgz #解压软件包
cd Python-3.6.10 #进入文件目录
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC #若报错就是没有安装gcc,yum install gcc(yum源配置里我加了gcc了)
make
make install #(进行python3的安装)
cd /usr/local
ll #(该目录下出现python3即安装完毕)
unlink /usr/bin/python
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python #(创建软连接)
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip
cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64
python -V #(此时python版本变为3.6)
yum repolist
#(更改了默认python版本的话,yum命令就用不了,因为yum文件是按照老版本的python2.7编译执行的,所以要将yum文件里面的第一行注释给定义到老版本的python2
vi /usr/bin/yum
#修改第一行python为python2
#此时yum恢复
yum repolist
创建文件夹
注意需要创建两个文件夹,一个用于放置部署文件,另一个空置
mkdir/home/openGauss # 用于自动化部署到此位置
mkdir /home/open # 后续安装文件解压到此目录,xml上传至此目录
创建用户组
创建OpenGauss默认的用户组,并给与这两个文件夹的权限
sudo groupadd dbgrp
sudo chgrp -R dbgrp /home/openGauss
sudo chgrp -R dbgrp /home/open
下载安装包
官方下载地址
注意只支持x86_64架构Centos系统
解压安装包
tar xvf /home/openGauss/openGauss-5.0.1-CentOS-64bit-all.tar.gz -C /home/open
cd /home/open
tar xvf openGauss-5.0.1-CentOS-64bit-om.tar.gz # 解压脚本工具
配置xml文件
配置之前,需要将服务器名称改了与xml中的一致。
hostnamectl set-hostname opengauss1
高斯数据库的部署,主要依赖与xml配置文件。我是参考官网文档配置的单实例,多实例的官网也有说明,注意替换自己的ip与服务器名称。
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="dbCluster" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="opengauss1" />
<!-- 数据库安装目录-->
<PARAM name="gaussdbAppPath" value="/home/openGaussGauss/app" />
<!-- 日志目录-->
<PARAM name="gaussdbLogPath" value="/home/openGaussGauss/log" />
<!-- 临时文件目录-->
<PARAM name="tmpMppdbPath" value="/home/openGauss/tmp" />
<!-- 数据库工具目录-->
<PARAM name="gaussdbToolPath" value="/home/openGauss/om" />
<!-- 数据库core文件目录-->
<PARAM name="corePath" value="/home/openGauss/corefile" />
<!-- 节点IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.0.14"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="node1_hostname">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="opengauss1"/>
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.14"/>
<PARAM name="sshIp1" value="192.168.0.14"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="15400"/>
<PARAM name="dataNode1" value="/home/openGauss/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
将xml保存为clusterconfig.xml,并上传至/home/open
执行预安装
cd /home/open/script/
./gs_preinstall -U omm -G dbgrp -X /home/open/clusterconfig.xml
注意安装过程中,会提示创建omm用户,让设置用户的密码。
一般都是会报python、或者文件权限的错误
正式安装
预安装成功后,最好再给一遍权限
chmod -R 775 /home/open
chmod -R 777 /home/openGauss
切换到omm用户,正式安装,安装过程中,会让设置一个长度不低于8位的密码
su omm
cd /home/open/script
./gs_install -X ../clusterconfig.xml
gs_om -t start # 启动数据库
gs_om -t status # 查看数据库状态
gs_om -t status --detail # 查看详细数据库状态
gs_om -t stop # 关闭数据库
最后查看安装文件,发现里面很多还都是postgresql的原文件