In this section, we list the basic steps required to add new data nodes to a MySQL Cluster. For a detailed example, see Section 17.5.11.3, “Adding MySQL Cluster Data Nodes Online: Detailed Example”.
Beginning with MySQL Cluster NDB 7.0.4, this procedure applies whether you are using ndbd or ndbmtd binaries for the data node processes. Previously, this did not work with multi-threaded data nodes. (Bug#43108)
Assuming that you already have a running MySQL Cluster, adding data nodes online requires the following steps:
            Edit the cluster configuration
            config.ini file, adding new
            [ndbd] sections corresponding to the
            nodes to be added. In the case where the cluster uses
            multiple management servers, these changes need to be made
            to all config.ini files used by the
            management servers.
          
            You must be careful that node IDs for any new data nodes
            added in the config.ini file do not
            overlap node IDs used by existing nodes. In the event that
            you have API nodes using dynamically allocated node IDs and
            these IDs match node IDs that you want to use for new data
            nodes, it is possible to force any such API nodes to
            “migrate”, as described later in this
            procedure.
          
Perform a rolling restart of all MySQL Cluster management servers.
              All management servers must be restarted with the
              --reload or --initial
              option to force the reading of the new configuration.
            
            Perform a rolling restart of all existing MySQL Cluster data
            nodes. It is not necessary (or usually even desirable) to
            use --initial when restarting
            the existing data nodes.
          
If you are using API nodes with dynamically allocated IDs matching any node IDs that you wish to assign to new data nodes, you must restart all API nodes (including SQL nodes) before restarting any of the data nodes processes in this step. This causes any API nodes with node IDs that were previously not explicitly assigned to relinquish those node IDs and acquire new ones.
Perform a rolling restart of any SQL or API nodes connected to the MySQL Cluster.
Perform an initial start of the new data nodes.
The new data nodes may be started in any order, and can also be started concurrently, as long as they are started after the rolling restarts of all existing nodes have been completed and before proceeding to the next step.
            Execute one or more CREATE NODEGROUP
            commands in the MySQL Cluster management client to create
            the new node group or node groups to which the new data
            nodes will belong.
          
            Redistribute the cluster's data among all data nodes
            (including the new ones) by issuing an
            ALTER ONLINE
            TABLE ... REORGANIZE PARTITION statement in the
            mysql client for each
            NDBCLUSTER table.
          
              This needs to be done only for tables already existing at
              the time the new node group is added. Data in tables
              created after the new node group is added is distributed
              automatically; however, data added to any given table
              tbl that existed before the new nodes
              were added is not distributed using the new nodes until
              that table has been reorganized using
              ALTER ONLINE
              TABLE tbl REORGANIZE PARTITION.
            
            Reclaim the space freed on the “old” nodes by
            issuing, for each NDBCLUSTER
            table, an OPTIMIZE TABLE
            statement in the mysql client.
          


User Comments
Add your own comment.