暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

磐维panwei一主多备节点扩缩容

IT那活儿 2025-02-13
303
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!  

知识点描述

gs_expansion:

openGauss提供了gs_expansion工具对数据库的备机进行扩容。支持从单机或者一主多备最多扩容到一主八备。

gs_dropnode:

openGauss提供了gs_dropnode工具从一主多备的数据库中移除不需要的备机,最多可以删除到只剩下单机。


标准指导操作

2.1 缩容步骤

  • 1)执行前保证主从节点之间的omm用户互信正常;

  • 2)删除操作只在主节点执行,执行用户omm;

  • 3)不允许gs_expansion命令同时执行;

  • 4)不允许并发执行相同的gs_dropnode命令;

  • 5)操作过程中不允许同时在其他备节点上执行准备倒换或者故障倒换操作。

1)确认当前数据库状态和环境变量

确认缩容的节点为备节点(此次缩容节点为3节点)

gs_om -t status --detail
[ CMServer State ]

node node_ip instance state
---------------------------------------------------------------------
1  cmdb1 192.168.86.1281    database/panweidb/cm/cm_server Primary
2  cmdb2 192.168.86.1292    database/panweidb/cm/cm_server Standby
3  cmdb3 192.168.86.1303    database/panweidb/cm/cm_server Standby

[ Cluster State ]

cluster_state : Normal
redistributing : No
balanced : Yes
current_az : AZ_ALL

[ Datanode State ]

node node_ip instance state 
-----------------------------------------------------------------------
1  cmdb1 192.168.86.1286001 /database/panweidb/data P Primary Normal
2  cmdb2 192.168.86.1296002 /database/panweidb/data S Standby Normal
3  cmdb3 192.168.86.1306003 /database/panweidb/data S Standby Normal

2)执行命令删除节点(主节点执行)

su - omm
gs_dropnode -U omm -G dbgrp -h 192.168.86.130

执行日志:

--------------------------------------------------------------
The target node to be dropped is (['cmdb3']) 
Do you want to continue todrop the target node (yes/no)?yes
Drop node startwith CM node.
Drop node with CM node is running.
[gs_dropnode]Starttodrop nodes of the cluster.
[gs_dropnode]Starttostop the target node cmdb3.
[gs_dropnode]Endofstop the target node cmdb3.
......
Stopping node.
=========================================
Successfully stopped node.
=========================================
Endstop node.
Generate drop flag fileondrop node cmdb3 successfully.
[gs_dropnode]Starttomodify the cluster static conf.
[gs_dropnode]Endofmodify the cluster static conf.
Restart cluster ...
Stopping cluster.
=========================================
Successfully stopped cluster.
=========================================
Endstop cluster.
Remove dynamic_config_file and CM metadata directoryon all nodes.
Starting cluster.
======================================================================
Successfully started primary instance. Waitforstandby instance.
======================================================================
.
Successfully started cluster.
-----------------------------------------------------------

查询此时集群状态:

gs_om -t status --detail

[ CMServer State ]

node node_ip instance state
---------------------------------------------------------------------
1  cmdb1 192.168.86.1281    database/panweidb/cm/cm_server Primary
2  cmdb2 192.168.86.1292    database/panweidb/cm/cm_server Standby

[ Cluster State ]

cluster_state : Normal
redistributing : No
balanced : Yes
current_az : AZ_ALL

[ Datanode State ]

node node_ip instance state 
-----------------------------------------------------------------------
1  cmdb1 192.168.86.1286001 /database/panweidb/data P Primary Normal
2  cmdb2 192.168.86.1296002 /database/panweidb/data S Standby Normal

节点3已被成功剔除,此时集群为一主一从。

3)确认缩容节点是否需要保留数据

##无需保留直接执行:

gs_uninstall --delete-data -L

执行日志:

This is a node where the gs_dropnode command has been executed. Uninstall a single node instead of the gs_dropnode command.
Checking uninstallation.
Successfully checked uninstallation.
Stopping the cluster.
Successfully stopped local node.
Successfully deleted instances.
Uninstalling application.
Successfully uninstalled application.
Uninstallation succeeded.

2.2 扩容步骤

注意:

  • 1)不允许gs_dropnode命令同时执行;

  • 2)不允许并发执行相同的gs_expansion命令;

  • 3)操作过程中不允许同时在其他备节点上执行准备倒换或者故障倒换操作;

  • 4)扩容备机的操作系统与主机保持一致;

  • 5)扩容备机与主机之间建立好用户信任;

  • 6)扩容操作只在主节点执行,且需要切换root用户,进入安装包解压目录的script下执行gs_expansion。

1)新节点创建omm用户和用户组dbgrp

su - root
groupadd -g 1101 dbgrp
useradd -g dbgrp -u 1101 -m omm
echo 'OKfmyA1!2020R1!'|passwd --stdin omm

2)检查新节点环境变量

3)创建互信,包括root和omm用户

4)修改主节点xml文件配置(将3节点信息加入xml配置文件)

<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<!-- 整体信息 -->
<CLUSTER>
    <!-- 数据库集群名称 -->
    <PARAMname="clusterName"value="panweidb" />
    <!-- 数据库节点名称(hostname) -->
    <PARAMname="nodeNames"value="cmdb1,cmdb2,cmdb3"/>
    <!-- 数据库安装目录-->
    <PARAMname="gaussdbAppPath"value="/database/panweidb/app" />
    <!-- 日志目录-->
    <PARAMname="gaussdbLogPath"value="/database/panweidb/log" />
    <PARAMname="tmpMppdbPath"value="/database/panweidb/tmp"/>
    <PARAMname="gaussdbToolPath"value="/database/panweidb/tool" />
    <!--数据库 core 文件目录-->
    <PARAMname="corePath"value="/database/panweidb/corefile"/>
    <!-- 节点 IP,与数据库节点名称列表一一对应 -->
    <PARAMname="backIp1s"value="192.168.86.128,192.168.86.129,192.168.86.130"/>
</CLUSTER>

<DEVICELIST>
    <!-- 节点 1 上的部署信息 -->
    <DEVICEsn="hostname1">
      <PARAMname="name"value="cmdb1"/>
      <!-- 节点 1 所在的 AZ 及 AZ 优先级 -->
      <PARAMname="azName"value="AZ1"/>
      <PARAMname="azPriority"value="1"/>
      <!-- 节点 1 的 IP,如果服务器只有一个网卡可用,将 backIP1 和 sshIP1 配置成同一个IP -->
      <PARAMname="backIp1"value="192.168.86.128"/>
      <PARAMname="sshIp1"value="192.168.86.128"/>
      <!-- cm 管理节点部署信息 -->
      <PARAMname="cmsNum"value="1"/>
      <!-- 主 CM Server 端口号,默认值 5000 -->
      <PARAMname="cmServerPortBase"value="18800"/>
      <!-- cmServerListenIp1。CM Server 用于侦听 CM Agent 连接请求或 DBA 管理请求的 IP地址 -->
      <PARAMname="cmServerListenIp1"value="192.168.86.128,192.168.86.129,192.168.86.130"/>
      <!-- cmServerHaIp1。主、备 CM Server 间通信的 IP 地址。Value 中左边为主 CM Server 的主机 IP 地址,右边为备 CM Server 的主机 IP 地址
。未设置时,默认根据主、备 CM Server 所在主机的 backIp1 生成。-->

      <PARAMname="cmServerHaIp1"value="192.168.86.128,192.168.86.129,192.168.86.130"/>
      <PARAMname="cmServerlevel"value="1"/>
      <PARAMname="cmServerRelation"value="cmdb1,cmdb2,cmdb3"/>
      <!-- cmDir。CM 数据文件路径。保存 CM Server 和 CM Agent 用到的数据文件,参数文件等。各集群主机上均需配置该参数。-->
      <PARAMname="cmDir"value="/database/panweidb/cm"/>
      <!-- dn 数据节点 -->
      <PARAMname="dataNum"value="1"/>
      <PARAMname="dataPortBase"value="17700"/>
      <PARAMname="dataNode1"value="/database/panweidb/data,cmdb2,/database/panweidb/data,cmdb3,/database/panweidb/data"/>
      <PARAMname="dataNode1_syncNum"value="1"/>
    </DEVICE>

    <DEVICEsn="hostname2">
      <PARAMname="name"value="cmdb2"/>
      <PARAMname="azName"value="AZ1"/>
      <PARAMname="azPriority"value="1"/>
      <PARAMname="backIp1"value="192.168.86.129"/>
      <PARAMname="sshIp1"value="192.168.86.129"/>
      <!-- cm 管理节点 -->
      <!-- cmServerPortStandby。备 CM Server 端口号,默认值 5500 -->
      <PARAMname="cmServerPortStandby"value="18800"/>
      <PARAMname="cmDir"value="/database/panweidb/cm"/>
    </DEVICE>

    <DEVICEsn="hostname3">
      <PARAMname="name"value="cmdb3"/>
      <PARAMname="azName"value="AZ1"/>
      <PARAMname="azPriority"value="1"/>
      <PARAMname="backIp1"value="192.168.86.130"/>
      <PARAMname="sshIp1"value="192.168.86.130"/>
      <!-- cm 管理节点 -->
      <!-- cmServerPortStandby。备 CM Server 端口号,默认值 5500 -->
      <PARAMname="cmServerPortStandby"value="18800"/>
      <PARAMname="cmDir"value="/database/panweidb/cm"/>
    </DEVICE>
</DEVICELIST>
</ROOT>

5)进行扩容(主节点执行)

su - root
cd /database/panweidb/soft/script
source /home/omm/.bashrc ----执行扩容之前导入主机数据库的环境变量
./gs_expansion -U omm -G dbgrp -h 192.168.86.130 -X /database/panweidb/soft/panweidb1m2s_cm.xml

执行日志:

Success to init instance on nodes ['cmdb3']
Startto generate and send cluster static file.
Endto generate and send cluster static file.

Ready to perform command on node [cmdb3]. Command is : source /home/omm/.bashrc;gs_guc set -D database/panweidb/data -h 'host all omm 192.168.86.130/32 trust' -h 'host all all 192.168.86.130/32 sha256'
Successfully set hba on all nodes.
Successtochangeuserto [omm]
Stopping cluster.
=========================================
Successfully stopped cluster.
=========================================
Endstop cluster.
Remove dynamic_config_file and CM metadata directoryon all nodes.
Starting cluster.
======================================================================
Successfully started primary instance. Waitforstandby instance.
======================================================================
.
Successfully started cluster.
======================================================================
cluster_state : Normal
redistributing : No
node_count : 3
Datanode State
    primary : 1
    standby           : 2
    secondary : 0
    cascade_standby : 0
    building : 0
    abnormal : 0
    down : 0

Expansion results:
192.168.86.130Success


##查看集群状态
gs_om -t status--detail

[ CMServer State ]

node node_ip instance                             state
---------------------------------------------------------------------
1  cmdb1 192.168.86.1281    database/panweidb/cm/cm_server Primary
2  cmdb2 192.168.86.1292    database/panweidb/cm/cm_server Standby
3  cmdb3 192.168.86.1303    database/panweidb/cm/cm_server Standby

[ Cluster State ]

cluster_state : Normal
redistributing : No
balanced : Yes
current_az : AZ_ALL

[ Datanode State ]

node node_ip instance                     state 
-----------------------------------------------------------------------
1  cmdb1 192.168.86.1286001 /database/panweidb/data P Primary Normal
2  cmdb2 192.168.86.1296002 /database/panweidb/data S StandbyNormal
3  cmdb3 192.168.86.1306003 /database/panweidb/data S StandbyNormal


END


本文作者:胡祥开(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论