MatrixDB部署

Pigsty可用于部署与监控MatrixDB(等于Greenplum 7+时序数据库)

因为目前MatrixDB使用的是PostgreSQL 12的内核,而原生Greenplum仍然使用9.6内核,因此优先使用MatrixDB替代Greenplum实现,后续将添加原生的Greenplum支持。

实体概念模型

MatrixDB在逻辑上由两部分组成,Master与Segments,两者均由PostgreSQL实例组成,实例分为四类:Master/Standby/Primary/Mirror

  • Master为用户直接接触的访问端点,用于承接查询,一套MatrixDB部署仅有一个,通常使用独立节点部署。
  • Standby是Master实例的物理从库,用于当Master故障时顶替,是可选的组件,通常也使用独立节点部署。
  • 一套MatrixDB部署通常有多个Segment,每个Segment通常由一个必选的 primary 实例与一个 可选的 mirror 实例组成。
  • Segment的primary负责实际存储与计算,mirror通常不承担读写流量,当primary宕机时顶替primary,通常与primary分布在不同节点上。
  • Segment的primary与mirror分布由MatrixDB安装向导决定,在集群的Segments节点上通常可能存在有多个不同的Segment实例

部署惯例

  • Master集群 (master/standby) (gp_role = master) 构成一个PostgreSQL集群,通常命名包含mdw,如mx-mdw
  • 每个Segment (primary/mirror) (gp_role = segment) 构成一个PostgreSQL集群,通常集群命名包含seg,如 mx-seg1, mx-seg2
  • 用户应当显式为集群节点命名,例如 mx-sdw-1, mx-sdw-2, …

下载软件

MatrixDB & Greenplum 的RPM包并不是标准Pigsty部署的一部分,因此不会放入默认的pkg.tgz中。 MatrixDB & Greenplum 的RPM包及其完整依赖将打包为一个单独的离线软件包 matrix.tgz。 您可以向Pigsty元节点上添加新的matrix源。

# 下载地址(Github):https://github.com/Vonng/pigsty/releases/download/v1.5.1/matrix.tgz
# 下载地址(China CDN):http://download.pigsty.cc/v1.5.1/matrix.tgz
# 下载脚本,在元节点上,pigsty目录下,直接使用 download matrix 下载并解压
./download matrix

该命令会创建一个 /www/matrix.repo 文件,默认情况下,您可以访问http://pigsty/matrix.repo获取该Repo,该Repo文件指向 http://pigsty/matrix目录。

配置

MatrixDB / Greenplum 的安装将复用 PGSQL 任务与配置,专属配置参数为 gp_rolepg_instances

配置文件pigsty-mxdb.yml 给出了一个在四节点沙箱环境部署MatrixDB的样例。

使用 `configure -m mxdb`,将自动使用该配置文件作为配置模板。
./configure -m mxdb

此配置文件中 node_repo_local_urls添加了新Yum源地址,http://pigsty/matrix.repo 确保所有节点都可以访问Matrix Repo。

开始部署

在四节点沙箱环境中部署MatrixDB,注意,默认将使用DBSU mxadmin:mxadmin 作为监控用户名与密码

# 如果您准备在meta节点上部署 MatrixDB Master,添加no_cmdb选项,否则正常安装即可。
./infra.yml -e no_cmdb=true   

# 配置所有用于安装MatrixDB的节点
./nodes.yml

# 在上述节点上安装MatrixDB
./pigsty-matrixdb.yml

安装完成后,您需要通过MatrixDB 提供的WEB UI完成接下来的安装。打开 http://mx.pigsty 或访问 http://10.10.10.10:8240 ,填入 pigsty-matrixdb.yml 最后输出的初始用户密码进入安装向导。

按照提示依次添加MatrixDB的节点:10.10.10.11, 10.10.10.12, 10.10.10.13,点击确认安装并等待完成后,进行下一步。

因为监控默认使用 mxadmin:mxadmin 作为监控用户名密码,请填入mxadmin 或您自己的密码。

如果您在安装向导中指定了不同的密码, 请一并更改 pg_monitor_usernamepg_monitor_password 变量(如果您使用不同于dbsu的用户,通常还需要在所有实例上配置额外的HBA)。

请注意,目前MatrixDB / Greenplum 在节点上分配 Segment的逻辑并不确定。当初始化完成后,您可以修改 pg_instances 中Segment实例的定义,并重新部署监控以反映真实拓扑。

收尾工作

最后,在Greenplum/MatrixDB Master节点上手工执行以下命令,允许监控组件访问从库,并重启生效。

sudo su - mxadmin
psql postgres -c "ALTER SYSTEM SET hot_standby = on;"  # 配置 hot_standby=on 以允许从库查询
gpconfig -c hot_standby -v on -m on                    # 配置 hot_standby=on 以允许从库查询
gpstop -a -r -M immediate                              # 立即重启MatrixDB以生效

然后,您便可以从监控系统中,观察到所有MatrixDB集群。MatrixDB Dashboard 提供了关于数据仓库的整体监控概览。

可选项目

您可以将 MatrixDB 的 Master集群视作一个普通 PostgreSQL 集群,使用 pgsql-createdbpgsql-createuser 创建业务数据库与用户。

bin/createuser mx-mdw  dbuser_monitor   # 在Master主库上创建监控用户
bin/createdb   mx-mdw  matrixmgr        # 在Master主库上创建监控专用数据库
bin/createdb   mx-mdw  meta             # 在Master主库上创建新数据库

最后修改 2022-05-18