1 关于MogDB
MogDB是EnMotech openGauss DataBase Enterprise Edition的缩写,是云和恩墨基于openGauss开源数据库进行定制、推出的企业发行版。它将围绕高可用、安全、自动化运维、数据库一体机和SQL审核优化等企业需求,解决企业用户落地。其核心价值是易用性、高性能、高可用等和全天候的企业支持。
官网文档:https://docs.mogdb.io/zh/mogdb/v3.1/manual-installation
MogDB的安装方式有:容器化安装、PTK安装、OM安装和手动安装,后两种都是离线安装,这里记录手动安装的过程(说实话不推荐这种安装方式,会缺少组件)。
2 装备工作
2.1 准备系统环境
目前MogDB仅支持在Linux系统中运行,所以我使用CentOS 7来进行安装。
根据官网文档,操作系统需要满足:
2.1.1 检查CPU是否支持指令集
检查CPU是否支持指令集rdtscp和bmi2
执行命令:
lscpu | grep rdtscp
lscpu | grep bmi2
会显示支持的指令集:
2.1.2 安装依赖
yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel libxml2-devel patch redhat-lsb-core unzip gcc gcc-c++ perl openssl-devel libffi-devel libtool zlib-devel
2.1.3 安装Python3.6
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
mkdir -p /usr/local/python3
tar -zxvf Python-3.6.5.tgz
cd Python-3.6.5
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC && make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
2.2 安装包准备
安装包下载:https://www.mogdb.io/downloads/allDownload。
下载安装包:
下载后进行解压,提取MogDB-3.1.0-CentOS-64bit.tar.gz和MogDB-3.1.0-CentOS-64bit-tools.tar.gz
上传到服务器的/opt目录中。
3 手动安装MogDB
3.1 关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce=0
sed -i '/^SELINUX=/c'SELINUX=disabled /etc/selinux/config
3.2 安装依赖包
yum install libaio-devel -y
3.3 创建用户组
创建一个组dbgrp和用户omm;创建目录/opt/mogdb,在目录中创建文件夹software和data;将目录权限给组用户
groupadd dbgrp -g 2000
useradd omm -g 2000 -u 2000
echo "Enmo@123" | passwd --stdin omm
mkdir -p /opt/mogdb/software
mkdir -p /opt/mogdb/data
mkdir -p /opt/mogdb/tools
chown -R omm:dbgrp /opt
3.4 上传并解压安装包
切换到omm用户,将MogDB-3.1.0-CentOS-64bit.tar.gz解压到到/opt/mogdb/software文件夹中:
[root@localhost opt]# chown omm:dbgrp MogDB-3.1.0-CentOS-64bit.tar.gz
[root@localhost opt]# chown omm:dbgrp MogDB-3.1.0-CentOS-64bit-tools.tar.gz
[root@localhost opt]# su - omm
[omm@localhost ~]$ cd /opt/
[omm@localhost opt]$ tar -xf MogDB-3.1.0-CentOS-64bit.tar.gz
[omm@localhost opt]$ tar -xf MogDB-3.1.0-CentOS-64bit-tools.tar.gz
[omm@localhost opt]$ cp -r MogDB-3.1.0-CentOS-64bit/* mogdb/software/
[omm@localhost opt]$ cp -r MogDB-3.1.0-CentOS-64bit-tools/* mogdb/tools/
3.5 初始化数据库(单机)
3.5.1 配置环境变量
运行:
echo "export GAUSSHOME=/opt/mogdb/software" >> /home/omm/.bashrc && \
echo "export PATH=\$GAUSSHOME/bin:\$PATH " >> /home/omm/.bashrc && \
echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> /home/omm/.bashrc
source /home/omm/.bashrc
3.5.2 init数据库
gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=Enmo@123 --encoding=UTF-8 --locale=en_US.UTF-8
3.5.3 修改数据库参数
echo "port=26000" >> /opt/mogdb/data/postgresql.conf
echo "listen_addresses = '0.0.0.0'" >> /opt/mogdb/data/postgresql.conf
echo "password_encryption_type = 0" >> /opt/mogdb/data/postgresql.conf
echo "log_directory = 'pg_log'" >> /opt/mogdb/data/postgresql.conf
echo "remote_read_mode=non_authentication" >> /opt/mogdb/data/postgresql.conf
echo "host all all 0.0.0.0/0 md5" >> /opt/mogdb/data/pg_hba.conf
3.5.4 启动数据库
[omm@localhost opt]$ gs_ctl start -D /opt/mogdb/data
[2023-02-17 16:56:28.613][29830][][gs_ctl]: gs_ctl started,datadir is /opt/mogdb/data
[2023-02-17 16:56:28.655][29830][][gs_ctl]: waiting for server to start...
.0 LOG: [Alarm Module]can not read GAUSS_WARNING_TYPE env.
...
[2023-02-17 16:56:29.670][29830][][gs_ctl]: done
[2023-02-17 16:56:29.670][29830][][gs_ctl]: server started (/opt/mogdb/data)
[omm@localhost opt]$
可以看到最后一行提示启动成功了。
3.5.5 启动时遇到的问题
启动报错:
[omm@localhost ~]$ gs_ctl start -D /opt/mogdb/data -Z single_node -l logfile [2023-02-17 17:00:51.724][34542][][gs_ctl]: gs_ctl started,datadir is /opt/mogdb/data
[2023-02-17 17:00:51.841][34542][][gs_ctl]: waiting for server to start...
.[2023-02-17 17:00:52.845][34542][][gs_ctl]: gaussDB state is Coredump
[2023-02-17 17:00:52.845][34542][][gs_ctl]: stopped waiting
[2023-02-17 17:00:52.845][34542][][gs_ctl]: could not start server
Examine the log output.
[omm@localhost ~]$
错误原因:gaussDB state is Coredump,是因为系统不支持rdtscp指令集。
解决办法:添加指令集或者换支持指令集的电脑,VMware在安装时可以给虚拟机添加指令集:
4 安装gsql客户端进行本地连接
4.1 安装gsql客户端
设置环境变量:
vi ~/.bashrc
添加变量:
export PATH=/opt/mogdb/tools/bin:$PATH
export LD_LIBRARY_PATH=/opt/mogdb/tools/lib:$LD_LIBRARY_PATH
更新变量:
source ~/.bashrc
4.2 使用gsql进行本地连接
以操作系统用户omm登录数据库服务器,进行连接:
gsql -d postgres -p 26000
其中postgres为需要连接的数据库名称,26000为数据库主节点的端口号。请根据实际情况替换。
登录后如下:
gsql ((MogDB 3.1.0 build 3ddb00f7) compiled at 2022-12-28 22:27:13 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
MogDB=#
omm用户是管理员用户,因此系统显示"postgres=#“。若使用普通用户身份登录和连接数据库,系统显示"postgres=>”。
"Non-SSL connection"表示未使用SSL方式连接数据库。如果需要高安全性时,请使用SSL连接。
4.3 本地退出数据库
postgres=# \q
好了就先记录这么多,因为这种安装方式是缺少om组件的,还没找到怎么安装,我打算去试试OM安装。