集群删除、卸载与重装
本文档描述了集群删除,及卸载、重装MatrixDB 4的步骤。以三个节点为例,主节点为 mdw,两个数据节点分别为 sdw1 和 sdw2。
进行操作前,请务必仔细阅读此条提示:
- 当你认为现有 MatrixDB 集群部署不合理,导致性能状态不佳,想要 将集群彻底删除,并重新初始化 为一个全新空白集群、重新部署集群架构时,你需要启用 “1 集群删除” ;
- 当你认为你已经不需要 MatrixDB 软件以及已有集群中的所有数据,想要 彻底删除原有集群及 MatrixDB 软件,你需要启用 “2 MatrixDB 卸载”;
- 如果你只是想要 升级、降级或重装 MatrixDB 软件,但不想失去任何原有数据,你需要启用 “3 MatrixDB 重装”;
注意!
1、2、3序号中的部分相互独立,根据上述提示选择其一即可,勿全部执行!
1 集群删除
注意!
· 此部分操作会删除 所有 数据库里的数据,且 不可恢复,操作前务必慎重思考。
· gpdeletesystem 工具只能在集群启动状态使用。
1.1 查询主节点数据目录
你可以使用以下语句来查询你的集群的主节点数据目录。
postgres=# SELECT * FROM gp_segment_configuration ORDER BY 1 ASC;
在我们的示例中,得到如下结果。可以知道,主节点 mdw 的数据存储目录为 “/home/mxdata_20220729105027/master/mxseg-1”。
dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir
------+---------+------+----------------+------+--------+------+----------+---------+---------------------------------
-----------
1 | -1 | p | p | n | u | 5433 | mdw | mdw | /home/mxdata_20220729105027/mast
er/mxseg-1
2 | 0 | p | p | s | u | 6000 | sdw1 | sdw1 | /home/mxdata_20220729105027/prim
ary/mxseg0
3 | 1 | p | p | s | u | 6001 | sdw1 | sdw1 | /home/mxdata_20220729105027/prim
ary/mxseg1
4 | 2 | p | p | s | u | 6000 | sdw2 | sdw2 | /home/mxdata_20220729105027/prim
ary/mxseg2
5 | 3 | p | p | s | u | 6001 | sdw2 | sdw2 | /home/mxdata_20220729105027/prim
ary/mxseg3
6 | 0 | m | m | s | u | 6002 | sdw2 | sdw2 | /home/mxdata_20220729105027/mirr
or/mxseg0
7 | 1 | m | m | s | u | 6003 | sdw2 | sdw2 | /home/mxdata_20220729105027/mirr
or/mxseg1
8 | 2 | m | m | s | u | 6003 | sdw1 | sdw1 | /home/mxdata_20220729105027/mirr
or/mxseg2
9 | 3 | m | m | s | u | 6002 | sdw1 | sdw1 | /home/mxdata_20220729105027/mirr
or/mxseg3
(9 rows)
然后通过元命令 \q 退出 psql 打开的终端。
postgres=# \q
1.2 删除集群
在 mxadmin 用户下,使用 gpdeletesystem 命令清理数据,删除集群。
[mxadmin@mdw ~]$ gpdeletesystem -d /home/mxdata_20220729105027/master/mxseg-1
1.3 集群重新初始化
在重新进行图形化界面初始化之前,你需要先清理两个配置文件来重置初始化环境。
1.3.1 删除 .matrixdb.env 文件
.matrixdb.env 是 MatrixDB 的环境变量配置文件。其中包含环境变量 PGPORT、MASTER_DATA_DIRECTORY、PGDATABASE。PGPORT 为客户端应用指定了数据库服务器的端口、MASTER_DATA_DIRECTORY 指的是由 gpinitsystem 在主节点数据目录位置创建的一个目录、PGDATABASE 指定了数据库名称,默认与用户名一致。 在 Master 上执行如下命令:
[mxadmin@mdw ~]$ rm ~/.matrixdb.env
1.3.2 删除 cluster.conf 文件
注意!
cluster.conf 文件内包含了已经部署的集群信息,禁止修改。
在普通用户下使用 root 权限删除 Master 上的 cluster.conf 文件。
[<用户名称>@mdw ~]$ sudo rm /etc/matrixdb/cluster.conf
1.4 重启服务
在普通用户下使用 root 权限重启服务,完成后便可以重新进入图形化界面初始化集群。
[<用户名称>@mdw ~]$ sudo systemctl restart matrixdb.supervisor.service
2 MatrixDB 卸载
注意!
以下所有命令需要在 root 权限下执行,你会借由此步骤彻底卸载 MatrixDB 软件,并彻底删除原有集群。
2.1 集群删除
你需要执行上文 “1.1 查询主节点数据目录”、”1.2 删除集群“。这一步骤会彻底删除所有集群的数据,且 不可恢复。
2.2 清理配置文件
你需要执行上文 “1.3.1 删除 .matrixdb.env 文件”、“1.3.2 删除 cluster.conf 文件”。这一步骤会手动清理掉集群环境变量配置文件及已部署集群的信息文件。
2.3 MatrixDB 卸载
这一步骤会彻底卸载 MatrixDB 软件。在普通用户下,在所有节点上使用 root 权限运行。
[<用户名称>@mdw ~]$ sudo yum remove -y matrixdb.x86_64
#or
[<用户名称>@mdw ~]$ sudo yum erase -y matrixdb.x86_64
其中 “matrixdb.x86_64” 是集群安装后的程序名,可以通过以下命令查询。
[<用户名称>@mdw ~]$ yum list installed | grep matrixdb
3 MatrixDB 重装
使用此部分的你可以放心,在 MatrixDB 4 大版本内卸载重装另一个(或同一个)小版本,是不会丢失集群数据的。例如, MatrixDB 4.5 升级到 MatrixDB 4.6; MatrixDB 4.6 降级到 MatrixDB 4.5;卸载 MatrixDB 4.5 又重装 MatrixDB 4.5。
注意!
MatrixDB 4 小版本升级也可以采用直接升级 rpm 包的方式,具体请见MatrixDB 4小版本升级 。
3.1 停止集群
首先,你需要做好升级、降级或重装前的准备,这一步是必要的,否则会阻碍卸载操作。在主节点上,通过元命令 \q 退出 psql 打开的终端。
postgres=# \q
示例中使用 fast 模式停止集群进程,如果你需要的话,也可以选择 smart 或 immediate 模式停止集群,下方表格说明了它们的区别。
[mxadmin@mdw ~]$ gpstop -a -M fast
gpstop 模式 | 参数 | 禁用新连接 | 等待进程运行完毕 | 是否是默认模式 |
---|---|---|---|---|
smart | -M smart | 是 | 是 | 是 |
fast | -M fast | 是 | 否,中断连接,事务回滚 | 否 |
immediate | -M immediate | 是 | 否,直接杀掉进程 | 否 |
3.2 MatrixDB 卸载
你需要执行上文 “2.3 MatrixDB 卸载”。 这一步骤会彻底卸载掉原有版本的 MatrixDB 软件。
注意!
此步骤需在所有节点上进行。
3.3 MatrixDB 重装
重新安装你所需版本的 rpm 包。此操作在普通用户下进行。
[<用户名称>@mdw ~]$ yum install matrixdb-4.6.0.enterprise-1.el7.x86_64.rpm
注意!
此步骤需在所有节点上进行。
3.4 启动集群
首先,在主节点上使用 root 权限连接到 mxadmin 用户。
[<用户名称>@mdw ~]$ sudo su - mxadmin
然后,使用 gpstart 工具启动集群。
[mxadmin@mdw ~]$ gpstart -a