3.5.2.4 测试和迁移独立集群

测试和执行独立 MySQL NDB Cluster 到 MySQL Cluster Manager 的迁移包括以下步骤:

  1. import cluster使用with --dryrun 选项 执行建议导入的测试运行 。使用此选项时,MySQL Cluster Manager 检查不匹配的配置属性、丢失或无效的进程或主机、丢失或无效的 PID 文件以及其他错误,并对发现的任何错误发出警告,而不实际执行任何进程或数据迁移(仅当您 在集群的 mysqld 节点上创建了 mcmd 用户时,该步骤才有效:

    mcm> import cluster --dryrun newcluster;
  2. 如果出现错误,请更正它们,并重复上一步中所示的空运行,直到不再返回错误为止。以下列表包含您可能遇到的一些常见错误及其可能的原因:

    • MySQL Cluster Manager 需要特定的 MySQL 用户和权限来管理 SQL 节点。如果mcmdMySQL 用户帐户设置不正确,您可能会看到 No access for user...Incorrect grants for user...或其他可能的错误。按照 第 3.5.2.1 节“为迁移准备独立集群”中此步骤中 给出的说明 来解决此问题。

    • 如前所述, ndbapi受 MySQL Cluster Manager 控制的每个集群进程(类型为 的进程除外)必须具有有效的 PID 文件。PID 文件丢失、命名错误或无效可能会产生错误,例如 PID 文件不存在于进程...PID ... 未运行 ...PID ... 是类型...。请参阅 第 3.5.2.2 节,“验证所有集群进程 PID 文件”

    • 流程版本不匹配也可能产生看似随机的错误,其原因有时难以追踪。确保所有节点都提供了正确版本的 MySQL NDB Cluster 软件,并且它与软件的版本相同。

    • 独立集群中的每个数据节点天使进程都必须在导入之前终止。正在运行的天使进程可能会导致错误,例如Angel process pidexists ...Process pidis an angel process for ...。当您看到此类错误时,请执行以下操作:

    • 在创建要导入的目标站点、程序包和集群时,必须准确反映进程的数量、它们的类型以及它们在独立集群中驻留的主机。否则,您可能会收到诸如Process idreported #processes ...Process id... does not match configured process ...Process idnot configured ...Process iddoes not match configured process ...之类的错误。看 第 3.5.2.3 节,“创建和配置目标集群”

    • 其他可能导致特定错误的因素包括处于错误状态的进程、使用不受支持的命令行选项启动的进程(有关详细信息,请参阅 第 3.5.2.3 节“创建和配置目标集群” )或没有必需的选项,以及进程有错误的进程 ID,或使用错误的节点 ID。

  3. import cluster --dryrun不再警告任何错误时,您可以使用import cluster命令执行导入,这次省略该 --dryrun 选项。

    对于 MySQL Cluster Manager 1.4.6 及更早版本:

    mcm> import cluster newcluster;
    +-------------------------------+
    | Command result                |
    +-------------------------------+
    | Cluster imported successfully |
    +-------------------------------+
    1 row in set (5.58 sec)

    对于 MySQL Cluster Manager 1.4.7 及更高版本:使用命令的 --remove-angel 选项 import cluster,它会在导入集群之前终止数据节点的天使进程并调整数据节点的 PID 文件以包含数据节点进程自己的 PID:

    mcm> import cluster --remove-angel newcluster;
    +-------------------------------+
    | Command result                |
    +-------------------------------+
    | Cluster imported successfully |
    +-------------------------------+
    1 row in set (5.58 sec)

    可以看到wild cluster现在已经被导入,并且被MySQL Cluster Manager管理:

    mcm> show status -r newcluster;
    +--------+----------+----------------+---------+-----------+------------+
    | NodeId | Process  | Host           | Status  | Nodegroup | Package    |
    +--------+----------+----------------+---------+-----------+------------+
    | 50     | ndb_mgmd | 198.51.100.102 | running |           | newpackage |
    | 2      | ndbd     | 198.51.100.103 | running | 0         | newpackage |
    | 3      | ndbd     | 198.51.100.104 | running | 0         | newpackage |
    | 51     | mysqld   | 198.51.100.102 | running |           | newpackage |
    | 52     | ndbapi   | *              | added   |           |            |
    +--------+----------+----------------+---------+-----------+------------+
    5 rows in set (0.01 sec)