10bet网址
MySQL集群管理器1.3用户手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 1.6 mb
PDF (A4)- 1.6 mb


4.1.1的创建集群命令

——package=|-P}package_name{——processhosts = | - r}process_host_listcluster_name[(——导入| - m)cluster_name[——verbose | -v]process_host_listprocess_name[:node_id) @宿主(,process_name@宿主[…]]process_name: {ndb_mgmd | ndbd | ndbmtd | mysqld | ndbapi}

这个命令创建一个由MySQL集群管理器管理的集群。但是,它不会启动集群(参见4.4.7节”启动集群命令”).

这个命令还可以用来创建一个指定为导入另一个不在MySQL集群管理器控制下的集群的目标的集群,如本节后面所述,通过使用——进口选择。另请参阅3.5节,“将MySQL集群导入MySQL集群管理器”

创建集群需要以下参数:

  • 一个package_name的值提供——包选项(简式:- p).这必须是以前注册使用的包的名称添加包

  • 一个列表(process_host_list),它们运行的主机,以及它们的节点id(可选),作为——processhosts选项(简式:- r),列表项之间用逗号分隔。与在MySQL集群管理器命令中作为选项值传递的其他列表一样,您不能在逗号之前或之后使用空格。

    中的每一项process_host_list由MySQL集群进程的名称组成,可能以冒号(字符后接进程节点id,使用双耳(双耳)连接到它所在主机的名称(@(有时也被称为标志)。进程允许的值为ndb_mgmdndbd,mysqld.当集群使用MySQL cluster NDB 7.0或更高版本时,您也可以使用ndbmtd进程名称;换句话说,一个有效的进程名是MySQL集群进程守护进程二进制的名称。如果指定了节点id,它们必须在定义的节点类型允许的范围内。

    为了支持在MySQL集群管理器下的集群中运行你自己的NDB API应用程序,也可以使用ndbapi作为流程类型。这样的应用程序可以连接到托管集群。目前,MySQL集群管理器只识别一个NDB API应用程序连接到集群;NDB API应用本身必须手动启动、停止和配置。

    也可以指定一个或多个免费的mysqld而且ndbapi没有任何主机的进程。为此,只需使用通配符(星号字符)代替主机名或IP地址,如下所示:

    • 免费的mysqld过程:mysqld@ *

    • 免费的ndbapi过程:ndbapi@ *

    也可以指定节点ID免费的的过程。(如果没有指定,MySQL集群管理器会自动分配一个合适的节点ID。)

    一个mysqld过程或ndbapi如果进程没有以这种方式指定主机,则允许它从能够通过网络访问集群的任何主机连接到集群。否则,进程只能从指定的主机连接到集群。

    按惯例,中的项process_host_list按流程类型列出,顺序如下:

    1. 管理节点进程(ndb_mgmd

    2. 数据节点进程(MySQL集群NDB 6.3ndbdMySQL Cluster NDB 7.0及以上版本ndbdndbmtd

    3. SQL节点进程(mysqld

    4. 自定义NDB API应用程序(ndbapi

      有关编写自己的NDB API应用程序的信息,请参见NDB API,在MySQL集群API开发指南

    而项目的列出顺序并不影响创建集群命令成功后,我们建议您遵循这个约定,以提高可读性,以及与其他MySQL集群管理工具的兼容性,例如ndb_mgm

    创建集群导致集群节点id按照节点编号中指定的顺序连续分配process_host_list,数据节点进程的节点id以1开头,数据节点进程以外的进程的节点id以49开头。对于MySQL集群管理器1.3.3和更早的版本,尝试手动分配小于49的节点idndb_mgmdmysqld,或ndbapi失败并报错;不过,这一限制已在两方面有所放宽:

    • 对于MySQL集群管理器1.3.1及更高版本——进口选项导致忽略此限制,本节稍后将对此进行讨论。

    • 对于MySQL集群管理器1.3.4及以后版本,这个限制现在已经完全解除了。但是,仍然建议您遵循为数据节点保留节点ID 1 ~ 48的最佳实践。

    列表中引用的每个主机必须是所使用的包所在站点的一部分创建集群定义。

    对于类型的过程mysqld而且ndbapi,主机名是必需的,但在正在运行的集群中不是强制的。也就是说,an(api)节在集群中创建config.ini文件,但是没有主机名参数指定;因此,mysqldndbapi可以从任何主机连接。(目前,没有办法使用MySQL集群管理器来指定一个mysqldndbapi进程被限制为从单个主机连接。)

  • 集群的名称。一旦创建了集群,这个名称将用于在其他集群管理命令中引用它,例如删除集群启动集群,停止集群.与MySQL集群管理器使用的其他对象名称一样cluster_name根据本文档其他地方给出的标识符规则,必须是有效的(参见第四章,MySQL集群管理客户端命令).

一个额外的——详细选项导致创建集群以便在执行时输出额外的信息,如本节后面所示。

——进口选项,在MySQL集群管理器1.3.0中引入,标记正在创建的集群作为导入MySQL集群管理器外创建的集群的目标。此选项使集群的状态显示为进口的输出中显示状态,如下所示:

MCM >显示进程newcluster状态+--------+----------+-------+--------+-----------+--------------+ | NodeId | | | |主机状态过程节点组|包  | +--------+----------+-------+--------+-----------+--------------+ | α1 | ndb_mgmd | |进口| | newpackage | | 5 | ndbdβ| | |进口n / a | newpackage | | 6 | ndbd |γ| |进口n / a | newpackage | | | 10 mysqldδ进口| | | | newpackage | | 11 | ndbapi | * |导入  | | | +--------+----------+-------+--------+-----------+--------------+ 6行设置(0.04秒)

进口Status导致任何命令启动集群重新启动集群启动过程,停止过程如果它们在进口集群命令已经在该集群上执行。它也不可能执行集群升级在具有with进程的集群上进口的地位。该集群的其他操作将继续正常执行。

从MySQL集群管理器1.3.1开始——进口选项还覆盖了通常的要求(直到MySQL集群管理器1.3.4),即分配给数据节点以外的进程的节点id必须大于48。(错误# 18181039)

谨慎

虽然可以导入到没有此选项创建的集群中,但这是不可取的,因为集群不能防止意外地执行前面列出的任何操作,这可能会导致令人困惑的或误导性的错误,并可能出现其他问题。因此,强烈建议您始终使用——进口在这种情况下创建集群的选项。

关于将集群导入MySQL集群管理器的更多信息,包括示例,请参见3.5节,“将MySQL集群导入MySQL集群管理器”

例子

考虑MySQL集群管理器客户端中发出的以下命令,它创建了一个名为mycluster

创建集群——package=mypackage ->——processhosts=ndb_mgmd@flundra,ndbd@tonfisk,ndbd@grindval,mysqld@flundra -> mycluster;+------------------------------+ | 命令的结果  | +------------------------------+ | 集群成功创建  | +------------------------------+ 1行集(7.71秒)

正如刚才所示的命令所定义的,mycluster由4个节点组成:主机上的一个管理节点flundra;两个数据节点—每个主机上一个tonfisk而且grindval;和一个SQL节点,也在主机上flundra

使用——详细选项导致命令打印类似于流程列表命令,如下所示:

创建集群——verbose——package=mypackage ->——processhosts=ndb_mgmd@flundra,ndbd@tonfisk,ndbd@grindval,mysqld@flundra -> mycluster;+--------+----------+----------+ | NodeId | |主机名称  | +--------+----------+----------+ | 49 | ndb_mgmd | flundra | | 1 | ndbd | tonfisk | | 2 | ndbd | grindval | | 50 | mysqld | flundra  | +--------+----------+----------+ 4行集(0.32秒)

还可以创建此集群的方法是mysqld进程被允许从任何主机连接到集群,并且能够通过网络到达其他集群主机,如下所示:

创建集群——package=mypackage ->——processhosts=ndb_mgmd@flundra,ndbd@tonfisk,ndbd@grindval,mysqld@* -> mycluster;+------------------------------+ | 命令的结果  | +------------------------------+ | 集群成功创建  | +------------------------------+ 1行集(7.71秒)
请注意

在a免费的ndbapiMySQL集群管理器安装在MySQL集群管理器所在的主机上时,不需要安装MySQL集群管理器ndbapi进程正在运行。

对新创建的集群的配置更改可以使用命令,然后启动集群。这通常比在集群启动后进行更可取,因为在正在运行的集群中更改配置的命令可能需要滚动重启,而滚动重启具有许多节点或大量数据(或两者都有)的集群可能需要大量时间才能完成。

请注意

当创建有多个集群时mysqldMySQL集群管理器为每个进程分配MySQL默认端口(3306)。因此,您必须为每个端口分配一个唯一的端口mysqld集群中的进程。