MySQL集群管理器1.4用户手册/使用MySQL集群管理器/ NDB集群降级涉及MySQL节点的逻辑降级

3.10 NDB集群降级涉及MySQL节点逻辑降级

集群升级命令可以用来执行NDB集群的降级操作集群升级命令用于应用的限制),当涉及降级时,需要特殊的步骤mysqld不支持就地降级。例如,从NDB集群7.5降级到7.4涉及到将MySQL服务器从5.7和5.6降级,为此必须使用逻辑降级方法(参见降级的路径参阅有关调低评级的资料mysqld).本节解释在这种情况下要采取的步骤。让我们以这个样本群为例:

MCM >显示状态-r mycluster;+--------+----------+----------+---------+-----------+----------+ | NodeId | | | |主机状态过程节点组|包  | +--------+----------+----------+---------+-----------+----------+ | 49 | ndb_mgmd | tonfisk运行| | | 7.5 -dmr1 | | 1 | ndbmtd | flundra | | 0 | 7.5运行-dmr1 | | 2 | ndbmtd | grindval | | 0 | 7.5运行-dmr1 | | 50 |7.5 -dmr1运行mysqld | flundra | | | | | 51 | mysqld | grindval运行| | | 7.5 -dmr1 | | | 52 ndbapi | * |补充道  | | | +--------+----------+----------+---------+-----------+----------+

假设NDB集群已经从7.4升级到7.5,然后用户遇到了一个大问题,现在需要将集群恢复到7.4版本,以下步骤:

  1. 备份所有集群数据:

    MCM >备份集群;+-------------------------------+ | 备份成功完成  | +-------------------------------+
  2. 使用, mysqldump备份非ndb数据mysqld节点。

  3. 假设你想降级到较低版本的NDB集群的包仍然可用到MySQL集群管理器(如果不是这样,使用添加包命令来提供包),则使用集群升级命令和——nodeid降级管理和数据节点的选项:

    mcm>升级集群-P 7.4.10——nodeid=49,1,2——重试集群;+-------------------------------+ | 集群升级成功  | +-------------------------------+

    方法中包含所有管理节点和数据节点——nodeid选项,但省略任何mysqld节点。的显示状态命令显示哪些节点现在被降级了:

    MCM >显示状态-r mycluster;+--------+----------+----------+---------+-----------+----------+ | NodeId | | | |主机状态过程节点组|包  | +--------+----------+----------+---------+-----------+----------+ | 49 | ndb_mgmd | tonfisk运行| | | 7.4.10 | | 1 | ndbmtd | flundra | | 0 |运行7.4.10 | | 2 | ndbmtd | grindval | | 0 |运行7.4.10 | | 50 | mysqld|flundra | running | | 7.5-DMR1 | | 51 | mysqld | grindval | running | | 7.5-DMR1 | | 52 | ndbapi | * | added | | | +--------+----------+----------+---------+-----------+----------+
  4. 为每个对象重新创建数据目录mysqld节点:

    1. 停止mysqld节点:

      MCM >停止进程50;+-------------------------------+ | 过程停止成功  | +-------------------------------+
    2. 删除虚拟机的数据目录mysqldNode并将其重新创建为一个空文件夹:

      user@host$ CD McM_data /clusters/mycluster/50/ user@host$ rm -rf data user@host$ mkdir data
    3. 属性初始化重新创建的数据目录mysql_install_db你正在降级的NDB集群版本包中的脚本:

      user@host$ /clusters/7.4/scripts/mysql_install_db \——defaults-file=/mcm_data/clusters/mycluster/50/cfg/my.cnf \——datadir=/mcm_data/clusters/mycluster/50/data——basedir=/clusters/7.4.10 \ > mysql_install_db.log 2>&1

      (当你降级到NDB集群7.5或更高版本时mysqld属性初始化数据目录mysqld——初始化命令;看到初始化数据目录详情)。

    4. 重新启动mysqld使用MySQL集群管理器的节点(由于之前已经在管理和数据节点上执行了降级,mcmd要开始吗mysqld节点与二进制的集群版本,你正在降级到):

      启动进程50 mycluster;ERROR 9003 (00MGR): Tx {690be0d6 270 0 15} timed out on agent 0@ {19 0 50 Wait for mysqld to start} participants: 0@tonfisk:18620[X] 1@flundra:18620[] 2@grindval:18620[]

      可能会出现如上所示的超时错误,这是由于mcmd仍然要在mysqld节点(这将在下一步中发生)。如果您能够尽快执行下一步,则可以避免该错误。但即使出现错误,这里也没有问题,因为mcmd会一直尝试连接到mysqld节点。

    5. 重新创建mcmd用户在mysqld节点:

      mysql> CREATE USER 'mcmd @'127.0.0.1' IDENTIFIED BY '';mysql>授予*上的所有权限。* TO 'mcmd'@'127.0.0.1' IDENTIFIED BY \ '' WITH GRANT OPTION;mysql >冲洗特权;
    6. 重新加载到mysqld节点的非ndb数据备份之前使用, mysqldump:

      mysql -h 127.0.0.1 -P 3306 -u root -P < dumpfile.sql
  5. 对每个重复上面的步骤4和它的每个子步骤mysqld集群的节点。

  6. 在所有的mysqld节点被降级,它们的数据目录也准备好了,mcmd最终与他们全部重新连接:

    MCM >显示状态-r mycluster;+--------+----------+----------+---------+-----------+---------+ | NodeId | | | |主机状态过程节点组|包  | +--------+----------+----------+---------+-----------+---------+ | 49 | ndb_mgmd | tonfisk运行| | | 7.4.10 | | 1 | ndbmtd | flundra | | 0 |运行7.4.10 | | 2 | ndbmtd | grindval | | 0 |运行7.4.10 | | 50 | mysqld |flundra | running | | 7.4.10 | | 51 | mysqld | grindval | running | | 7.4.10 | | 52 | ndbapi | * | added | | | +--------+----------+----------+---------+-----------+---------+