GBase 8a MPP Cluster 多实例最佳实践(下)

原文链接:
https://www.gbase.cn/community/post/4000
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

1 多实例管理

1.1 多实例的目录介绍

  • 多实例与单实例的目录对比:

    

               

  • 多实例服务器环境变量

环境变量对比(/home/gbase/.gbase_profile):

多实例复合节点
192.168.146.20&192.168.146.40
export GBASE_INSTANCES_BASE=/opt
export GBASE_INSTANCES=/opt/192.168.146.40/gbase_profile
export GBASE_HOME=/opt/192.168.146.40/gnode/server
PATH=$GBASE_HOME/bin:$PATH
export GBASE_INSTANCES=/opt/192.168.146.20/gbase_profile:$GBASE_INSTANCES
export GBASE_HOME=/opt/192.168.146.20/gnode/server
PATH=$GBASE_HOME/bin:$PATH

if [ -f /opt/192.168.146.20/gbase_profile ]; then 
 . /opt/192.168.146.20/gbase_profile 
fi

if [ -f /opt/192.168.146.20/gcware_profile ]; then 
 . /opt/192.168.146.20/gcware_profile 
fi

非多实例复合节点
192.168.146.22
export GBASE_INSTANCES_BASE=/opt
export GBASE_INSTANCES=/opt/192.168.146.22/gbase_profile
export GBASE_HOME=/opt/192.168.146.22/gnode/server
PATH=$GBASE_HOME/bin:$PATH

if [ -f /opt/192.168.146.22/gbase_profile ]; then 
 . /opt/192.168.146.22/gbase_profile 
fi

if [ -f /opt/192.168.146.22/gcware_profile ]; then 
 . /opt/192.168.146.22/gcware_profile 
fi

多实例server中复合节点与纯gnode节点环境变量文件对比:
(一个多实例服务器,最多只能有一个节点是带有gcluster和gcware的复合节点)

192.168.146.20 复合节点
/opt/192.168.146.20/gbase_profile
192.168.146.40 纯gnode节点
/opt/192.168.146.40/gbase_profile
export GBASE_BASE=/opt/192.168.146.20/gnode
export GBASE_HOME=/opt/192.168.146.20/gnode/server
export GBASE_SID=gbase
export GCLUSTER_USER=gbase
export TCMALLOC_AGGRESSIVE_DECOMMIT=1
ulimit -v unlimited
unset TERMINFO
export TERMINFO_DIRS=/opt/192.168.146.20/gcluster/server/share/terminfo:/opt/192.168.146.20/gnode/server/share/terminfo
export GCLUSTER_PREFIX=/opt/192.168.146.20
export GCWARE_BASE=/opt/192.168.146.20/gcware
export PYTHONPATH=$PYTHONPATH:$GCWARE_BASE/python
export SSH_GBASE_PASSWD=6762617365
export GCLUSTER_HOME=/opt/192.168.146.20/gcluster/server
export GCLUSTER_BASE=/opt/192.168.146.20/gcluster
export GCLUSTER_SID=gcluster
GBASE_HOME=/opt/192.168.146.40/gnode/server
export GBASE_SID=gbaseexport SSH_GBASE_PASSWD=6762617365
export GCLUSTER_HOME=/opt/192.168.146.40/gcluster/server
export GCLUSTER_BASE=/opt/192.168.146.40/gcluster
export GCLUSTER_SID=gcluster

1.2 多实例的服务管理

服务概述
coordinator 服务gclusterd     gcrecover 
gcware服务gcware        gcware_monit          gcware_mmonit
gnode服务gbased        gc_sync_server  
监控服务coordinator  gcluster/server/bin   gcmonit  gcmmonit 
gnode          gnode/server/bin      gcmonit  gcmmonit
多实例服务器所有实例统一启停命令

多实例服务器所有实例的统一启停所有服务命令:

gcluster_services all start
gcluster_services all stop
gcluster_services all restart

gcware服务不受统一启停所有服务命令控制,统一启停所有服务命令控制的服务如下:

gclusterd  gcrecover  gbased  gc_sync_server  gcmonit  gcmmonit

gcware服务需要单独启停,命令如下:

gcware_services all start
gcware_services all stop
gcware_services all restart

gcware启停命令控制的服务有:gcware  gcware_monit   gcware_mmonit

示例:多实例服务器(2个gnode):192.168.146.20&192.168.146.40,其中192.168.146.20为复合节点

多实例服务器所有实例统一启停某类服务的命令

gcluster_services gcluster  start/stop
gcluster_services gcware start/stop
gcluster_services gcrecover start/stop
gcluster_services syncserver start/stop
gcluster_services gbase start/stop
gcmonit.sh start/stop/status
示例:
[gbase@rhel73-1 ~]$ gcluster_services gbase stop
Stopping gbase:                                    [  OK  ]
Stopping gbase:                                    [  OK  ]
[gbase@rhel73-1 ~]$ gcmonit.sh stop
Stopping GCMonit success!

多实例服务器单实例启停命令

多实例只支持gnode多实例,gcware和coordinator一台物理机最多只能有一个实例,所以只有gbased和syncserver服务是多实例的。启停命令如下:
gcluster_services syncserver_ip start/stop
gcluster_services gbase_ip start/stop
示例:
gcluster_services gbase_192.168.146.40 stop
gcluster_services syncserver_192.168.146.40 stop

gncli连接多实例中gnode

多实例服务器上使用gncli连接某个实例:
gncli –h ip
示例:
[gbase@rhel73-1 sys_tablespace]$ pwd
/opt/192.168.146.40/gnode/userdata/gbase/testdb/sys_tablespace
[gbase@rhel73-1 sys_tablespace]$ ls
t_n1  t_n5
[gbase@rhel73-1 sys_tablespace]$ gncli -h 192.168.146.40
GBase client 9.5.3.17.123187. Copyright (c) 2004-2020, GBase.  All Rights Reserved.
gbase> use testdb;
Query OK, 0 rows affected (Elapsed: 00:00:00.04)
gbase> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| t_n1             |
| t_n5             |
+------------------+
2 rows in set (Elapsed: 00:00:00.06)

2 受多实例影响的功能

相比于V8.6及V9.5.2版本,V9.5.3版本支持多实例部署方式,如下功能会发生变化:

  • License的获取和安装变化
  • 节点文件目录变化
  • 集群服务管理变化
  • 集群升级回退变化
  • 集群节点替换变化
  • 集群备份恢复变化
  • 多实例与非多实例的兼容问题—本地加载变化

2.1 升级回退

单实例升级多实例

步骤:升级-->扩容-->多实例numa绑定[可选]

第一步:升级

升级语法无变化,升级的原集群必须是952及952以上的版本。
./gcinstall.py --silent=demo.options -U
集群升级,gcwareHost必须指定且值必须为旧版本gcware节点。
集群升级,IPV4不能指定gcwareHostNodeID;非IPV4必须指定gcwareHostNodeID且值必须为已有gcware的nodeid。
说明:
非IPV4指定gcwareHostNodeID,可以到gcware/config目录下查看gcware.conf,里面有nodeid。Totem下的nodeid是gcwarehostnodeid,gcware下的nodeid是coordinatehostnodeid。

第二步:扩容,使用数据库管理员用户(如:gbase)执行。

给新增加的多实例节点安装集群软件
./gcinstall.py --silent=demo.options --license_file=gbase.lic
demo.options需修改:添加dataHost,填写当前已存在的existCoordinateHost 、existDataHost 、existGcwareHost,注释#coordinateHost 、#coordinateHostNodeID 、#gcwareHost 、#gcwareHostNodeID
创建distribution
gcadmin distribution gcChangeInfo.xml p 1 d 1
生成新的hashmap
gbase> initnodedatamap;
数据重分布
下面的rebalance参数根据需要重分布的数据量进行灵活设置
gbase> set global gcluster_rebalancing_concurrent_count=0;
gbase> rebalance instance;
gbase> set global gcluster_rebalancing_concurrent_count=3;
gbase> select * from gclusterdb.rebalancing_status;
删除旧的hashmap
gbase> refreshnodedatamap drop 1;
删除旧的distribution
[gbase@pst_w61 ~]$ gcadmin rmdistribution 1;

第三步:多实例numa绑定[可选]

根据实际需要可选择是否绑定numa节点,绑定方式参考之前章节NUMA绑定。 修改多实例下的gnode/server/bin/gcluster_services文件后重启集群服务。
注意:
单实例升级多实例版本中扩容步骤可能出现的问题:
./gcinstall.py --silent=demo.options --license_file=20210323.lic
执行完后,多实例的数据节点下没有license文件,重新执行./License导入也没有该文件,需要手动拷贝过去后启动gbase服务
多实例升级多实例
升级语法无变化

  • 自动回退

单实例升级多实例或多实例升级多实例过程中发生错误,升级失败后都会自动回退,无需人工干预。

  • 手工回退

要求回退前集群可用。回退语法如下:
切换到gcinstall目录下
python Restore.py --silent=demo.options –backupFile= --backupGcwareFile=
注:
如果是多实例回退到单实例,要求升级后没有对集群进行过扩容缩容操作。
升级程序在升级前备份原集群重要文件,如系统表、环境变量等,用户数据不备份。如果原集群是多实例,备份文件会带多实例标识,回退程序会通过读取备份文件来自动判断回退目标是单实例还是多实例进行回退。

2.2 节点替换

节点替换分3种情况:

Coordinator节点替换

在服务正常的管理节点上执行下面命令
replace.py --host=IP --type=coor --dbaUser=dba_user --dbaUserPwd=*** --generalDBUser=db_user --generalDBPwd='***' –overwrite  --sync_coordi_metadata_timeout=minutes  --retry_times=*  --license_file=***

Gnode节点替换

在服务正常的管理节点上执行下面命令
replace.py --host=IP --type=data --dbaUser=dba_user --dbaUserPwd=*** --vcname=vc_name --generalDBUser=db_user --generalDBPwd='***' –overwrite  --sync_coordi_metadata_timeout=minutes  --retry_times=*  --license_file=***

Gcware节点替换

在服务正常的gcware节点执行下面命令
cd $GCWARE_BASE/gcware_server/
./gcserver.py --host=IP --dbaUser=gbase --dbaPwd=gbase --overwrite
其中coordinator节点替换和gnode节点替换不受多实例影响,操作无变化(包括coordinator和gnode的复合节点)。
gcware节点替换在gcware解绑后,有独立的替换语法,替换语法如下:

多实例下gcware节点替换去掉了—prefix参数,gcserver.py读取环境变量获取gcware的安装路径。gcserver.py重新安装被替换的gcware节点,拷贝gcware数据,完成gcware节点的替换操作。
如果是gcware、gcluster和gnode部署在同一个服务器上,替换时建议先替换gcware节点,再替换gcluster节点,最后替换gnode节点。

2.3 备份恢复

  • 单机多实例备份恢复rcman增加参数-s,通过-s参数指定备份实例的IP,不指定该参数,备份失败。
  • 当前版本备份恢复支持非gbase的数据库用户备份恢复,gcrcman.py和rcman增加参数-U来指定备份恢复的数据库用户名,该用户需要有访问集群所有库表的权限,如果指定用户权限不足则报错退出程序。如不指定默认为gbase用户。
  • 当前版本支持gcware独立部署版本的备份恢复。

2.4 本地加载多实例的影响和解决方法

多实例部署方式会对本地文件加载功能造成影响,与非多实例版本相比存在兼容性问题。多实例下本地加载路径语法格式全部采用如下语法格式:
file://host + abs_path
注:如果集群部署为多实例,原有的本地加载路径如果存在语法file://+abs_path,需要进行改写,使用指定host的语法格式。

原文链接:
https://www.gbase.cn/community/post/4000
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值