APP下载

MySQL NDB Cluster数据库系统在线升级方案及实践综述

2020-05-25袁晓东

科学与信息化 2020年5期

摘 要 本文介绍了MySQL NDB Cluster数据库集群利用滚动重启进行在线版本升级的方案,并进一步给出了在线升级的详细实施步骤。实践证明利用该升级方案可以在不中断数据库服务的情况下实现数据库版本升级,MySQL NDB Cluster数据库具备了卓越的高可用性。

关键词 MySQL;NDB Cluster;在线升级;高可用

概述

MySQL NDB Cluster数据库集群采用无共享方案,将数据存放在内存中,具备高性能、高可用、无单点故障、可写扩展等优点[1]。它能达到99.999%的高可用性,即使其他数据库系统中令人头疼的版本升级,它也提供了在线升级方法,在不需要关闭数据库、不需要中断服务的情况下就能轻松完成[2]。本文将具体介绍NDB Cluster数据库集群的在线升级方案和实施步骤。

1 MySQL NDB Cluster版本在线升级方案

MySQL NDB Cluster集群通常由至少两个管理节点、多个数据节点和多个SQL节点组成,这样任何一个节点出现故障,其他节点可以接手故障节点的任务,从而实现了整个集群的无单点故障。利用该特性可以实现NDB Cluster版本的在线升级,其方案是依次停掉集群中的一个节点,对该节点上的数据库软件进行版本升级,然后启动该节点加入集群,待到所有节点均升级完毕,整个NDB Cluster集群便完成了版本升级过程,整个过程中数据库均是可用的,没有中断服务。

完整的在线升级和滚动重启方案如图1所示:

2 升级实施步骤

本节以典型的MySQL NDB Cluster 7.5集群为例介绍其具体的版本升级步骤。假设集群有两个管理节点,节点id为49、50,2个数据节点组共4个数据节点,节点id为1、2、3、4,3个SQL节点,服务器均为Linux操作系统,数据库安装目录为/usr/local/mysql,则版本在线升级的实施步骤如下:

(1)在管理节点50的ndb_mgm中执行以下命令停止管理节点49:

49 stop

(2)将管理节点49上所有的ndb_mgmd和ndb_mgm均替换为升级版本的文件。

(3)在管理节点49上执行以下命令重新启动管理节点:

ndb_mgmd

(4)重复步骤1-3升级管理节点50。

(5)在管理节点的ndb_mgm执行以下命令停止数据节点1:

1 stop

(6)将数据节点1上的ndbd、ndbmtd、ndb_restore替换为升级版本的文件。

(7)在数据节点1上执行以下命令重新启动该数据节点:

ndbmtd

(8)重复步骤5-7依次升级数据节点2、3、4。

(9)在SQL节点1的mysql中执行以下命令:

set global innodb_fast_shutdown = 0

(10)在SQL节点1上执行以下命令停止SQL节点1:

service mysql.server stop

(11)將SQL节点1上的除data目录外的全部SQL节点命令文件替换为升级版本的文件。

(12)执行以下命令给新文件赋权限并替换系统文件:

cd /usr/local/mysql

cp support-files/mysql.server /etc/rc.d/init.d/

chmod +x /etc/rc.d/init.d/mysql.server

chkconfig --override mysql.server

chgrp -R mysql .

chown -R root .

chown -R mysql data

(13)在SQL节点1上执行以下命令启动SQL节点1:

service mysql.server start

(14)重复步骤9-13升级SQL节点2和SQL节点3。

至此,在线升级完成。

3 结束语

作者多次采用本文所述方案对电信级生产系统中的MySQL NDB Cluster数据库系统进行在线版本升级,均顺利成功,服务未受影响。而业界常用的Oracle RAC数据库集群,其版本升级一般均须停库实施。实践表明NDB Cluster数据库系统日趋成熟稳定,在绝大多数场景下可以作为传统商业数据库系统的替代方案。

参考文献

[1] 袁晓东.MySQL Cluster集群数据库误操作恢复方法研究[J].信息技术与信息化,2019,(12):212-215.

[2] Oracle Corporation. 21.5.5 Performing a Rolling Restart of an NDB Cluster [EB/OL]. https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-rolling-restart.html,2020.

作者简介

袁晓东(1973-),男,江苏阜宁人;毕业院校:南京大学,专业:计算机软件,学历:博士,现就职单位:南京云白信息科技有限公司,研究方向:数据库、大数据、机器学习、信息安全、软件工程、形式化方法等。