reset [--sequential-restart] filter_specification_list cluster_name
filter_specification_list:
filter_specification[,filter_specification][,...]
filter_specification:
attribute_name[:process_specification][+process_specification]]
process_specification:
[process_name][:process_id]
process_name:
{ndb_mgmd|ndbd|ndbmtd|mysqld|ndbapi}
此命令将属性重置为其默认值。可以在进程级别或实例级别设置属性。要在进程级别重置属性,请使用具有形式的过滤器规范
,其中是要重置的属性
的名称,是 MySQL NDB Cluster 进程的名称。要在实例级别重置配置属性,请使用 形式的过滤器规范
,其中是进程 ID。
attribute_name
:process_name
attribute_name
process_name
attribute_name
:process_name
:process_id
process_id
无论进程类型如何,您都不能发出reset
重置给定配置属性的所有值的命令;每个reset
命令都必须指定进程类型或进程实例。否则,命令将失败,如下所示:
mcm> reset DataMemory mycluster;
ERROR 3 (00MGR): Illegal syntax
您也不能使用单个过滤器规范恢复给定流程类型或流程实例的所有配置属性;您必须始终包含要重置的属性的名称。否则,reset
命令将失败,如下所示:
mcm> reset :ndbd mycluster;
ERROR 3 (00MGR): Illegal syntax
mcm> reset :ndbd:3 mycluster;
ERROR 3 (00MGR): Illegal syntax
假设集群中所有ndbd
进程的数据内存mycluster
已设置为 500 MB,如以下
get
命令的输出所示:
mcm> get DataMemory mycluster;
+------------+-------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+------------+-------+----------+-----+----------+-----+---------+---------+
| DataMemory | 500M | ndbd | 2 | | | Process | |
| DataMemory | 500M | ndbd | 3 | | | Process | |
+------------+-------+----------+-----+----------+-----+---------+---------+
2 rows in set (1.91 sec)
我们可以从Level
列中
的条目中看到,两个ndbdDataMemory
进程的设置都适用于进程级别。无法在实例级别重置进程级别设置,如下所示:
mcm> reset DataMemory:ndbd:2 mycluster;
ERROR 6010 (00MGR): No matching user defined setting was
found for config attribute DataMemory
mcm> reset DataMemory:ndbd:3 mycluster;
ERROR 6010 (00MGR): No matching user defined setting was
found for config attribute DataMemory
以下reset
命令也不起作用,尽管您可能认为它会这样做,因为它试图为两个
ndbd进程重置属性值:
mcm> reset DataMemory:ndbd:2,DataMemory:ndbd:3 mycluster;
ERROR 6010 (00MGR): No matching user defined setting was
found for config attribute DataMemory
前面的命令失败,因为 MySQL 集群管理器将此视为应用两个实例级配置更改的尝试。因为该DataMemory
设置是进程级别的设置,所以您必须在进程级别重置
DataMemory
为默认值;您可以通过DataMemory:ndbd
在
reset
命令中使用过滤器规范来执行此操作,如下所示:
mcm> reset DataMemory:ndbd mycluster;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (6.16 sec)
如果您执行与get
之前所示相同的命令,结果现在为空:
mcm> get DataMemory mycluster;
Empty set (0.74 sec)
这是因为默认情况下该get
命令不报告默认值。DataMemory
要在重置值后检索
值,您必须get
使用
--include-defaults
(short form:
-d
) 选项调用:
mcm> get --include-defaults DataMemory mycluster;
+------------+----------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+------------+----------+----------+-----+----------+-----+---------+---------+
| DataMemory | 83886080 | ndbd | 2 | | | Default | |
| DataMemory | 83886080 | ndbd | 3 | | | Default | |
+------------+----------+----------+-----+----------+-----+---------+---------+
2 rows in set (1.21 sec)
这些DataMemory
值现在包含在输出中,并用列中的单词
Default
标记Comments
。
现在假设在名为 named 的集群
中具有 ID
的
mysqld进程的mysqld配置属性先前已设置为此处所示的值,并且没有对该属性进行其他更改:
wait_timeout
4
mycluster
200
mcm> set wait_timeout:mysqld:4=200 mycluster;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (7.78 sec)
mcm> get -d wait_timeout:mysqld:4 mycluster;
+--------------+-------+----------+-----+----------+-----+-------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+--------------+-------+----------+-----+----------+-----+-------+---------+
| wait_timeout | 200 | mysqld | 4 | | | | |
+--------------+-------+----------+-----+----------+-----+-------+---------+
1 row in set (0.98 sec)
因为该Level
列是空的,所以我们知道此设置适用于实例级别。如果您尝试在进程级别重置它,尝试将失败,如下所示:
mcm> reset wait_timeout:mysqld mycluster2;
ERROR 6010 (00MGR): No matching user defined setting was
found for config attribute wait_timeout
如果您希望将此属性重置为其默认值,则必须使用reset
具有实例级过滤器规范的命令
wait_timeout:mysqld:4
,如下所示:
mcm> reset wait_timeout:mysqld:4 mycluster;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (7.61 sec)
重置wait_timeout
后,它不再出现在先前
get
命令的输出中:
mcm> get wait_timeout:mysqld mycluster;
Empty set (1.42 sec)
这是因为该
get
命令的默认行为是仅显示那些由 MySQL 集群管理器或用户设置的值。由于wait_timeout
已被允许恢复为默认值,您必须使用
--include-defaults
(short form:
-d
) 选项来检索它,如下所示:
mcm> get -d wait_timeout:mysqld mycluster;
+--------------+-------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+--------------+-------+----------+-----+----------+-----+---------+---------+
| wait_timeout | 28800 | mysqld | 4 | | | Default | |
+--------------+-------+----------+-----+----------+-----+---------+---------+
1 row in set (1.66 sec)
现在考虑对配置属性进行进程级和实例级设置的情况;在这个例子中,我们使用
IndexMemory
. 首先,验证 是否IndexMemory
为所有数据节点进程设置为默认值(在本例中,有两个):
mcm> get -d IndexMemory mycluster;
+-------------+----------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+-------------+----------+----------+-----+----------+-----+---------+---------+
| IndexMemory | 18874368 | ndbd | 2 | | | Default | |
| IndexMemory | 18874368 | ndbd | 3 | | | Default | |
+-------------+----------+----------+-----+----------+-----+---------+---------+
2 rows in set (1.24 sec)
现在将进程级别的更改和实例级别的更改应用到该属性。您可以使用单个
set
命令执行此操作,如下所示:
mcm> set IndexMemory:ndbd=500M,IndexMemory:ndbd:3=750M mycluster;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (7.29 sec)
因为首先指定了进程级更改,所以ndbd进程被第二个指定的实例级更改覆盖。以下get
命令的输出确认是这种情况:
mcm> get IndexMemory mycluster;
+-------------+-------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+-------------+-------+----------+-----+----------+-----+---------+---------+
| IndexMemory | 500M | ndbd | 2 | | | Process | |
| IndexMemory | 750M | ndbd | 3 | | | | |
+-------------+-------+----------+-----+----------+-----+---------+---------+
2 rows in set (0.85 sec)
如果具有进程 ID
的ndbd进程
的实例级 IndexMemory 设置
3
被重置,进程级设置仍然适用,如下所示:
mcm> reset IndexMemory:ndbd:3 mycluster;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (6.41 sec)
mcm> get IndexMemory mycluster;
+-------------+-------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+-------------+-------+----------+-----+----------+-----+---------+---------+
| IndexMemory | 500M | ndbd | 2 | | | Process | |
| IndexMemory | 500M | ndbd | 3 | | | Process | |
+-------------+-------+----------+-----+----------+-----+---------+---------+
2 rows in set (1.09 sec)
现在,重新应用实例级
IndexMemory
设置,并使用 get 验证它是否已生效:
mcm> set IndexMemory:ndbd:3=750M mycluster;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (6.79 sec)
mcm> get IndexMemory mycluster;
+-------------+-------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+-------------+-------+----------+-----+----------+-----+---------+---------+
| IndexMemory | 500M | ndbd | 2 | | | Process | |
| IndexMemory | 750M | ndbd | 3 | | | | |
+-------------+-------+----------+-----+----------+-----+---------+---------+
2 rows in set (1.76 sec)
如果重置进程级设置,实例级设置将保留,并且只有具有进程 ID的ndbd2
进程将其
IndexMemory
重置为默认值;实例级设置仍然有效,您可以从以下命令序列中看到:
mcm> reset IndexMemory:ndbd mycluster;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (7.36 sec)
mcm> get -d IndexMemory mycluster;
+-------------+----------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+-------------+----------+----------+-----+----------+-----+---------+---------+
| IndexMemory | 18874368 | ndbd | 2 | | | Default | |
| IndexMemory | 750M | ndbd | 3 | | | | |
+-------------+----------+----------+-----+----------+-----+---------+---------+
2 rows in set (0.10 sec)
如果设置的原始命令中说明符的顺序IndexMemory
被反转为
IndexMemory:ndbd:3=750M,IndexMemory:ndbd=500M
,则实例级更改将被进程级更改覆盖,并且
两个ndbd进程
的结果IndexMemory
设置将为。正如其他地方所讨论的,在影响同一进程的实例级设置之后进行的进程级设置会完全删除实例级设置;实例级别的设置不会被保留,在进程级别重置属性只会恢复该类型所有进程的默认设置。看500M
第 4.5 节,“MySQL 集群管理器配置命令”,了解更多信息。
和命令完全支持get
多
reset
条目复制属性;例如,如果
replicate_ignore_table
属性有多个条目:
mcm> get replicate_ignore_table:mysqld mycluster;
+------------------------+--------------+----------+---------+----------+---------+---------+-------------+
| Name | Value | Process1 | NodeId1 | Process2 |NodeId2 | Level | Comment |
+------------------------+--------------+----------+---------+----------+---------+---------+-------------+
| 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.mytable | mysqld | 51 | | | Process | Multi-entry |
+------------------------+--------------+----------+---------+----------+---------+---------+-------------+
5 rows in set (0.05 sec)
在不指定节点 ID 的情况下,与指定进程类型关联的所有属性条目都将使用以下命令重置:
mcm> reset replicate_ignore_table:mysqld mycluster; # removes all process level entries
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (0.47 sec)
mcm> get replicate_ignore_table:mysqld mycluster;
+------------------------+----------+----------+---------+----------+---------+-------+-------------+
| Name | Value | Process1 | NodeId1 | Process2 | NodeId2 | Level | Comment |
+------------------------+----------+----------+---------+----------+---------+-------+-------------+
| replicate_ignore_table | mydb.t1 | mysqld | 50 | | | | Multi-entry |
| replicate_ignore_table | mydb.t50 | mysqld | 50 | | | | Multi-entry |
| replicate_ignore_table | mydb.t51 | mysqld | 51 | | | | Multi-entry |
+------------------------+----------+----------+---------+----------+---------+-------+-------------+
3 rows in set (0.08 sec)
指定节点 ID 后,只有与节点 ID 关联的实例条目会被以下命令重置:
mcm> reset replicate_ignore_table:mysqld:51 mycluster; # removes all instance level entries for nodeid 51
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (0.57 sec)
mcm> get replicate_ignore_table:mysqld mycluster;
+------------------------+----------+----------+---------+----------+---------+-------+-------------+
| Name | Value | Process1 | NodeId1 | Process2 | NodeId2 | Level | Comment |
+------------------------+----------+----------+---------+----------+---------+-------+-------------+
| replicate_ignore_table | mydb.t1 | mysqld | 50 | | | | Multi-entry |
| replicate_ignore_table | mydb.t50 | mysqld | 50 | | | | Multi-entry |
+------------------------+----------+----------+---------+----------+---------+-------+-------------+
2 rows in set (0.09 sec)
reset
commands are executed whether or not
the cluster has been started. In a cluster that is not running,
the MySQL Cluster Manager merely updates the configuration files. However, in a
running cluster, the MySQL Cluster Manager in addition automatically performs
any node restarts or rolling restarts (see
Performing a Rolling Restart of an NDB Cluster) that are
required to cause the attribute changes to take effect
(for MySQL Cluster Manager 1.4.8 and later, use the
--sequential-restart
option
to make the rolling restart a
sequential
one). However, since restart operations—particularly
rolling restarts—can take a great deal of time, it is
preferable to make configuration changes before starting the
cluster and putting it into use.
Resetting TCP Connection Attributes.
Certain configuration attributes, such as those relating to
TCP connections, apply to connections between processes rather
than to individual processes or individual process types. As
shown elsewhere (see Setting TCP Connection Attributes),
when you set such an attribute on the process level using
MySQL Cluster Manager, this means that the attribute applies to all
connections between the two types of processes specified when
issuing the set
command. It
is also possible to set such an attribute on the instance
level, in which case it applies only to a single connection
between two process instances.
Similarly, it is possible to reset such an attribute on either
the process or instance level, depending on the level or levels
at which it was set. In either case, an extended form of the
process specifier is required, just as it is when setting an
attribute that applies to a connection between processes. Assume
that the SendBufferMemory
attribute has previously been set for all connections between
the two ndbd processes and the two
mysqld processes that are found in a MySQL NDB Cluster
named mycluster2
, as shown in the output of
this get
command:
mcm> get SendBufferMemory mycluster2;
+------------------+-------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+------------------+-------+----------+-----+----------+-----+---------+---------+
| SendBufferMemory | 4M | ndbd | 2 | mysqld | 4 | Process | |
| SendBufferMemory | 4M | ndbd | 2 | mysqld | 5 | Process | |
| SendBufferMemory | 4M | ndbd | 3 | mysqld | 4 | Process | |
| SendBufferMemory | 8M | ndbd | 3 | mysqld | 5 | | |
+------------------+-------+----------+-----+----------+-----+---------+---------+
4 rows in set (0.59 sec)
Suppose that you wish to reset
SendBufferMemory
only for
the connection between the ndbd process
having process ID 3
and the
mysqld process having process ID
5
. The
SendBufferMemory
setting
that applies to this connection is specified on the instance
level, as you can see because the Level
column value corresponding to this connection is empty; this
means that it is possible to reset this value on the instance
level. You can do this using the reset
command shown here:
mcm> reset SendBufferMemory:ndbd:3+mysqld:5 mycluster2;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (7.03 sec)
You can verify that the attribute was reset using the
get
command. However, as noted
previously, once the instance-level setting has been removed,
the process-level setting for this attribute again takes effect,
so that the same setting applies to all connections between
ndbd and mysqld processes,
as shown here:
mcm> get SendBufferMemory mycluster2;
+------------------+-------+----------+-----+----------+-----+---------+---------+
| Name | Value | Process1 | Id1 | Process2 | Id2 | Level | Comment |
+------------------+-------+----------+-----+----------+-----+---------+---------+
| SendBufferMemory | 4M | ndbd | 2 | mysqld | 4 | Process | |
| SendBufferMemory | 4M | ndbd | 2 | mysqld | 5 | Process | |
| SendBufferMemory | 4M | ndbd | 3 | mysqld | 4 | Process | |
| SendBufferMemory | 4M | ndbd | 3 | mysqld | 5 | Process | |
+------------------+-------+----------+-----+----------+-----+---------+---------+
4 rows in set (0.87 sec)
To reset this attribute on the process level, you can use the
following reset
command:
mcm> reset SendBufferMemory:ndbd+mysqld mycluster2;
+-----------------------------------+
| Command result |
+-----------------------------------+
| Cluster reconfigured successfully |
+-----------------------------------+
1 row in set (8.01 sec)
You can verify that the attribute has been reset for all
connection between ndbd processes and
mysqld processes, by using the
get
command, as shown here:
mcm> get -d SendBufferMemory mycluster2;
Empty set (1.39 sec)
如本手册其他地方所述(请参阅
第 4.5.1 节,“get
命令”),在这种情况下预期会出现空结果集,即使
使用(或
)选项get
调用时也是
如此,因为 MySQL Cluster Manager 客户端不如果用户未明确设置,则
显示出现在配置文件的或
部分中的
属性。--include-defaults
-d
[tcp]
[shm]
config.ini