相关的文档10bet官方网站 下载本手册

4.5.2的重置命令

重置(——sequential-restart)filter_specification_listcluster_namefilter_specification_listfilter_specification[,filter_specification][……]filter_specificationattribute_name[:process_specification] [+process_specification]]process_specification:【process_name] [:process_idprocess_name: {ndb_mgmd | ndbd | ndbmtd | mysqld | ndbapi}

该命令将属性重置为默认值。属性可以在流程级或实例级上设置。若要在流程级别上重置属性,请使用具有此表单的筛选器规范attribute_nameprocess_name,在那里attribute_name要重置的属性名称和process_name表示MySQL NDB集群进程名。若要在实例级上重置配置属性,请使用表单的筛选器规范attribute_nameprocess_nameprocess_id,在那里process_id为进程ID。

你不能发出重置不管进程类型如何,重置给定配置属性的所有值的命令;每一个重置命令必须指定进程类型或进程实例。否则,命令执行失败,如下所示:

mcm> reset数据内存mycluster;错误3 (00MGR):语法不合法

您也不能使用单个过滤器规范恢复给定流程类型或流程实例的所有配置属性;必须始终包含要重置的属性的名称。否则,重置命令执行失败,如下所示:

MCM > reset:ndbd mycluster;错误3 (00MGR):非法语法mcm> reset:ndbd:3 mycluster;错误3 (00MGR):语法不合法

假设内存中的数据为全部ndbd已命名的集群中的进程mycluster已设置为500 MB,如此得到命令:

获取数据内存mycluster;+------------+-------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +------------+-------+----------+-----+----------+-----+---------+---------+ | DataMemory | 500 | ndbd | 2 | | |过程| | | DataMemory | 500 | ndbd | 3 | | |过程  | | +------------+-------+----------+-----+----------+-----+---------+---------+ 2行集(1.91秒)

我们可以从条目中看到水平列。DataMemory同时设置ndbd流程应用于流程级别。进程级设置不能在实例级上重置,如下所示:

mcm> reset DataMemory:ndbd:2 mycluster;错误6010 (00MGR):没有匹配的用户定义设置发现配置属性DataMemory mcm> reset DataMemory:ndbd:3 mycluster;错误6010 (00MGR):没有为配置属性DataMemory找到匹配的用户定义设置

以下重置Command也不起作用,尽管您可能认为它会这样做,因为它试图为这两个属性重置属性值ndbd过程:

mcm> reset数据内存:ndbd:2,数据内存:ndbd:3 mycluster;错误6010 (00MGR):没有为配置属性DataMemory找到匹配的用户定义设置

前面的命令失败了,因为MySQL集群管理器认为这是应用两个实例级配置更改的尝试。因为DataMemory设置是流程级设置,您必须进行重置DataMemory到其在流程级别上的默认值;您可以通过使用筛选器规范来做到这一点DataMemory: ndbd重置命令,如下所示:

mcm> reset DataMemory:ndbd mycluster;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行集(6.16秒)

如果你执行同样的操作得到命令,结果现在是空的:

获取数据内存mycluster;空集(0.74秒)

这是因为得到default命令不报告默认值。检索DataMemory值重新设置后,必须调用得到使用——include-defaults(简式:- d)选项:

mcm> get——include-defaults DataMemory mycluster;+------------+----------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +------------+----------+----------+-----+----------+-----+---------+---------+ | DataMemory | 83886080 | ndbd | 2 | | |默认| | | DataMemory | 83886080 | ndbd | 3 | | |违约  | | +------------+----------+----------+-----+----------+-----+---------+---------+ 2行集(1.21秒)

DataMemory值现在包含在输出中,并用单词标记默认的评论列。

现在假设mysqld配置属性wait_timeoutmysqld具有ID的进程4在命名为mycluster是否已设置为该值200如下所示,并且没有对该属性进行其他更改:

set wait_timeout:mysqld:4=200 mycluster;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行集(7.78秒)mcm > - d wait_timeout: mysqld: 4 mycluster;+--------------+-------+----------+-----+----------+-----+-------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +--------------+-------+----------+-----+----------+-----+-------+---------+ | wait_timeout | 200 | mysqld | 4  | | | | | +--------------+-------+----------+-----+----------+-----+-------+---------+ 1行集(0.98秒)

因为水平列为空时,我们知道此设置应用于实例级。如果您尝试在进程级别重置它,尝试失败,如下所示:

MCM > reset wait_timeout:mysqld mycluster2;错误6010 (00MGR):没有为配置属性wait_timeout找到匹配的用户定义设置

如果希望将此属性重置为默认值,必须使用重置命令使用实例级筛选器规范wait_timeout: mysqld: 4,如图所示:

MCM > reset wait_timeout:mysqld:4 mycluster;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行集(7.61秒)

一旦你重置了wait_timeout,它不再出现在较早的输出中得到命令:

MCM > get wait_timeout:mysqld mycluster;空集(1.42秒)

的默认行为得到命令只显示MySQL集群管理器或用户设置的值。自wait_timeout已被允许恢复为默认值,则必须使用——include-defaults(简式:- d)选项来检索,如下所示:

MCM > get -d wait_timeout:mysqld;+--------------+-------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +--------------+-------+----------+-----+----------+-----+---------+---------+ | wait_timeout | 28800 | mysqld | 4 | | |违约  | | +--------------+-------+----------+-----+----------+-----+---------+---------+ 1行集(1.66秒)

现在考虑这样一种情况,在这种情况下,流程级和实例级设置已经对配置属性进行了设置;在本例中,我们使用IndexMemory.首先,验证一下IndexMemory为所有数据节点进程设置默认值(在本例中,有两个数据节点进程):

get -d IndexMemory mycluster;+-------------+----------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +-------------+----------+----------+-----+----------+-----+---------+---------+ | IndexMemory | 18874368 | ndbd | 2 | | |默认| | | IndexMemory | 18874368 | ndbd | 3 | | |违约  | | +-------------+----------+----------+-----+----------+-----+---------+---------+ 2行集(1.24秒)

现在,对该属性应用流程级更改和实例级更改。你可以用单杯来做命令,如下所示:

mcm> set IndexMemory:ndbd=500M,IndexMemory:ndbd:3=750M mycluster;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行集(7.29秒)

由于先指定了流程级更改,因此将为ndbd按秒指定的实例级更改处理。输出如下得到Command确认这种情况:

获取IndexMemory mycluster;+-------------+-------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +-------------+-------+----------+-----+----------+-----+---------+---------+ | IndexMemory | 500 | ndbd | 2 | | |过程| | | IndexMemory | 750 | ndbd | 3  | | | | | +-------------+-------+----------+-----+----------+-----+---------+---------+ 2行集(0.85秒)

的实例级IndexMemory设置ndbd带进程号的进程3.重置时,流程级设置仍然应用,如下所示:

mcm> reset IndexMemory:ndbd:3 mycluster;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行组(6.41秒)mcm > IndexMemory mycluster;+-------------+-------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +-------------+-------+----------+-----+----------+-----+---------+---------+ | IndexMemory | 500 | ndbd | 2 | | |过程| | | IndexMemory | 500 | ndbd | 3 | | |过程  | | +-------------+-------+----------+-----+----------+-----+---------+---------+ 2行集(1.09秒)

现在,重新应用实例级IndexMemory设置,并使用get验证它已生效:

mcm> set IndexMemory:ndbd:3=750M mycluster;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行组(6.79秒)mcm > IndexMemory mycluster;+-------------+-------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +-------------+-------+----------+-----+----------+-----+---------+---------+ | IndexMemory | 500 | ndbd | 2 | | |过程| | | IndexMemory | 750 | ndbd | 3  | | | | | +-------------+-------+----------+-----+----------+-----+---------+---------+ 2行集(1.76秒)

如果重置流程级设置,则实例级设置保留,并且只有ndbd有进程ID的进程2有其IndexMemory重置为默认值;实例级设置仍然有效,你可以从下面的命令序列中看到:

mcm> reset IndexMemory:ndbd mycluster;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行组(7.36秒)mcm > - d IndexMemory mycluster;+-------------+----------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +-------------+----------+----------+-----+----------+-----+---------+---------+ | IndexMemory | 18874368 | ndbd | 2 | | |默认| | | IndexMemory | 750 | ndbd | 3  | | | | | +-------------+----------+----------+-----+----------+-----+---------+---------+ 2行集(0.10秒)
请注意

如果指定符的顺序在原命令中设置IndexMemory被颠倒成了IndexMemory: ndbd: 3 = 750, IndexMemory: ndbd = 500,实例级更改将被流程级更改覆盖,以及由此产生的结果IndexMemory同时设置ndbd过程将是500米.正如在其他地方讨论的那样,在实例级设置之后进行的进程级设置会完全删除影响同一进程的实例级设置;实例级设置不会被保留,在进程级上重新设置该属性只是恢复该类型的所有进程的默认设置。看到章节4.5,“MySQL集群管理器配置命令”,以获取更多资料。

得到而且重置命令完全支持多表项复制属性;例如,如果replicate_ignore_table属性有多个条目:

MCM > get replicate_ignore_table:mysqld;+------------------------+--------------+----------+---------+----------+---------+---------+-------------+ | 名称|值| Process1 | 8 NodeId1 | Process2 | NodeId2 | |发表评论  | +------------------------+--------------+----------+---------+----------+---------+---------+-------------+ | replicate_ignore_table | mydb。t1 | mysqld | 50 | | | | Multi-entry | | replicate_ignore_table | mydb。t50 | mysqld | 50 | | | | Multi-entry | | replicate_ignore_table | mydb。mytable | mysqld | 50 | | | Process | Multi-entry | | replicate_ignore_table | mydb。t51 | mysqld | 51 | | | | Multi-entry | | replicate_ignore_table | mydb。51 mytable mysqld | | | | | |过程多次入境  | +------------------------+--------------+----------+---------+----------+---------+---------+-------------+ 5行集(0.05秒)

在不指定节点ID的情况下,所有与指定进程类型关联的属性项都将使用以下命令重置:

MCM > reset replicate_ignore_table:mysqld;#删除所有流程级别条目  +-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行集(0.47秒)mcm > replicate_ignore_table: mysqld mycluster;+------------------------+----------+----------+---------+----------+---------+-------+-------------+ | 名称|值| Process1 | 8 NodeId1 | Process2 | NodeId2 | |发表评论  | +------------------------+----------+----------+---------+----------+---------+-------+-------------+ | replicate_ignore_table | mydb。t1 | mysqld | 50 | | | | Multi-entry | | replicate_ignore_table | mydb。t50 | mysqld | 50 | | | | Multi-entry | | replicate_ignore_table | mydb。51 t51 mysqld | | | | | |除尘  | +------------------------+----------+----------+---------+----------+---------+-------+-------------+ 3行集(0.08秒)

如果指定了节点ID,则只重置与该节点ID关联的实例表项:

MCM > reset replicate_ignore_table:mysqld:51 mycluster;#删除实例级nodeid 51的所有条目  +-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行集(0.57秒)mcm > replicate_ignore_table: mysqld mycluster;+------------------------+----------+----------+---------+----------+---------+-------+-------------+ | 名称|值| Process1 | 8 NodeId1 | Process2 | NodeId2 | |发表评论  | +------------------------+----------+----------+---------+----------+---------+-------+-------------+ | replicate_ignore_table | mydb。t1 | mysqld | 50 | | | | Multi-entry | | replicate_ignore_table | mydb。除尘t50 | mysqld 50 | | | | |  | +------------------------+----------+----------+---------+----------+---------+-------+-------------+ 2行集(0.09秒)

重置无论集群是否启动,都将执行命令。在一个没有运行的集群中,MySQL集群管理器仅仅更新配置文件。然而,在一个正在运行的集群中,MySQL集群管理器还会自动执行任何节点重启或滚动重启(参见滚动重启NDB集群),以使属性更改生效(MySQL集群管理器1.4.8及以上版本使用——sequential-restart选项,使滚动重新启动顺序一个)。但是,由于重新启动操作(特别是滚动重新启动)可能会花费大量时间,因此最好在启动集群并将其投入使用之前进行配置更改。

重置TCP连接属性。某些配置属性(例如与TCP连接相关的配置属性)应用于进程之间的连接,而不是应用于单个进程或单个进程类型。如其他地方所示(见设置TCP连接属性),当您使用MySQL集群管理器在进程级别上设置这样一个属性时,这意味着该属性应用于发出命令时指定的两种类型进程之间的所有连接命令。也可以在实例级设置这样的属性,在这种情况下,它只应用于两个流程实例之间的单个连接。

类似地,可以在流程级或实例级上重置这样的属性,这取决于设置属性的级别。在这两种情况下,都需要进程说明符的扩展形式,就像设置应用于进程之间连接的属性时一样。假设SendBufferMemory属性之前已为两者之间的所有连接设置ndbd过程和两个mysqld在MySQL NDB集群中被命名为mycluster2,如此输出所示得到命令:

get SendBufferMemory mycluster2;+------------------+-------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +------------------+-------+----------+-----+----------+-----+---------+---------+ | SendBufferMemory | 4 m | ndbd | 2 | mysqld | 4 |过程| | | SendBufferMemory | 4 m | ndbd | 2 | mysqld | 5 |过程| | | SendBufferMemory | 4 m | ndbd | 3 | mysqld | 4 |过程| | | SendBufferMemory | | 8米ndbd | 3 | mysqld | 5 | | |+------------------+-------+----------+-----+----------+-----+---------+---------+ 4行集(0.59秒)

假设您希望重置SendBufferMemory只为了之间的连接ndbd有进程ID的进程3.mysqld有进程ID的进程5.的SendBufferMemory应用于此连接的设置是在实例级别上指定的,因为水平与此连接对应的列值为空;这意味着可以在实例级别上重置这个值。可以使用重置命令如下所示:

SendBufferMemory:ndbd:3+mysqld:5 mycluster2;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行集(7.03秒)

方法可以验证该属性是否已重置得到命令。但是,如前所述,一旦删除了实例级设置,此属性的流程级设置将再次生效,因此相同的设置将应用于之间的所有连接ndbd而且mysqld进程,如下所示:

get SendBufferMemory mycluster2;+------------------+-------+----------+-----+----------+-----+---------+---------+ | 名称|值| Process1 | 8 Id1 | Process2 | Id2 |评论|水平  | +------------------+-------+----------+-----+----------+-----+---------+---------+ | SendBufferMemory | 4 m | ndbd | 2 | mysqld | 4 |过程| | | SendBufferMemory | 4 m | ndbd | 2 | mysqld | 5 |过程| | | SendBufferMemory | 4 m | ndbd | 3 | mysqld | 4 |过程| | | SendBufferMemory | 4 m | ndbd | 3 | mysqld流程| 5 | | |+------------------+-------+----------+-----+----------+-----+---------+---------+ 4行集(0.87秒)

要在流程级别上重置此属性,可以使用以下方法重置命令:

SendBufferMemory:ndbd+mysqld mycluster2;+-----------------------------------+ | 命令的结果  | +-----------------------------------+ | 集群配置成功  | +-----------------------------------+ 1行集(8.01秒)

您可以验证之间的所有连接的属性都已重置ndbd流程和mysqld进程,通过使用得到命令,如下所示:

获取SendBufferMemory mycluster2;空集(1.39秒)

如本手册其他地方所述(见第4.5.1节,“The得到命令”),在这种情况下,空结果集是预期的,即使得到使用——include-defaults(或- d选项,因为MySQL集群管理器客户端不会显示在(tcp)(shm)各部分config.ini如果用户没有显式设置,则配置文件。