本文描述YMatrix 5.1版本的安装过程,由于使用的操作系统为CentOS 7,具体步骤参考官网https://www.ymatrix.cn/doc/5.0/install/mx5_cluster/mx5_cluster_centos7
下载地址:https://www.ymatrix.cn/download
注:需填写邮箱、手机等相关信息
填写邮箱申请后,邮箱会收到一封邮件,根据邮件内容选择需要下载的版本包,这里我们选择下载最新的YMatrix5-5.1.2版本。
注:以下操作必须在所有节点执行
使用rz命令(需安装lrzsz包)或winscp等上传工具将下载的RPM包上传至将要安装数据库的每个节点。
由于YMatrix需要依赖Python 3.6,在安装数据库包之前,需提前安装相应的依赖包如下,
$ sudo yum install centos-release-scl
$ sudo yum install rh-python36
$ sudo scl enable rh-python36 bash
$ sudo systemctl stop firewalld.service
$ sudo systemctl disable firewalld.service
编辑 /etc/selinux/config,将 SELINUX 的值设为 disabled
$ sudo sed s/^SELINUX=.*$/SELINUX=disabled/ -i /etc/selinux/config
$ sudo setenforce 0
如果待安装节点机器名不正确,请正确配置机器名(所有节点)
hostnamectl set-hostname test47
打开/etc/hosts文件,配置待安装节点的机器名与IP的映射,如
[root@test47 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.15.40.47 test47.mpp test47
10.15.40.54 test54.mpp test54
10.15.40.55 test55.mpp test55
10.15.40.56 test56.mpp test56
使用 root 用户或 sudo 权限执行下述 yum 命令安装数据库 RPM 包时,系统依赖库会一并自动安装。缺省会安装在 /opt/ymatrix/matrixdb5 目录下
$ sudo yum install matrixdb5-5.1.2+community-1.el7.x86_64.rpm
安装成功后,会自动启动 supervisord、MXUI 进程。这些后台进程用于提供图形化操作界面及进程管理服务。 如果你有配置端口的需求,在安装完 RPM 包后修改 /etc/matrixdb5/defaults.conf 文件进行配置。此操作只在主节点(Master)上进行即可。
通过以下命令可以查看supervisord和MXUI是否正常启动,
[root@test47 liuyuan]# ps -ef | grep ymatrix
root 9452 1 0 13:02 ? 00:00:00 /opt/ymatrix/matrixdb5/bin/supervisord -c /etc/matrixdb5/supervisor.conf
root 9467 9452 0 13:02 ? 00:00:00 /opt/ymatrix/matrixdb5/bin/mxui
root 10231 10068 0 13:04 pts/2 00:00:00 grep --color=auto ymatrix
注:远程图形化部署需要服务器 8240 和 4617 端口可以访问。图形化界面服务由 MXUI 进程提供。
如果mxui进程已经正常启动,现在便可以通过浏览器打开MXUI界面,地址如下:
http://<IP>:8240/
我们选择第一台节点的IP打开(原则上任意一台机器应该都是可以的),
打开界面后,需要登录页面,填写超级用户密码,使用 more /etc/matrixdb5/auth.conf 命令查看即可。
登录成功后跳转到第二个页面,选择部署类型,这里我们选择“多节点部署”,然后点击“开始部署”
注:如果是安装单节点,选择“单节点部署”
开始部署的第一个步骤是”添加节点“,如下图所示
我们点击右上角的”添加节点“按钮,然后输出要添加的节点,注意,这里当前节点已经自动添加上了。
节点添加成功后,将会显示以下状态页面。
点击下一步,配置集群参数,“数据镜像”决定了集群数据节点是否包含备份镜像,在生产环境中建议启用,这样集群才是高可用的。系统自动推荐空间最大的磁盘和与系统资源相匹配的 segment 数目,可根据具体使用场景调整。配置好的集群结构可以通过示意图查看。确认后点击“下一步”。
再下一步就是设置存储路径,如下图所示,这里要设置每个节点的存储路径,数据节点可以选择多块盘,管理节点只能选择一块盘。
再点击下一步,该步骤会列出来之前的操作的完成配置参数,确认无误后,点击“执行部署”。
如果一切顺利,后续动作将如下图所示的过程自动化完成,无须人工干预。
以上数据库就已经部署成功了,我们也可以查看详细的YMatrix环境和相关监控图表。
YMatrix 缺省安装支持远程连接,如果在安装过程中没有勾选“允许远程连接至数据库”,请手工修改 $MASTER_DATA_DIRECTORY/pg_hba.conf 文件添加类似这样一行,表示允许来自任何 IP 的访问所有数据库的用户通过密码认证连接,可以根据实际需要限定 IP 范围或者数据库名称以减少安全风险:
host all all 0.0.0.0/0 md5
完成这些修改后,需要执行下述命令让数据库重新加载 pg_hba.conf 配置文件:
$ mxstop -u
YMatrix 的启动、停止、重启、状态查看可以通过下述命令分别完成:
$ mxstart -a //停止集群。(此模式下,如果有会话链接,关闭数据库会卡住)
$ mxstop -af //快速关闭集群
$ mxstop -arf //重启集群。等待当前正在执行的 SQL 语句结束(此模式下,如果有会话链接,关闭数据库会卡住)
$ mxstate -s //查看集群状态
完成完成后,我们可以在Linux终端切换数据库用户并使用psql连接到数据库命令行,
[root@test47 ~]# su - mxadmin
Last login: Wed Sep 20 17:43:27 CST 2023 from 10.15.40.47 on pts/12
********** MatrixDB Administrator **********
The MatrixDB on 5432 is up for 16:11:25
Connect matrixdb with
psql postgres
********************************************
[mxadmin@test47 ~]$ psql
psql: error: could not connect to server: FATAL: database "mxadmin" does not exist
[mxadmin@test47 ~]$ psql postgres
psql (12)
Type "help" for help.
postgres=# \q
[mxadmin@test47 ~]$ psql postgres
psql (12)
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+---------+----------+------------+------------+---------------------
matrixmgr | mxadmin | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | mxadmin | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | mxadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/mxadmin +
| | | | | mxadmin=CTc/mxadmin
template1 | mxadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/mxadmin +
| | | | | mxadmin=CTc/mxadmin
(4 rows)
整个安装过程中还是比较顺利的,只是遇到了一个问题,是在添加节点的时候报以下错误,
根据截图所示,判断可能是因为节点网络不通,或者是4617端口不通导致,排查后发现并不存在网络或端口不通的现象。
后来发现原因是在添加节点之前,数据库的RPM安装包只装在了一个节点。其实在部署集群之前,需要提交把所有节点的数据库安装包都安装完成才行。