南大通用GBase 8a版本(V8,V9)升级操作手顺

本文介绍GBase 8a 数据库集群升级的操作手顺,包括V8和V9两个系列,其主要区别是V9不再需要操作系统root账号的密码了。当然也包括从V8升级到V9的操作。

升级的整体流程基本相同,都包括:停外部服务,停数据库服务,修改升级配置文件,升级,升级后检查等。

参考

GBase 8a从V8升级V95注意事项

准备安装包

准备新版本安装包,并解压缩到适合的目录。 放到操作系统dbaUser(gbase)用户能读写的目录下。

升级前准备

停外部服务

停掉所有的使用数据库的服务,包括但不限于加载,同步,业务系统,外部定时任务,数据库内定时任务等。

数据库当前信息采集

采集当前版本信息,业务表信息等,用于升级后做验证,确认升级成功。具体项目请根据业务实际情况确认,一般建议重要业务表要做count,sum等,确保升级后,数据查询没有错误。

停数据库服务

V8版本是用操作系统root用户停服务(sudo类似),V9是用dbaUser(gbase)停服务。

注意,如果有外部监控数据库进程的,记得也要停下来,免得又被自动拉起了

V8版本

用操作系统root用户,停掉数据库服务。每个节点都执行一遍。

[root@rh6-1 ~]# service gcware stop
Stopping GCMonit success!
Signaling GCRECOVER (gcrecover) to terminate:              [  OK  ]
Waiting for gcrecover services to unload:....              [  OK  ]
Signaling GCSYNC (gc_sync_server) to terminate:            [  OK  ]
Waiting for gc_sync_server services to unload:             [  OK  ]
Signaling GCLUSTERD  to terminate:                         [  OK  ]
Waiting for gclusterd services to unload:............      [  OK  ]
Signaling GBASED  to terminate:                            [  OK  ]
Waiting for gbased services to unload:......               [  OK  ]
Signaling GCWARE (gcware) to terminate:                    [  OK  ]
Waiting for gcware services to unload:.                    [  OK  ]
[root@rh6-1 ~]#

V95版本

用dbaUser账号(gbase)登录每一个节点,停服务。 通过gcluster_services 命令。

[gbase@gbase_rh7_001 ~]$ gcluster_services all stop
Stopping GCMonit success!
Stopping gcrecover :                                       [  OK  ]
Stopping gcluster :                                        [  OK  ]
Stopping gcware :                                          [  OK  ]
Stopping gbase :                                           [  OK  ]
Stopping syncserver :                                      [  OK  ]
[gbase@gbase_rh7_001 ~]$ gcadmin
[gcadmin] Could not initialize CRM instance error: [122]->[can not connect to any server]
[gbase@gbase_rh7_001 ~]$

建议所有管理节点服务,能【额外】重启一遍,刷新一下gcware的快照版本。

gcluster_services all start
gcluster_services all stop

V8版本内升级

需要使用操作系统root用户和密码,或者某些版本可以提供sudo账号也可以。本文在配置文件里介绍下区别,其它的完全相同。

环境

2节点集群,1个管理+数据,1个单独数据。

[gbase@rh6-1 ~]$ gcadmin
CLUSTER STATE:  ACTIVE
CLUSTER MODE:   NORMAL

=================================================================
|             GBASE COORDINATOR CLUSTER INFORMATION             |
=================================================================
|   NodeName   |     IpAddress     |gcware |gcluster |DataState |
-----------------------------------------------------------------
| coordinator1 |    10.0.2.201     | OPEN  |  OPEN   |    0     |
-----------------------------------------------------------------
=============================================================
|              GBASE DATA CLUSTER INFORMATION               |
=============================================================
|NodeName |     IpAddress     |gnode |syncserver |DataState |
-------------------------------------------------------------
|  node1  |    10.0.2.201     | OPEN |   OPEN    |    0     |
-------------------------------------------------------------
|  node2  |    10.0.2.202     | OPEN |   OPEN    |    0     |
-------------------------------------------------------------
[gbase@rh6-1 ~]$ gccli

GBase client 8.6.2.43-R28 .125499. Copyright (c) 2004-2021, GBase.  All Rights Reserved.

修改升级配置文件

解压缩安装包后,修改配置文件,默认是demo.options。其中参数和其它版本基本一致。其中的rootPwd是给V8升级V9用的,在V9版本内升级时,不需要填写。

于安装时一样,请注意区分其中几个用户和密码:

  • loginUser、loginUserPwd : 节点间远程ssh登录时的账号
  • dbaUser、dbaPwd、dbaGroup: 操作系统dba用户,一般是gbase
  • rootPwd : 操作系统root用户密码
  • dbRootPwd : 数据库root用户密码,用于更新数据库内的元数据。
[gbase@rh6-1 gcinstall]$ cat demo.options
installPrefix= /opt
coordinateHost =10.0.2.201
coordinateHostNodeID = 234,235,237
dataHost = 10.0.2.201,10.0.2.202
#existCoordinateHost =10.0.2.201
#existDataHost =10.0.2.201,10.0.2.202
loginUser= root
loginUserPwd = '111111'
#loginUserPwdFile = loginUserPwd.json
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbase1234'
rootPwd = '111111'
#rootPwdFile = rootPwd.json
dbRootPwd = ''
#mcastAddr = 226.94.1.39
mcastPort = 5493
[gbase@rh6-1 gcinstall]$ 

无root密码的sudo方式配置参数

区别是,操作系统rootPwd不需要填写了,随便填一个就行。而loginUser 必须有sudo直接执行的权限,不能再输入密码的那种。而模式是通过sudoMode=True指定的。

[gbase@rh6-1 gcinstall]$ cat demo.options
installPrefix= /opt
coordinateHost =10.0.2.201
coordinateHostNodeID = 234,235,237
dataHost = 10.0.2.201,10.0.2.202
#existCoordinateHost =10.0.2.201
#existDataHost =10.0.2.201,10.0.2.202
loginUser= abc
loginUserPwd = 'abc1234'
#loginUserPwdFile = loginUserPwd.json
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbase1234'
rootPwd = 'XXXXXX'
#rootPwdFile = rootPwd.json
dbRootPwd = ''
#mcastAddr = 226.94.1.39
mcastPort = 5493
sudoMode=True
[gbase@rh6-1 gcinstall]$ 

升级

[gbase@rh6-1 gcinstall]$ ./gcinstall.py -U --silent=demo.options
*********************************************************************************
Thank you for choosing GBase product!
。。。。。
*********************************************************************************
Do you accept the above licence agreement ([Y,y]/[N,n])? y
*********************************************************************************
                     Welcome to install GBase products
*********************************************************************************
Environmental Checking on gcluster nodes.
CoordinateHost:
10.0.2.201
DataHost:
10.0.2.201    10.0.2.202
Are you sure to upgrade GCluster on these nodes ([Y,y]/[N,n])? y
。。。。。
10.0.2.202              Install gcluster on host 10.0.2.202 successfully.
10.0.2.201              Install gcluster on host 10.0.2.201 successfully.
Starting all gcluster nodes...
Upgrade Successfully.
[gbase@rh6-1 gcinstall]$

V8升级到V9版本

和V8升级基本一样,唯一注意的是,由于架构改动,V9不再有开机自启动的功能,所以需要用户自行部署监控,确保开机时数据库服务能正常启动运行。配置文件,步骤之类的请参考前面V8版本内升级部分即可。

V95版本内升级

所有操作,全部在dbaUser(一般是gbase)下进行。

环境

2节点集群,V952版本,1个调度,2个数据,其中10.0.2.101是调度和数据复合节点。 V952的gcware服务于调度是部署在一起的。

[gbase@gbase_rh7_001 ~]$ gcadmin
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL

=============================================================
|           GBASE COORDINATOR CLUSTER INFORMATION           |
=============================================================
|   NodeName   | IpAddress  | gcware | gcluster | DataState |
-------------------------------------------------------------
| coordinator1 | 10.0.2.101 |  OPEN  |   OPEN   |     0     |
-------------------------------------------------------------
=========================================================================================================
|                                    GBASE DATA CLUSTER INFORMATION                                     |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |                10.0.2.101                |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
|  node2   |                10.0.2.115                |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------

[gbase@gbase_rh7_001 ~]$

修改升级配置文件

解压缩安装包后,修改配置文件,默认是demo.options。其中参数和其它版本基本一致。其中的rootPwd是给V8升级V9用的,在V9版本内升级时,不需要填写。

如果数据库的密码不是默认的,需要提供genDBUser和genDBPwd参数,分别是数据库dba的账号(root)和密码。这2个参数也可以在升级时从命令行提供。详情参考 GBase 8a数据库V95版本配置数据库root用户密码genDBPwd

[gbase@gbase_rh7_001 gcinstall]$ cat demo.options
installPrefix= /opt/gbase
coordinateHost = 10.0.2.101
coordinateHostNodeID = 101
dataHost = 10.0.2.101,10.0.2.115
#existCoordinateHost =10.0.2.101
#existDataHost =10.0.2.101
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbase1234'
#genDBUser='root'
#genDBPwd='XXXXX'
rootPwd = ''
#rootPwdFile = rootPwd.json
#updateConf=demo.conf
[gbase@gbase_rh7_001 gcinstall]$

升级

升级操作和其它版本没有区别。

[gbase@gbase_rh7_001 gcinstall]$ ./gcinstall.py -U --silent=demo.options
*********************************************************************************
Thank you for choosing GBase product!
。。。。
10.0.2.101              Upgrade gcluster.
10.0.2.115              install cluster on host 10.0.2.115 successfully.
10.0.2.101              install cluster on host 10.0.2.101 successfully.
10.0.2.115              install cluster on host 10.0.2.115 successfully.
Starting all gcluster nodes...
Init Cluster Status Monit Plugin...
upgrade Successfully.
[gbase@gbase_rh7_001 gcinstall]$

升级后验证

查看版本,功能是否正常。核对前期采集的数据,看是否都正确。

回退

如升级后,立即发现版本不对,无法使用,或者升级过程中,发生了断电等情况,可以通过restore.py还原。

GBase 8a升级过程意外失败后强制回退的方法Restore.py