MySQL8-中文参考-九十三-

56 阅读32分钟

MySQL8 中文参考(九十三)

原文:docs.oracle.com/javase/tutorial/reallybigindex.html

25.5.26 ndb_select_count — 打印 NDB 表的行数

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-programs-ndb-select-count.html

ndb_select_count 打印一个或多个 NDB 表中的行数。对于单个表,结果等同于使用 MySQL 语句 SELECT COUNT(*) FROM *tbl_name* 获得的结果。

用法

ndb_select_count [-c *connection_string*] -d*db_name* *tbl_name*[, *tbl_name2*[, ...]]

可与ndb_select_count一起使用的选项如下表所示。表后面会有额外的描述。

表 25.47 与程序 ndb_select_count 一起使用的命令行选项

格式描述添加、弃用或移除
--character-sets-dir=path包含字符集的目录移除:8.0.31
--connect-retries=#放弃之前重试连接的次数(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--connect-retry-delay=#尝试联系管理服务器之间等待的秒数(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--connect-string=connection_string,-c connection_string与 --ndb-connectstring 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--core-file在错误时写入核心文件;用于调试移除:8.0.31
--database=name,-d name表所在数据库的名称(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-extra-file=path在全局文件读取后读取给定文件(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-file=path仅从给定文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-group-suffix=string也读取带有 concat(group, suffix) 的组(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--help,-?显示帮助文本并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--lock=#,-l #锁类型(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--login-path=path从登录文件中读取给定路径(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-connectstring=connection_string,-c connection_string设置连接到 ndb_mgmd 的连接字符串。语法: "[nodeid=id;][host=]hostname[:port]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-mgmd-host=connection_string,-c connection_string与 --ndb-connectstring 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-nodeid=#为此节点设置节点 ID,覆盖由 --ndb-connectstring 设置的任何 ID(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-optimized-node-selection启用用于事务节点选择的优化。默认启用;使用 --skip-ndb-optimized-node-selection 来禁用已移除: 8.0.31
--no-defaults不从登录文件以外的任何选项文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--parallelism=#,-p #并行度(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--print-defaults打印程序参数列表并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--usage,-?显示帮助文本并退出;与 --help 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--version,-V显示版本信息并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
格式描述添加、弃用或移除
  • --character-sets-dir

    命令行格式--character-sets-dir=path
    移除8.0.31

    包含字符集的目录。

  • --connect-retries

    命令行格式--connect-retries=#
    类型整数
    默认值12
    最小值0
    最大值12

    在放弃之前重试连接的次数。

  • --connect-retry-delay

    命令行格式--connect-retry-delay=#
    类型整数
    默认值5
    最小值0
    最大值5

    尝试联系管理服务器之间等待的秒数。

  • --connect-string

    命令行格式--connect-string=connection_string
    类型字符串
    默认值[none]

    --ndb-connectstring 相同。

  • --core-file

    命令行格式--core-file
    移除8.0.31

    在错误时写入核心文件;用于调试。

  • --defaults-file

    命令行格式--defaults-file=path
    类型字符串
    默认值[none]

    仅从给定文件中读取默认选项。

  • --defaults-extra-file

    命令行格式--defaults-extra-file=path
    类型字符串
    默认值[none]

    在全局文件读取后读取给定文件。

  • --defaults-group-suffix

    命令行格式--defaults-group-suffix=string
    类型字符串
    默认值[none]

    同时读取带有 concat(group, suffix) 的组。

  • --login-path

    命令行格式--login-path=path
    类型字符串
    默认值[none]

    从登录文件中读取给定路径。

  • --help

    命令行格式--help

    显示帮助文本并退出。

  • --ndb-connectstring

    命令行格式--ndb-connectstring=connection_string
    类型字符串
    默认值[none]

    设置连接到 ndb_mgmd 的连接字符串。语法:"[nodeid=id;][host=]hostname[:port]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目。

  • --ndb-mgmd-host

    命令行格式--ndb-mgmd-host=connection_string
    类型字符串
    默认值[none]

    --ndb-connectstring相同。

  • --ndb-optimized-node-selection

    命令行格式--ndb-optimized-node-selection
    已移除8.0.31

    启用优化以选择事务节点。默认启用;使用--skip-ndb-optimized-node-selection来禁用。

  • --ndb-nodeid

    命令行格式--ndb-nodeid=#
    类型整数
    默认值[none]

    为此节点设置节点 ID,覆盖由--ndb-connectstring设置的任何 ID。

  • --no-defaults

    命令行格式--no-defaults

    不要从除登录文件以外的任何选项文件中读取默认选项。

  • --print-defaults

    命令行格式--print-defaults

    打印程序参数列表并退出。

  • --usage

    命令行格式--usage

    显示帮助文本并退出;与--help相同。

  • --version

    命令行格式--version

    显示版本信息并退出。

通过在调用此命令时用空格分隔的表名列表,可以从同一数据库中获取多个表的行数,如示例输出所示。

示例输出

$> ./ndb_select_count -c localhost -d ctest1 fish dogs
6 records in table fish
4 records in table dogs

25.5.27 ndb_show_tables — 显示 NDB 表的列表

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-programs-ndb-show-tables.html

ndb_show_tables 显示集群中所有NDB数据库对象的列表。默认情况下,这不仅包括用户创建的表和NDB系统表,还包括NDB特定的索引、内部触发器和 NDB 集群磁盘数据对象。

可与 ndb_show_tables 一起使用的选项显示在下表中。表后面是附加描述。

表 25.48 与程序 ndb_show_tables 一起使用的命令行选项

格式描述添加、弃用或移除
--character-sets-dir=path包含字符集的目录移除:8.0.31
--connect-retries=#放弃之前重试连接的次数(在基于 MySQL 8.0 的所有 NDB 发行版中支持)
--connect-retry-delay=#尝试联系管理服务器之间等待的秒数(在基于 MySQL 8.0 的所有 NDB 发行版中支持)
--connect-string=connection_string,-c connection_string与 --ndb-connectstring 相同(在基于 MySQL 8.0 的所有 NDB 发行版中支持)
--core-file在错误时写入核心文件;用于调试移除:8.0.31
--database=name,-d name指定表所在的数据库;数据库名称后必须跟表名(在基于 MySQL 8.0 的所有 NDB 发行版中支持)
--defaults-extra-file=path在读取全局文件后读取给定文件(在基于 MySQL 8.0 的所有 NDB 发行版中支持)
--defaults-file=path仅从给定文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-group-suffix=string还读取具有 concat(group, suffix) 的组(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--login-path=path从登录文件中读取给定路径(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--loops=#,-l #重复输出的次数(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--help,-?显示帮助文本并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-connectstring=connection_string,-c connection_string设置连接到 ndb_mgmd 的连接字符串。语法:“[nodeid=id;][host=]hostname[:port]”。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-mgmd-host=connection_string,-c connection_string与 --ndb-connectstring 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-nodeid=#设置此节点的节点 ID,覆盖 --ndb-connectstring 设置的任何 ID(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-optimized-node-selection启用用于事务节点选择的优化。默认情况下启用;使用 --skip-ndb-optimized-node-selection 来禁用已移除: 8.0.31
--no-defaults不从登录文件以外的任何选项文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--parsable,-p返回适用于 MySQL LOAD DATA 语句的输出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--print-defaults打印程序参数列表并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--show-temp-status显示表临时标志(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--type=#,-t #限制输出到此类型的对象(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--unqualified,-u不限定表名(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--usage,-?显示帮助文本并退出;与 --help 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--version,-V显示版本信息并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
格式描述添加、弃用或移除

使用

ndb_show_tables [-c *connection_string*]
  • --character-sets-dir

    命令行格式--character-sets-dir=path
    已移除8.0.31

    包含字符集的目录。

  • --connect-retries

    命令行格式--connect-retries=#
    类型整数
    默认值12
    最小值0
    最大值12

    在放弃之前重试连接的次数。

  • --connect-retry-delay

    命令行格式--connect-retry-delay=#
    类型整数
    默认值5
    最小值0
    最大值5

    尝试联系管理服务器之间等待的秒数。

  • --connect-string

    命令行格式--connect-string=connection_string
    类型字符串
    默认值[无]

    --ndb-connectstring相同。

  • --core-file

    命令行格式--core-file
    已移除8.0.31

    在错误时写入核心文件;用于调试。

  • --database, -d

    指定所找到所需表的数据库的名称。如果给定此选项,则表的名称必须跟在数据库名称后面。

    如果未指定此选项,并且TEST_DB数据库中找不到任何表,则ndb_show_tables会发出警告。

  • --defaults-extra-file

    命令行格式--defaults-extra-file=path
    类型字符串
    默认值[无]

    在读取全局文件后读取给定文件。

  • --defaults-file

    命令行格式--defaults-file=path
    类型字符串
    默认值[无]

    仅从给定文件中读取默认选项。

  • --defaults-group-suffix

    命令行格式--defaults-group-suffix=string
    类型字符串
    默认值[无]

    还读取具有 concat(group, suffix)的组。

  • --help

    命令行格式--help

    显示帮助文本并退出。

  • --login-path

    命令行格式--login-path=path
    类型字符串
    默认值[无]

    从登录文件中读取给定路径。

  • --loops, -l

    指定实用程序应执行的次数。当未指定此选项时,此值为 1,但如果使用该选项,则必须为其提供整数参数。

  • --ndb-connectstring

    命令行格式--ndb-connectstring=connection_string
    类型字符串
    默认值[无]

    设置用于连接到 ndb_mgmd 的连接字符串。语法:"[nodeid=id;][host=]hostname[:port]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目。

  • --ndb-mgmd-host

    命令行格式--ndb-mgmd-host=connection_string
    类型字符串
    默认值[无]

    --ndb-connectstring相同。

  • --ndb-nodeid

    命令行格式--ndb-nodeid=#
    类型整数
    默认值[无]

    为此节点设置节点 ID,覆盖--ndb-connectstring设置的任何 ID。

  • --ndb-optimized-node-selection

    命令行格式--ndb-optimized-node-selection
    已移除8.0.31

    启用用于事务节点选择的优化。默认情况下启用;使用--skip-ndb-optimized-node-selection来禁用。

  • --no-defaults

    命令行格式--no-defaults

    不要从除登录文件以外的任何选项文件中读取默认选项。

  • --parsable, -p

    使用此选项会使输出格式适合与LOAD DATA一起使用。

  • --print-defaults

    命令行格式--print-defaults

    打印程序参数列表并退出。

  • --show-temp-status

    如果指定,将显示临时表。

  • --type, -t

    可用于将输出限制为此处显示的整数类型代码指定的一种对象类型:

    • 1: 系统表

    • 2: 用户创建的表

    • 3: 唯一哈希索引

    任何其他值会导致列出所有NDB数据库对象(默认)。

  • --unqualified, -u

    如果指定,将显示未经限定的对象名称。

  • --usage

    命令行格式--usage

    显示帮助文本并退出;与--help相同。

  • --version

    命令行格式--version

    显示版本信息并退出。

注意

只有用户创建的 NDB Cluster 表可以从 MySQL 访问;系统表如SYSTAB_0mysqld不可见。但是,您可以使用NDB API 应用程序(如ndb_select_all)来检查系统表的内容(请参阅 Section 25.5.25, “ndb_select_all — Print Rows from an NDB Table”)。

在 NDB 8.0.20 之前,该程序在运行完成时打印NDBT_ProgramExit - *status*,因为不必要地依赖于NDBT测试库。已删除此依赖项,消除了多余的输出。

25.5.28 ndb_size.pl — NDBCLUSTER 大小需求估算器

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-programs-ndb-size-pl.html

这是一个 Perl 脚本,可用于估算如果将 MySQL 数据库转换为使用NDBCLUSTER存储引擎所需的空间量。与本节讨论的其他实用程序不同,它不需要访问 NDB 集群(实际上,它没有理由这样做)。但是,它确实需要访问要测试的数据库所在的 MySQL 服务器。

要求

  • 运行中的 MySQL 服务器。服务器实例不必提供对 NDB 集群的支持。

  • 需要安装 Perl。

  • DBI 模块,如果它不是您的 Perl 安装的一部分,可以从 CPAN 获取。(许多 Linux 和其他操作系统发行版为此库提供了自己的软件包。)

  • 具有必要权限的 MySQL 用户帐户。如果您不希望使用现有帐户,则使用 GRANT USAGE ON *db_name*.*—其中 db_name 是要检查的数据库的名称—对于此目的已经足够。

ndb_size.pl 也可以在 MySQL 源代码中的 storage/ndb/tools 中找到。

可与ndb_size.pl一起使用的选项显示在以下表中。表后面会有额外的描述。

表 25.49 与程序 ndb_size.pl 一起使用的命令行选项

格式描述已添加、已弃用或已移除
--database=string要检查的数据库或数据库;逗号分隔的列表;默认为 ALL(使用在服务器上找到的所有数据库)(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--hostname=string指定主机和可选端口的主机[:端口]格式(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--socket=path指定要连接的套接字(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--user=string指定 MySQL 用户名(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--password=password指定 MySQL 用户密码(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--format=string设置输出格式(文本或 HTML)(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--excludetables=list跳过逗号分隔列表中的任何表(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--excludedbs=list跳过逗号分隔列表中的任何数据库(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--savequeries=path将数据库中的所有查询保存到指定文件中(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--loadqueries=path从指定文件加载所有查询;不连接到数据库(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--real_table_name=string指定处理唯一索引大小计算的表(在基于 MySQL 8.0 的所有 NDB 版本中支持)
格式描述添加、弃用或删除

用法

perl ndb_size.pl [--database={*db_name*|ALL}] [--hostname=*host*[:*port*]] [--socket=*socket*] \
      [--user=*user*] [--password=*password*]  \
      [--help|-h] [--format={html|text}] \
      [--loadqueries=*file_name*] [--savequeries=*file_name*]

默认情况下,此实用程序尝试分析服务器上的所有数据库。您可以使用--database选项指定单个数据库;使用ALL作为数据库名称可以明确指定默认行为。您还可以使用逗号分隔的数据库名称列表使用--excludedbs选项排除一个或多个数据库。类似地,您可以通过在可选的--excludetables选项后列出其名称(用逗号分隔)来跳过特定表。可以使用--hostname指定主机名;默认值为localhost。除了主机,还可以使用*host:port*格式为--hostname的值指定端口。默认端口号为 3306。必要时,还可以指定套接字;默认值为/var/lib/mysql.sock。可以使用相应的选项指定 MySQL 用户名和密码。还可以使用--format选项控制输出的格式;可以使用htmltext中的任一值,text为默认值。这里展示了文本输出的示例:

$> ndb_size.pl --database=test --socket=/tmp/mysql.sock
ndb_size.pl report for database: 'test' (1 tables)
--------------------------------------------------
Connected to: DBI:mysql:host=localhost;mysql_socket=/tmp/mysql.sock

Including information for versions: 4.1, 5.0, 5.1

test.t1
-------

DataMemory for Columns (* means varsized DataMemory):
         Column Name            Type  Varsized   Key  4.1  5.0   5.1
     HIDDEN_NDB_PKEY          bigint             PRI    8    8     8
                  c2     varchar(50)         Y         52   52    4*
                  c1         int(11)                    4    4     4
                                                       --   --    --
Fixed Size Columns DM/Row                              64   64    12
   Varsize Columns DM/Row                               0    0     4

DataMemory for Indexes:
   Index Name                 Type        4.1        5.0        5.1
      PRIMARY                BTREE         16         16         16
                                           --         --         --
       Total Index DM/Row                  16         16         16

IndexMemory for Indexes:
               Index Name        4.1        5.0        5.1
                  PRIMARY         33         16         16
                                  --         --         --
           Indexes IM/Row         33         16         16

Summary (for THIS table):
                                 4.1        5.0        5.1
    Fixed Overhead DM/Row         12         12         16
           NULL Bytes/Row          4          4          4
           DataMemory/Row         96         96         48
                    (Includes overhead, bitmap and indexes)

  Varsize Overhead DM/Row          0          0          8
   Varsize NULL Bytes/Row          0          0          4
       Avg Varside DM/Row          0          0         16

                 No. Rows          0          0          0

        Rows/32kb DM Page        340        340        680
Fixedsize DataMemory (KB)          0          0          0

Rows/32kb Varsize DM Page          0          0       2040
  Varsize DataMemory (KB)          0          0          0

         Rows/8kb IM Page        248        512        512
         IndexMemory (KB)          0          0          0

Parameter Minimum Requirements
------------------------------
* indicates greater than default

                Parameter     Default        4.1         5.0         5.1
          DataMemory (KB)       81920          0           0           0
       NoOfOrderedIndexes         128          1           1           1
               NoOfTables         128          1           1           1
         IndexMemory (KB)       18432          0           0           0
    NoOfUniqueHashIndexes          64          0           0           0
           NoOfAttributes        1000          3           3           3
             NoOfTriggers         768          5           5           5

为了调试目的,可以从指定文件中读取此脚本运行的 Perl 数组包含的查询,并使用--savequeries将其保存到文件中;可以使用--loadqueries指定包含在脚本执行期间读取的数组的文件。这两个选项都没有默认值。

要以 HTML 格式生成输出,请使用--format选项并将输出重定向到文件,如下所示:

$> ndb_size.pl --database=test --socket=/tmp/mysql.sock --format=html > ndb_size.html

(如果没有重定向,则输出将发送到stdout。)

此脚本的输出包括以下信息:

  • 为了容纳分析的表所需的DataMemoryIndexMemoryMaxNoOfTablesMaxNoOfAttributesMaxNoOfOrderedIndexesMaxNoOfTriggers配置参数的最小值。

  • 数据库中定义的所有表、属性、有序索引和唯一哈希索引的内存需求。

  • 每个表和表行所需的IndexMemoryDataMemory

25.5.29 ndb_top — 查看 NDB 线程的 CPU 使用信息

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-programs-ndb-top.html

ndb_top 在终端中显示有关 NDB 线程在 NDB Cluster 数据节点上的 CPU 使用情况的运行信息。每个线程在输出中由两行表示,第一行显示系统统计信息,第二行显示线程的测量统计信息。

ndb_top 从 MySQL NDB Cluster 7.6.3 版本开始提供。

使用方法

ndb_top [-h *hostname*] [-t *port*] [-u *user*] [-p *pass*] [-n *node_id*]

ndb_top 连接到作为集群的 SQL 节点运行的 MySQL Server。默认情况下,它尝试连接到在 localhost 和端口 3306 上运行的 mysqld,作为 MySQL root 用户,未指定密码。您可以使用 --host (-h) 和 --port (-t) 分别覆盖默认主机和端口。要指定 MySQL 用户和密码,请使用 --user (-u) 和 --passwd (-p) 选项。此用户必须能够读取 ndbinfo 数据库中的表(ndb_top 使用来自 ndbinfo.cpustat 和相关表的信息)。

欲了解更多关于 MySQL 用户账户和密码的信息,请参阅 Section 8.2, “访问控制和账户管理”。

输出可作为纯文本或 ASCII 图形获得;您可以使用 --text (-x) 和 --graph (-g) 选项分别指定。这两种显示模式提供相同的信息;它们可以同时使用。至少一个显示模式必须在使用中。

图形的彩色显示受支持并默认启用 (--color-c 选项)。启用彩色支持后,图形显示中显示 OS 用户时间为蓝色,OS 系统时间为绿色,空闲时间为空白。对于测量负载,蓝色用于执行时间,黄色用于发送时间,红色用于在发送缓冲区满等待的时间,空白用于空闲时间。图形显示中显示的百分比是所有非空闲线程的百分比之和。目前无法配置颜色;您可以使用 --skip-color 来使用灰度代替。

排序视图 (--sort, -r) 基于测量负载的最大值和操作系统报告的负载。可以使用 --measured-load (-m) 和 --os-load (-o) 选项启用和禁用这些负载的显示。这些负载中至少一个必须启用显示。

程序尝试从具有由--node-id (-n) 选项给定的节点 ID 的数据节点获取统计信息;如果未指定,则为 1. ndb_top 无法提供关于其他类型节点的信息。

视图会根据终端窗口的高度和宽度自动调整;最小支持宽度为 76 个字符。

一旦启动,ndb_top 将持续运行直到强制退出;您可以使用 Ctrl-C 退出程序。显示每秒更新一次;要设置不同的延迟间隔,请使用 --sleep-time (-s)。

注意

ndb_top 可在 macOS、Linux 和 Solaris 上使用。目前不支持在 Windows 平台上。

以下表格包含所有特定于 NDB 集群程序 ndb_top 的选项。表格后面是附加描述。

表 25.50 与程序 ndb_top 一起使用的命令行选项

格式描述添加、弃用或移除
--color,-c以彩色显示 ASCII 图形;使用 --skip-colors 可以禁用(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-extra-file=path在读取全局文件后读取给定文件(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-file=path仅从给定文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-group-suffix=string还读取具有 concat(group, suffix) 的组(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--graph,-g使用图表显示数据;使用 --skip-graphs 禁用(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--help显示程序使用信息(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--host=string,-h string要连接的 MySQL 服务器的主机名或 IP 地址(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--login-path=path从登录文件中读取给定路径(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--measured-load,-m按线程显示测量负载(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--no-defaults不从登录文件以外的任何选项文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--node-id=#,-n #查看具有此节点 ID 的节点(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--os-load,-o操作系统测量的负载显示(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--password=password,-p password使用此密码连接(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--port=#,-P # (>=7.6.6)连接到 MySQL 服务器时要使用的端口号(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--print-defaults打印程序参数列表并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--sleep-time=#,-s #显示刷新之间等待的时间,以秒为单位(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--socket=path,-S path用于连接的套接字文件(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--sort,-r按使用情况对线程进行排序;使用 --skip-sort 来禁用(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--text,-t (>=7.6.6)使用文本显示数据(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--usage显示程序使用信息;与 --help 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--user=name,-u name以此 MySQL 用户连接(在基于 MySQL 8.0 的所有 NDB 版本中支持)
格式描述添加、弃用或移除

附加选项

  • --color, -c

    命令行格式--color

    以彩色显示 ASCII 图形;使用 --skip-colors 来禁用。

  • --defaults-extra-file

    命令行格式--defaults-extra-file=path
    类型字符串
    默认值[none]

    在读取全局文件后读取给定文件。

  • --defaults-file

    命令行格式--defaults-file=path
    类型字符串
    默认值[none]

    仅从给定文件中读取默认选项。

  • --defaults-group-suffix

    命令行格式--defaults-group-suffix=string
    类型字符串
    默认值[none]

    还读取带有 concat(group, suffix) 的组。

  • --graph, -g

    命令行格式--graph

    使用图形显示数据;使用 --skip-graphs 来禁用。此选项或 --text 必须为真;两个选项都可以为真。

  • --help, -?

    命令行格式--help

    显示程序使用信息。

  • --host[=name], -h

    命令行格式--host=string
    类型字符串
    默认值localhost

    要连接到的 MySQL 服务器的主机名或 IP 地址。

  • --login-path

    命令行格式--login-path=path
    类型字符串
    默认值[none]

    从登录文件中读取给定路径。

  • --measured-load, -m

    命令行格式--measured-load

    显示线程的测量负载。此选项或--os-load必须为真;这两个选项都可以为真。

  • --no-defaults

    命令行格式--no-defaults

    不要从登录文件以外的任何选项文件中读取默认选项。

  • --node-id=#], -n

    命令行格式--node-id=#
    类型整数
    默认值1

    观察具有此节点 ID 的数据节点。

  • --os-load, -o

    命令行格式--os-load

    显示操作系统测量的负载。此选项或--measured-load必须为真;这两个选项都可以为真。

  • --password=password], -p

    命令行格式--password=password
    类型字符串
    默认值NULL

    使用此密码和由--user指定的 MySQL 用户连接到 MySQL 服务器。

    此密码仅与 MySQL 用户帐户关联,与用于加密NDB备份的密码无关。

  • --port=#], -P

    命令行格式--port=#
    类型整数
    默认值3306

    连接到 MySQL 服务器时要使用的端口号。

    (以前,此选项的简短形式是-t,现在已被重新用作--text的简短形式。)

  • --print-defaults

    命令行格式--print-defaults

    打印程序参数列表并退出。

  • --sleep-time=seconds], -s

    命令行格式--sleep-time=#
    类型整数
    默认值1

    显示刷新之间的等待时间,以秒为单位。

  • --socket=*path/to/file*, -S

    命令行格式--socket=path
    类型路径名
    默认值[none]

    使用指定的套接字文件进行连接。

  • --sort, -r

    命令行格式--sort

    按使用情况对线程进行排序;使用--skip-sort来禁用。

  • --text, -t

    命令行格式--text

    使用文本显示数据。此选项或--graph必须为真;两个选项都可以为真。

    (在之前的 NDB Cluster 版本中,此选项的简写形式为-x,但不再支持。)

  • --usage

    命令行格式--usage

    显示帮助文本并退出;与--help相同。

  • --user[=name], -u

    命令行格式--user=name
    类型字符串
    默认值root

    连接作为这个 MySQL 用户。通常需要由--password选项提供的密码。

示例输出。 下图显示了在 Linux 系统上的终端窗口中运行的ndb_top在中等负载下的ndbmtd数据节点。在这里,程序已经使用ndb_top -n8 -x 被调用以提供文本和图形输出:

图 25.5 ndb_top 在终端中运行

从 ndb_top 显示,在终端窗口中运行。显示每个节点的信息,包括已利用的资源。

从 NDB 8.0.20 开始,ndb_top还显示线程的自旋时间,显示为绿色。

25.5.30 ndb_waiter — 等待 NDB 集群达到给定状态

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-programs-ndb-waiter.html

ndb_waiter 每隔 100 毫秒重复打印出所有集群数据节点的状态,直到集群达到给定状态或超过--timeout限制,然后退出。默认情况下,它等待集群达到STARTED状态,其中所有节点已启动并连接到集群。可以使用--no-contact--not-started选项覆盖此设置。

此实用程序报告的节点状态如下:

  • NO_CONTACT: 无法联系节点。

  • UNKNOWN: 可以联系节点,但其状态尚不清楚。通常,这意味着节点已收到管理服务器的STARTRESTART 命令,但尚未执行。

  • NOT_STARTED: 节点已停止,但仍与集群保持联系。在使用管理客户端的 RESTART 命令重���启动节点时会出现此状态。

  • STARTING: 节点的ndbd 进程已启动,但节点尚未加入集群。

  • STARTED: 节点正在运行,并已加入集群。

  • SHUTTING_DOWN: 节点正在关闭。

  • SINGLE USER MODE: 当集群处于单用户模式时,所有集群数据节点都会显示此状态。

可与ndb_waiter一起使用的选项显示在以下表中。表后面是附加描述。

表 25.51 与程序 ndb_waiter 一起使用的命令行选项

格式描述添加、弃用或移除
--character-sets-dir=path包含字符集的目录移除:8.0.31
--connect-retries=#放弃之前重试连接的次数(在基于 MySQL 8.0 的所有 NDB 发行版中支持)
--connect-retry-delay=#尝试联系管理服务器之间等待的秒数(在基于 MySQL 8.0 的所有 NDB 发行版中支持)
--connect-string=connection_string,-c connection_string与 --ndb-connectstring 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--core-file在错误时写入核心文件;用于调试已移除:8.0.31
--defaults-extra-file=path在读取全局文件后读取给定文件(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-file=path仅从给定文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-group-suffix=string还读取带有 concat(group, suffix) 的组(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--help,-?显示帮助文本并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--login-path=path从登录文件中读取给定路径(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-connectstring=connection_string,-c connection_string设置连接到 ndb_mgmd 的连接字符串。语法:“[nodeid=id;][host=]hostname[:port]”。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-mgmd-host=connection_string,-c connection_string与 --ndb-connectstring 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--ndb-nodeid=#为此节点设置节点 ID,覆盖 --ndb-connectstring 设置的任何 ID已移除:8.0.31
--ndb-optimized-node-selection启用用于事务节点选择的优化。默认启用;使用 --skip-ndb-optimized-node-selection 禁用已移除:8.0.31
--no-contact,-n等待集群达到无联系状态(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--no-defaults不从登录文件以外的任何选项文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--not-started等待集群达到未启动状态(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--nowait-nodes=list不等待的节点列表(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--print-defaults打印程序参数列表并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--single-user等待集群进入单用户模式(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--timeout=#,-t #等待这么多秒,然后退出,无论集群是否达到所需状态(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--usage,-?显示帮助文本并退出;与 --help 相同(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--verbose=#,-v设置输出详细程度;查看文本以获取输入和返回值添加: 8.0.37
--version,-V显示版本信息并退出(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--wait-nodes=list,-w list等待的节点列表(在基于 MySQL 8.0 的所有 NDB 版本中支持)
格式描述添加、废弃或移除

用法

ndb_waiter [-c *connection_string*]

附加选项

  • --character-sets-dir

    命令行格式--character-sets-dir=path
    移除8.0.31

    包含字符集的目录。

  • --connect-retries

    命令行格式--connect-retries=#
    类型整数
    默认值12
    最小值0
    最大值12

    连接重试次数上限。

  • --connect-retry-delay

    命令行格式--connect-retry-delay=#
    类型整数
    默认值5
    最小值0
    最大值5

    尝试联系管理服务器之间等待的秒数。

  • --connect-string

    命令行格式--connect-string=connection_string
    类型字符串
    默认值[none]

    --ndb-connectstring相同。

  • --core-file

    命令行格式--core-file
    已移除8.0.31

    在错误时写入核心文件;用于调试。

  • --defaults-extra-file

    命令行格式--defaults-extra-file=path
    类型字符串
    默认值[none]

    在读取全局文件后读取给定文件。

  • --defaults-file

    命令行格式--defaults-file=path
    类型字符串
    默认值[none]

    仅从给定文件中读取默认选项。

  • --defaults-group-suffix

    命令行格式--defaults-group-suffix=string
    类型字符串
    默认值[none]

    还读取具有 concat(group, suffix)的组。

  • --login-path

    命令行格式--login-path=path
    类型字符串
    默认值[none]

    从登录文件中读取给定路径。

  • --help

    命令行格式--help

    显示帮助文本并退出。

  • --ndb-connectstring

    命令行格式--ndb-connectstring=connection_string
    类型字符串
    默认值[none]

    设置用于连接到 ndb_mgmd 的连接字符串。语法:"[nodeid=id;][host=]hostname[:port]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目。

  • --ndb-mgmd-host

    命令行格式--ndb-mgmd-host=connection_string
    类型字符串
    默认值[none]

    与--ndb-connectstring相同。

  • --ndb-nodeid

    命令行格式--ndb-nodeid=#
    已移除8.0.31
    类型整数
    默认值[none]

    设置此节点的节点 ID,覆盖由--ndb-connectstring设置的任何 ID。

  • --ndb-optimized-node-selection

    命令行格式--ndb-optimized-node-selection
    移除8.0.31

    启用优化以选择事务节点。默认情况下启用;使用--skip-ndb-optimized-node-selection来禁用。

  • --no-contact, -n

    而不是等待STARTED状态,ndb_waiter在退出之前继续运行,直到集群达到NO_CONTACT状态。

  • --no-defaults

    命令行格式--no-defaults

    不要从登录文件以外的任何选项文件中读取默认选项。

  • --not-started

    而不是等待STARTED状态,ndb_waiter在退出之前继续运行,直到集群达到NOT_STARTED状态。

  • --nowait-nodes=*list*

    当使用此选项时,ndb_waiter不会等待列出的节点 ID。列表以逗号分隔;范围可以用破折号表示,如下所示:

    $> ndb_waiter --nowait-nodes=1,3,7-9
    

    重要

    不要与--wait-nodes选项一起使用。

  • --print-defaults

    命令行格式--print-defaults

    打印程序参数列表并退出。

  • --timeout=*seconds*, -t *seconds*

    等待时间。如果在此秒数内未达到所需状态,则程序将退出。默认值为 120 秒(1200 个报告周期)。

  • --single-user

    该程序等待集群进入单用户��式。

  • --usage

    命令行格式--usage

    显示帮助文本并退出;与--help相同。

  • --verbose

    命令行格式--verbose=#
    引入8.0.37
    类型整数
    默认值2
    最小值0
    最大值2

    控制打印输出的详细程度。可能的级别及其效果在此处列出:

    • 0: 仅返回退出代码,不打印(请参阅后续的退出代码)。

    • 1: 仅打印最终连接状态。

    • 2: 每次检查时打印状态。

      这与 8.4 之前的 NDB Cluster 版本的行为相同。

    ndb_waiter 返回的退出代码在此处列出,及其含义:

    • 0: 成功。

    • 1: 等待超时。

    • 2: 参数错误,如无效的节点 ID。

    • 3: 连接到管理服务器失败。

  • --version

    命令行格式--version

    显示版本信息并退出。

  • --wait-nodes=*list*, -w *list*

    当使用此选项时,ndb_waiter 仅等待列出的节点。列表以逗号分隔;范围可以用破折号表示,如下所示:

    $> ndb_waiter --wait-nodes=2,4-6,10
    

    重要

    不要与--nowait-nodes选项一起使用。

示例输出。 这里显示了对一个 4 节点集群运行ndb_waiter的输出,其中两个节点已手动关闭然后重新启动。重复报告(由...表示)被省略。

$> ./ndb_waiter -c localhost

Connecting to mgmsrv at (localhost)
State node 1 STARTED
State node 2 NO_CONTACT
State node 3 STARTED
State node 4 NO_CONTACT
Waiting for cluster enter state STARTED

...

State node 1 STARTED
State node 2 UNKNOWN
State node 3 STARTED
State node 4 NO_CONTACT
Waiting for cluster enter state STARTED

...

State node 1 STARTED
State node 2 STARTING
State node 3 STARTED
State node 4 NO_CONTACT
Waiting for cluster enter state STARTED

...

State node 1 STARTED
State node 2 STARTING
State node 3 STARTED
State node 4 UNKNOWN
Waiting for cluster enter state STARTED

...

State node 1 STARTED
State node 2 STARTING
State node 3 STARTED
State node 4 STARTING
Waiting for cluster enter state STARTED

...

State node 1 STARTED
State node 2 STARTED
State node 3 STARTED
State node 4 STARTING
Waiting for cluster enter state STARTED

...

State node 1 STARTED
State node 2 STARTED
State node 3 STARTED
State node 4 STARTED
Waiting for cluster enter state STARTED

注意

如果未指定连接字符串,则ndb_waiter 尝试连接到localhost上的管理服务器,并报告Connecting to mgmsrv at (null)

在 NDB 8.0.20 之前,该程序在运行完成后打印NDBT_ProgramExit - *status*,这是由于对NDBT测试库的不必要依赖。已经移除了这种依赖,消除了多余的输出。

25.5.31 ndbxfrm — 压缩、解压、加密和解密由 NDB Cluster 创建的文件

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-programs-ndbxfrm.html

ndbxfrm 实用程序,引入于 NDB 8.0.22,可用于解压、解密和输出由 NDB Cluster 创建的文件的信息,这些文件可能被压缩、加密或两者兼有。它还可用于压缩或加密文件。

表 25.52 与程序 ndbxfrm 一起使用的命令行选项

格式描述新增、弃用或移除
--compress,-c压缩文件新增:NDB 8.0.22
--decrypt-key=key提供文件解密密钥新增:NDB 8.0.31
--decrypt-key-from-stdin从标准输入中提供文件解密密钥新增:NDB 8.0.31
--decrypt-password=password使用此密码解密文件新增:NDB 8.0.22
--decrypt-password-from-stdin从标准输入中以安全方式获取解密密码新增:NDB 8.0.24
--defaults-extra-file=path在全局文件读取后读取给定文件(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-group-suffix=string也读取带有 concat(group, suffix) 的组(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--defaults-file=path仅从给定文件中读取默认选项(在基于 MySQL 8.0 的所有 NDB 版本中支持)
--encrypt-block-size=#打印有关文件的信息,包括文件头和尾部新增:NDB 8.0.31
--encrypt-block-size=#作为一个单元加密的输入数据块的大小。与 XTS 一起使用,对于 CBC 模式设置为零新增:NDB 8.0.29
--encrypt-cipher=#加密密码:1 代表 CBC,2 代表 XTS新增:NDB 8.0.29
--encrypt-kdf-iter-count=#,-k #密钥定义中使用的迭代次数新增:NDB 8.0.22
--encrypt-key=key使用此密钥加密文件新增:NDB 8.0.31
--encrypt-key-from-stdin使用从标准输入提供的密钥加密文件新增:NDB 8.0.31
--encrypt-password=password使用此密码加密文件新增:NDB 8.0.22
--encrypt-password-from-stdin从标准输入安全获取加密密码新增:NDB 8.0.24
--help,-?打印使用信息新增:NDB 8.0.22
--info,-i打印文件信息新增:NDB 8.0.22
--login-path=path从登录文件中读取给定路径(支持所有基于 MySQL 8.0 的 NDB 发行版)
--no-defaults不从除登录文件以外的任何选项文件中读取默认选项(支持所有基于 MySQL 8.0 的 NDB 发行版)
--print-defaults打印程序参数列表并退出(支持所有基于 MySQL 8.0 的 NDB 发行版)
--usage,-?打印使用信息;--help 的同义词新增:NDB 8.0.22
--version,-V输出版本信息新增:NDB 8.0.22
格式描述添加、弃用或移除

用法

ndbxfrm --info *file*[ *file* ...]

ndbxfrm --compress *input_file* *output_file*

ndbxfrm --decrypt-password=*password* *input_file* *output_file*

ndbxfrm [--encrypt-ldf-iter-count=#] --encrypt-password=*password* *input_file* *output_file*

input_fileoutput_file 不能是同一个文件。

选项

  • --compress, -c

    命令行格式--compress
    引入版本8.0.22-ndb-8.0.22

    压缩输入文件,使用与压缩 NDB 集群备份相同的压缩方法,并将输出写入输出文件。要解压未加密的压缩 NDB 备份文件,只需调用 ndbxfrm,并提供压缩文件的名称和输出文件的名称(无需任何选项)。

  • --decrypt-key=*key*, -K key

    命令行格式--decrypt-key=key
    引入版本8.0.31-ndb-8.0.31

    使用提供的密钥解密由NDB加密的文件。

    注意

    此选项不能与--decrypt-password一起使用。

  • --decrypt-key-from-stdin

    命令行格式--decrypt-key-from-stdin
    引入版本8.0.31-ndb-8.0.31

    使用从标准输入提供的密钥解密由NDB加密的文件。

  • --decrypt-password=*password*

    命令行格式--decrypt-password=password
    引入版本8.0.22-ndb-8.0.22
    类型字符串
    默认值[none]

    使用提供的密码解密由NDB加密的文件。

    注意

    此选项不能与--decrypt-key一起使用。

  • --decrypt-password-from-stdin[=TRUE|FALSE]

    命令行格式--decrypt-password-from-stdin
    引入版本8.0.24-ndb-8.0.24

    使用从标准输入提供的密码解密由NDB加密的文件。这类似于在调用mysql --password时不跟随选项后输入密码��

  • --defaults-extra-file

    命令行格式--defaults-extra-file=path
    类型字符串
    默认值[none]

    在全局文件读取后读取给定文件。

  • --defaults-file

    命令行格式--defaults-file=path
    类型字符串
    默认值[none]

    仅从给定文件中读取默认选项。

  • --defaults-group-suffix

    命令行格式--defaults-group-suffix=string
    类型字符串
    默认值[none]

    还读取带有CONCAT(*group*, *suffix*)的组。

  • --detailed-info

    命令行格式--encrypt-block-size=#
    引入版本8.0.31-ndb-8.0.31
    类型布尔值
    默认值FALSE

    打印出文件信息,类似于--info,但包括文件的头部和尾部。

    示例:

    $> ndbxfrm --detailed-info S0.sysfile
    File=/var/lib/cluster-data/ndb_7_fs/D1/NDBCNTR/S0.sysfile, compression=no, encryption=yes
    header: {
      fixed_header: {
        magic: {
          magic: { 78, 68, 66, 88, 70, 82, 77, 49 },
          endian: 18364758544493064720,
          header_size: 32768,
          fixed_header_size: 160,
          zeros: { 0, 0 }
        },
        flags: 73728,
        flag_extended: 0,
        flag_zeros: 0,
        flag_file_checksum: 0,
        flag_data_checksum: 0,
        flag_compress: 0,
        flag_compress_method: 0,
        flag_compress_padding: 0,
        flag_encrypt: 18,
        flag_encrypt_cipher: 2,
        flag_encrypt_krm: 1,
        flag_encrypt_padding: 0,
        flag_encrypt_key_selection_mode: 0,
        dbg_writer_ndb_version: 524320,
        octets_size: 32,
        file_block_size: 32768,
        trailer_max_size: 80,
        file_checksum: { 0, 0, 0, 0 },
        data_checksum: { 0, 0, 0, 0 },
        zeros01: { 0 },
        compress_dbg_writer_header_version: { ... },
        compress_dbg_writer_library_version: { ... },
        encrypt_dbg_writer_header_version: { ... },
        encrypt_dbg_writer_library_version: { ... },
        encrypt_key_definition_iterator_count: 100000,
        encrypt_krm_keying_material_size: 32,
        encrypt_krm_keying_material_count: 1,
        encrypt_key_data_unit_size: 32768,
        encrypt_krm_keying_material_position_in_octets: 0,
      },
      octets: {
         102, 68, 56, 125, 78, 217, 110, 94, 145, 121, 203, 234, 26, 164, 137, 180,
         100, 224, 7, 88, 173, 123, 209, 110, 185, 227, 85, 174, 109, 123, 96, 156,
      }
    }
    trailer: {
      fixed_trailer: {
        flags: 48,
        flag_extended: 0,
        flag_zeros: 0,
        flag_file_checksum: 0,
        flag_data_checksum: 3,
        data_size: 512,
        file_checksum: { 0, 0, 0, 0 },
        data_checksum: { 226, 223, 102, 207 },
        magic: {
          zeros: { 0, 0 }
          fixed_trailer_size: 56,
          trailer_size: 32256,
          endian: 18364758544493064720,
          magic: { 78, 68, 66, 88, 70, 82, 77, 49 },
        },
      }
    }
    
  • --encrypt-block-size=*#*

    命令行格式--encrypt-block-size=#
    引入版本8.0.29-ndb-8.0.29
    类型整数
    默认值0
    最小值0
    最大值2147483647

    作为一个单元加密的输入数据块的大小。与 XTS 一起使用;对于 CBC 模式,设置为0(默认值)。

  • --encrypt-cipher=*#*

    命令行格式--encrypt-cipher=#
    引入版本8.0.29-ndb-8.0.29
    类型整数
    默认值1
    最小值0
    最大值2147483647

    用于加密的密码。设置为1表示 CBC 模式(默认),或2表示 XTS。

  • --encrypt-kdf-iter-count=*#*, -k *#*

    命令行格式--encrypt-kdf-iter-count=#
    引入版本8.0.22-ndb-8.0.22
    类型整数
    默认值0
    最小值0
    最大值2147483647

    在加密文件时,指定用于加密密钥的迭代次数。需要--encrypt-password选项。

  • --encrypt-key=*key*

    命令行格式--encrypt-key=key
    引入版本8.0.31-ndb-8.0.31

    使用提供的密钥加密文件。

    注意

    此选项不能与--encrypt-password一起使用。

  • --encrypt-key-from-stdin

    命令行格式--encrypt-key-from-stdin
    引入版本8.0.31-ndb-8.0.31

    使用从stdin提供的密钥加密文件。

  • --encrypt-password=*password*

    命令行格式--encrypt-password=password
    引入版本8.0.22-ndb-8.0.22
    类型字符串
    默认值[none]

    使用选项提供的密码加密备份文件。密码必须符合此处列出的要求:

    • 使用除!'"$%\之外的任何可打印 ASCII 字符

    $> ndbxfrm -i BACKUP-10-0.5.Data BACKUP-10.5.ctl BACKUP-10.5.log

    文件=BACKUP-10-0.5.Data,压缩=no,加密=yes

    文件=BACKUP-10.5.ctl,压缩=no,加密=yes

    文件=BACKUP-10.5.log,压缩=no,加密=yes

    
    Beginning with NDB 8.0.31, you can also see the file's header and trailer using the `--detailed-info` option.
    
    
  • --login-path

    | Command-Line Format | --login-path=path | | Type | String | | Default Value | [none] |

    Read given path from login file.

  • --no-defaults

    | Command-Line Format | --no-defaults |

    Do not read default options from any option file other than login file.

  • --print-defaults

    | Command-Line Format | --print-defaults |

    Print program argument list and exit.

  • --usage, -?

    | Command-Line Format | --usage | | Introduced | 8.0.22-ndb-8.0.22 |

    Synonym for --help.

  • --version, -V

    | Command-Line Format | --version | | Introduced | 8.0.22-ndb-8.0.22 |

    Prints out version information.

ndbxfrm can encrypt backups created by any version of NDB Cluster. The .Data, .ctl, and .log files comprising the backup must be encrypted separately, and these files must be encrypted separately for each data node. Once encrypted, such backups can be decrypted only by ndbxfrm, ndb_restore, or ndb_print_backup from NDB Cluster 8.0.22 or later.

An encrypted file can be re-encrypted with a new password using the --encrypt-password and --decrypt-password options together, like this:


ndbxfrm --decrypt-password=*old* --encrypt-password=*new* *input_file* *output_file*

在刚才显示的示例中,*oldnew*分别是旧密码和新密码;这两者都必须用引号括起来。输入文件被解密,然后作为输出文件被加密。输入文件本身不会改变;如果您不希望使用旧密码访问它,必须手动删除输入文件。

25.6 NDB 集群管理

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-management.html

25.6.1 NDB 集群管理客户端中的命令

25.6.2 NDB 集群日志消息

25.6.3 NDB 集群生成的事件报告

25.6.4 NDB 集群启动阶段摘要

25.6.5 对 NDB 集群执行滚动重启

25.6.6 NDB 集群单用户模式

25.6.7 在线添加 NDB 集群数据节点

25.6.8 NDB 集群在线备份

25.6.9 将数据导入 MySQL 集群

25.6.10 用于 NDB 集群的 MySQL 服务器用法

25.6.11 NDB 集群磁盘数据表

25.6.12 在 NDB 集群中使用 ALTER TABLE 进行在线操作

25.6.13 权限同步和 NDB_STORED_USER

25.6.14 NDB 集群的文件系统加密

25.6.15 NDB API 统计计数器和变量

25.6.16 ndbinfo:NDB 集群信息数据库

25.6.17 用于 NDB 集群的 INFORMATION_SCHEMA 表

25.6.18 NDB 集群和性能模式

25.6.19 快速参考:NDB 集群 SQL 语句

25.6.20 NDB 集群安全问题

管理 NDB 集群涉及许多任务,首先是配置和启动 NDB 集群。这在第 25.4 节,“NDB 集群配置”和第 25.5 节,“NDB 集群程序”中有所涵盖。

接下来的几节涵盖了运行 NDB 集群的管理。

有关与 NDB 集群管理和部署相关的安全问题,请参阅第 25.6.20 节,“NDB 集群安全问题”。

实际上有两种主动管理运行中 NDB 集群的方法。其中之一是通过输入到管理客户端的命令来检查集群状态,更改日志级别,启动和停止备份,以及停止和启动节点。第二种方法涉及研究集群日志ndb_*node_id*_cluster.log的内容;通常可以在管理服务器的DataDir目录中找到,但可以使用LogDestination选项覆盖此位置。(请记住*node_id*代表被记录活动的节点的唯一标识符。)集群日志包含由ndbd生成的事件报告。还可以将集群日志条目发送到 Unix 系统日志。

一些集群操作的方面也可以通过在 SQL 节点上使用SHOW ENGINE NDB STATUS语句来监控。

通过使用ndbinfo数据库,可以实时通过 SQL 接口获取有关 NDB 集群操作的更详细信息。有关更多信息,请参见 Section 25.6.16, “ndbinfo: The NDB Cluster Information Database”。

NDB 统计计数器通过mysql客户端提供了改进的监控。这些计数器,由 NDB 内核实现,涉及由或影响Ndb对象执行的操作,如启动、关闭和中止事务;主键和唯一键操作;表、范围和修剪扫描;等待各种操作完成的阻塞线程;以及 NDB 集群发送和接收的数据和事件。每当进行 NDB API 调用或数据被发送到或接收到数据节点时,NDB 内核都会递增计数器。

mysqld将 NDB API 统计计数器公开为系统状态变量,可以从它们的名称中共同前缀(Ndb_api_)中识别。这些变量的值可以通过SHOW STATUS语句的输出在mysql客户端中读取,或者通过查询 Performance Schema 的session_statusglobal_status表。通过比较执行对NDB表操作的 SQL 语句之前和之后的状态变量的值,您可以观察到与该语句对应的 NDB API 级别的操作,这对于监视和性能调整 NDB Cluster 可能是有益的。

MySQL Cluster Manager 提供了一个高级命令行界面,简化了许多复杂的 NDB Cluster 管理任务,比如启动、停止或重新启动具有大量节点的 NDB Cluster。MySQL Cluster Manager 客户端还支持获取和设置大多数节点配置参数以及与 NDB Cluster 相关的mysqld服务器选项和变量的命令。MySQL Cluster Manager 8.0 支持 NDB 8.0。有关更多信息,请参阅 MySQL Cluster Manager 8.0.36 用户手册。

25.6.1 NDB Cluster 管理客户端中的命令

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-mgm-client-commands.html

除了中央配置文件外,集群还可以通过管理客户端提供的命令行界面进行控制 ndb_mgm。这是运行集群的主要管理界面。

事件日志的命令在 第 25.6.3 节,“NDB Cluster 生成的事件报告” 中给出;创建备份并从中恢复的命令在 第 25.6.8 节,“NDB Cluster 的在线备份” 中提供。

使用 MySQL Cluster Manager 的 ndb_mgm。 MySQL Cluster Manager 1.4.8 提供对 NDB 8.0 的实验性支持。MySQL Cluster Manager 处理启动和停止进程,并在内部跟踪其状态,因此不需要使用 ndb_mgm 来执行这些任务,对于由 MySQL Cluster Manager 控制的 NDB Cluster。建议不要使用随 NDB Cluster 发行版一起提供的 ndb_mgm 命令行客户端执行涉及启动或停止节点的操作。这些操作包括但不限于 STARTSTOPRESTARTSHUTDOWN 命令。更多信息,请参阅 MySQL Cluster Manager 进程命令。

管理客户端具有以下基本命令。在接下来的清单中,node_id 表示数据节点 ID 或关键字 ALL,表示该命令应用于集群的所有数据节点。

  • CONNECT *connection-string*

    连接到连接字符串指示的管理服务器。如果客户端已连接到此服务器,则客户端重新连接。

  • CREATE NODEGROUP *nodeid*[, *nodeid*, ...]

    创建新的 NDB Cluster 节点组,并使数据节点加入其中。

    此命令用于在线添加新数据节点到 NDB 集群后,使它们加入新的节点组,从而开始完全参与集群。该命令的唯一参数是一个逗号分隔的节点 ID 列表—这些是刚刚添加并启动的节点的 ID,它们将加入新的节点组。列表中不能包含重复的 ID;从 NDB 8.0.26 开始,任何重复的存在会导致命令返回错误。列表中节点的数量必须与已经是集群一部分的每个节点组中的节点数量相同(每个 NDB 集群节点组必须有相同数量的节点)。换句话说,如果 NDB 集群由 2 个每个有 2 个数据节点的节点组组成,则新的节点组也必须有 2 个数据节点。

    由此命令创建的新节点组的节点组 ID 是自动确定的,并且始终是集群中未使用的最高的节点组 ID;无法手动设置它。

    欲了解更多信息,请参阅 第 25.6.7 节,“在线添加 NDB 集群数据节点”。

  • DROP NODEGROUP *nodegroup_id*

    删除具有给定 nodegroup_id 的 NDB 集群节点组。

    此命令可用于从 NDB 集群中删除节点组。DROP NODEGROUP 的唯一参数是要删除的节点��的节点组 ID。

    DROP NODEGROUP 仅用于从受影响的节点组中移除数据节点。它不会停止数据节点,也不会将它们分配给不同的节点组,或从集群的配置中移除它们。在管理客户端 SHOW 命令的输出中,不属于任何节点组的数据节点会显示为 no nodegroup,而不是节点组 ID,就像这样(使用粗体文本表示):

    id=3    @10.100.2.67  (8.0.35-ndb-8.0.35, no nodegroup)
    

    DROP NODEGROUP 仅在欲删除的节点组中的所有数据节点完全不包含任何表数据和表定义时才有效。由于目前无法使用 ndb_mgmmysql 客户端从特定数据节点或节点组中删除所有数据,这意味着该命令仅在以下两种情况下成功:

    1. ndb_mgm 客户端中发出 CREATE NODEGROUP 命令之后,但在 mysql 客户端中发出任何 ALTER TABLE ... REORGANIZE PARTITION 命令之前。

    2. 在使用DROP TABLE删除所有NDBCLUSTER表之后。

      TRUNCATE TABLE对此目的无效,因为这只会删除表数据;数据节点将继续存储NDBCLUSTER表的定义,直到发出导致表元数据被删除的DROP TABLE语句。

    有关DROP NODEGROUP的更多信息,请参见 Section 25.6.7, “Adding NDB Cluster Data Nodes Online”。

  • ENTER SINGLE USER MODE *node_id*

    进入单用户模式,只允许由节点 ID node_id 标识的 MySQL 服务器访问数据库。

    ndb_mgm客户端明确确认已发出此命令并已生效,如下所示:

    ndb_mgm> ENTER SINGLE USER MODE 100
    Single user mode entered
    Access is granted for API node 100 only.
    

    此外,在单用户模式下具有独占访问权限的 API 或 SQL 节点在SHOW命令的输出中会被指示,如下所示:

    ndb_mgm> SHOW
    Cluster Configuration
    ---------------------
    [ndbd(NDB)]     2 node(s)
    id=5    @127.0.0.1  (mysql-8.0.35 ndb-8.0.35, single user mode, Nodegroup: 0, *)
    id=6    @127.0.0.1  (mysql-8.0.35 ndb-8.0.35, single user mode, Nodegroup: 0)
    
    [ndb_mgmd(MGM)] 1 node(s)
    id=50   @127.0.0.1  (mysql-8.0.35 ndb-8.0.35)
    
    [mysqld(API)]   2 node(s)
    id=100  @127.0.0.1  (mysql-8.0.35 ndb-8.0.35, allowed single user)
    id=101 (not connected, accepting connect from any host)
    
  • EXIT SINGLE USER MODE

    退出单用户模式,使所有 SQL 节点(即所有运行的mysqld进程)可以访问数据库。

    注意

    即使不在单用户模式下,也可以使用EXIT SINGLE USER MODE,但在这种情况下该命令不起作用。

  • HELP

    显示所有可用命令的信息。

  • *node_id* NODELOG DEBUG {ON|OFF}

    在节点日志中切换调试日志记录,就好像受影响的数据节点已经使用--verbose选项启动一样。NODELOG DEBUG ON开始调试日志记录;NODELOG DEBUG OFF关闭调试日志记录。

  • PROMPT [*prompt*]

    更改ndb_mgm显示的提示为字符串文字 prompt

    prompt 不应该被引用(除非您希望提示包含引号)。与mysql客户端不同,不会识别特殊字符序列和转义。如果没有参数调用,该命令将重置提示为默认值(ndb_mgm>)。

    ��下是一些示例:

    ndb_mgm> PROMPT mgm#1:
    mgm#1: SHOW
    Cluster Configuration
    ...
    mgm#1: PROMPT mymgm >
    mymgm > PROMPT 'mymgm:'
    'mymgm:' PROMPT  mymgm:
    mymgm: PROMPT
    ndb_mgm> EXIT
    $>
    

    请注意,*prompt*字符串中的前导空格和空格不会被修剪。尾随空格会被移除。

  • QUIT, EXIT

    终止管理客户端。

    此命令不会影响连接到集群的任何节点。

  • *node_id* REPORT *report-type*

    显示标识为*node_id的数据节点或使用ALL显示的report-type*类型报告。

    目前,*report-type*有三个可接受的值:

    • BackupStatus 提供正在进行的集群备份的状态报告

    • MemoryUsage 显示每个数据节点使用的数据内存和索引内存量,如下所示:

      ndb_mgm> ALL REPORT MEMORY
      
      Node 1: Data usage is 5%(177 32K pages of total 3200)
      Node 1: Index usage is 0%(108 8K pages of total 12832)
      Node 2: Data usage is 5%(177 32K pages of total 3200)
      Node 2: Index usage is 0%(108 8K pages of total 12832)
      

      这些信息也可以从ndbinfo.memoryusage表中获取。

    • EventLog 报告一个或多个数据节点的事件日志缓冲区中的事件。

    *report-type*对大小写不敏感且“模糊”;对于MemoryUsage,可以使用MEMORY(如前面的示例中所示),memory,甚至简单地使用MEM(或mem)。类似地,您可以缩写BackupStatus

  • *node_id* RESTART [-n] [-i] [-a] [-f]

    重新启动标识为*node_id*(或所有数据节点)的数据节点。

    使用RESTART选项与-i一起会导致数据节点执行初始重启;也就是说,节点的文件系统会被删除并重新创建。效果与停止数据节点进程,然后在系统 shell 中使用ndbd --initial重新启动相同。

    注意

    当使用此选项时,备份文件和磁盘数据文件不会被删除。

    使用-n选项会导致数据节点进程重新启动,但数据节点实际上不会上线,直到发出适当的START命令为止。此选项的效果与停止数据节点,然后在系统 shell 中使用ndbd --nostartndbd -n重新启动相同。

    使用-a会导致依赖于此节点的所有当前事务被中止。当节点重新加入集群时,不会执行 GCP 检查。

    通常,如果使节点脱机会导致集群不完整,则RESTART会失败。-f选项会强制节点在不检查此情况下重新启动。如果使用此选项并导致集群不完整,则整个集群会重新启动。

  • SHOW

    显示有关集群和集群节点的基本信息。对于所有节点,输出包括节点的 ID、类型和NDB软件版本。如果节点已连接,还会显示其 IP 地址;否则输出显示not connected, accepting connect from *ip_address*,对于允许从任何地址连接的节点,使用any host

    此外,对于数据节点,如果节点尚未启动,则输出包括starting,并显示节点所属的节点组。如果数据节点充当主节点,则用星号(*)表示。

    考虑一个配置文件包含此处显示的信息的集群(为清晰起见,可能的其他设置被省略):

    [ndbd default]
    DataMemory= 128G
    NoOfReplicas= 2
    
    [ndb_mgmd]
    NodeId=50
    HostName=198.51.100.150
    
    [ndbd]
    NodeId=5
    HostName=198.51.100.10
    DataDir=/var/lib/mysql-cluster
    
    [ndbd]
    NodeId=6
    HostName=198.51.100.20
    DataDir=/var/lib/mysql-cluster
    
    [ndbd]
    NodeId=7
    HostName=198.51.100.30
    DataDir=/var/lib/mysql-cluster
    
    [ndbd]
    NodeId=8
    HostName=198.51.100.40
    DataDir=/var/lib/mysql-cluster
    
    [mysqld]
    NodeId=100
    HostName=198.51.100.100
    
    [api]
    NodeId=101
    

    在启动此集群(包括一个 SQL 节点)后,SHOW显示以下输出:

    ndb_mgm> SHOW
    Connected to Management Server at: localhost:1186
    Cluster Configuration
    ---------------------
    [ndbd(NDB)]     4 node(s)
    id=5    @198.51.100.10  (mysql-8.0.35 ndb-8.0.35, Nodegroup: 0, *)
    id=6    @198.51.100.20  (mysql-8.0.35 ndb-8.0.35, Nodegroup: 0)
    id=7    @198.51.100.30  (mysql-8.0.35 ndb-8.0.35, Nodegroup: 1)
    id=8    @198.51.100.40  (mysql-8.0.35 ndb-8.0.35, Nodegroup: 1)
    
    [ndb_mgmd(MGM)] 1 node(s)
    id=50   @198.51.100.150  (mysql-8.0.35 ndb-8.0.35)
    
    [mysqld(API)]   2 node(s)
    id=100  @198.51.100.100  (mysql-8.0.35 ndb-8.0.35)
    id=101 (not connected, accepting connect from any host)
    

    此命令的输出还指示集群何时处于单用户模式(请参阅进入单用户模式命令的描述,以及第 25.6.6 节,“NDB 集群单用户模式”)。在 NDB 8.0 中,它还指示在此模式生效时哪个 API 或 SQL 节点具有独占访问权限;这仅在所有连接到集群的数据节点和管理节点运行 NDB 8.0 时有效。

  • SHUTDOWN

    关闭所有集群数据节点和管理节点。在执行此操作后退出管理客户端,请使用EXITQUIT

    此命令不会关闭连接到集群的任何 SQL 节点或 API 节点。

  • *node_id*启动

    将由*node_id*标识的数据节点(或所有数据节点)在线化。

    ALL START仅对所有数据节点起作用,不影响管理节点。

    重要

    要使用此命令将数据节点在线化,数据节点必须使用--nostart-n启动。

  • *node_id*状态

    显示由*node_id*标识的数据节点(或所有数据节点)的状态信息。

    可能的节点状态值包括UNKNOWNNO_CONTACTNOT_STARTEDSTARTINGSTARTEDSHUTTING_DOWNRESTARTING

    此命令的输出还指示集群何时处于单用户模式。

  • *node_id* STOP [-a] [-f]

    停止由*node_id*标识的数据或管理节点。

    注意

    ALL STOP仅用于停止所有数据节点,不影响管理节点。

    受此命令影响的节点会从集群中断开连接,并且其关联的ndbdndb_mgmd进程终止。

    -a选项会导致节点立即停止,而不等待任何待处理事务的完成。

    通常,如果结果导致集群不完整,则STOP会失败。-f选项强制节点关闭而不检查此情况。如果使用此选项且结果是不完整的集群,则集群立即关闭。

    警告

    使用-a选项还会禁用通常在调用STOP时执行的安全检查,以确保停止节点不会导致集群不完整。换句话说,当使用STOP命令时,使用-a选项时应该非常小心,因为该选项使得集群可能会因为不再具有存储在NDB中的所有数据的完整副本而被强制关闭。

附加命令。 ndb_mgm客户端中提供了其他一些命令,如下列表所示:

  • START BACKUP用于在ndb_mgm客户端中执行在线备份;ABORT BACKUP命令用于取消已经进行中的备份。有关更多信息,请参阅第 25.6.8 节,“NDB 集群的在线备份”。

  • CLUSTERLOG命令用于执行各种日志功能。有关更多信息和示例,请参阅第 25.6.3 节,“NDB 集群生成的事件报告”。NODELOG DEBUG激活或停用节点日志中的调试打印输出,如本节先前所述。

  • 用于测试和诊断工作,客户端支持一个DUMP命令,可用于在集群上执行内部命令。除非由 MySQL 支持指示,否则不应在生产环境中使用。有关更多信息,请参阅 NDB 集群管理客户端 DUMP 命令。

25.6.2 NDB 集群日志消息

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-logs-ndb-messages.html

25.6.2.1 NDB 集群:集群日志中的消息

25.6.2.2 NDB 集群日志启动消息

25.6.2.3 集群日志中的事件缓冲区报告

25.6.2.4 NDB 集群:NDB 传输器错误

本节包含有关响应不同集群日志事件而写入集群日志的消息的信息。它提供了有关NDB传输器错误的额外、更具体的信息。

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-logs-cluster-log.html

25.6.2.1 NDB 集群:集群日志中的消息

以下表列出了最常见的 NDB 集群日志消息。有关集群日志、日志事件和事件类型的信息,请参阅 第 25.6.3 节 “NDB 集群中生成的事件报告”。这些日志消息还对应于 MGM API 中的日志事件类型;有关集群 API 开发人员感兴趣的相关信息,请参阅 Ndb_logevent_type 类型。

表 25.53 常见 NDB 集群日志消息

日志消息描述事件名称事件类型优先级严重性
Node *mgm_node_id*: 节点 *data_node_id* 已连接具有节点 ID node_id 的数据节点已连接到管理服务器(节点 mgm_node_id)。已连接连接8信息
Node *mgm_node_id*: 节点 *data_node_id* 已断开连接具有节点 ID data_node_id 的数据节点已从管理服务器(节点 mgm_node_id)断开连接。已断开连接连接8警报
Node *data_node_id*: 与节点 *api_node_id* 的通信已关闭具有节点 ID api_node_id 的 API 节点或 SQL 节点不再与数据节点 data_node_id 进行通信。通信已关闭连接8信息
Node *data_node_id*: 与节点 *api_node_id* 的通信已打开具有节点 ID api_node_id 的 API 节点或 SQL 节点现在正在与数据节点 data_node_id 进行通信。通信已打开连接8信息
Node *mgm_node_id*: 节点 *api_node_id*:API *version*具有节点 ID api_node_id 的 API 节点已连接到管理节点 mgm_node_id,使用 NDB API 版本 version(通常与 MySQL 版本号相同)。ConnectedApiVersion连接8信息
Node *node_id*: 全局检查点 *gci* 已启动具有 ID gci 的全局检查点已启动;节点 node_id 是负责此全局检查点的主节点。全局检查点已启动检查点9信息
Node *node_id*: 全局检查点 *gci* 已完成具有 ID gci 的全局检查点已完成;节点 node_id 是负责此全局检查点的主节点。全局检查点已完成检查点10信息
Node *node_id*: 本地检查点*lcp*已启动。保持 GCI = *current_gci*,最旧可恢复的 GCI = *old_gci*具有序列 ID lcp 的本地检查点已在节点 node_id 上启动。可以使用的最近的 GCI 具有索引 current_gci,而集群可以恢复的最旧 GCI 具有索引 old_gciLocalCheckpointStarted检查点7信息
Node *node_id*: 本地检查点*lcp*已完成在节点 node_id 上具有序列 ID lcp 的本地检查点已经完成。LocalCheckpointCompleted检查点8信息
Node *node_id*: 本地检查点在 CALCULATED_KEEP_GCI 中停止节点无法确定最近可用的 GCI。LCPStoppedInCalcKeepGci检查点0警报
Node *node_id*: 表 ID = *table_id*,片段 *ID = fragment_id* 在节点 *node_id* 上完成了 LCP,maxGciStarted: *started_gci* maxGciCompleted: *completed_gci*一个表片段已经在节点 node_id 上被检查点到磁盘上。正在进行的 GCI 具有索引 started_gci,而最近完成的 GCI 具有索引 completed_gciLCPFragmentCompleted检查点11信息
Node *node_id*: ACC 阻塞了*num_1*次,TUP 阻塞了*num_2*次上一秒因为日志缓冲区接近溢出,撤销日志记录被阻塞。UndoLogBlocked检查点7信息
Node *node_id*: 启动初始化*version*数据节点 node_id,运行NDB版本 version,正在开始启动过程。NDBStartStarted启动1信息
Node *node_id*: 启动*version*已启动运行NDB版本 version 的数据节点 node_id 已成功启动。NDBStartCompleted启动1信息
Node *node_id*: 重启完成后收到 STTORRY 信号节点收到一个信号,表示集群重启已经完成。STTORRYRecieved启动15信息
Node *node_id*: 启动阶段*phase*已完成(*type*)节点已完成*type启动的启动阶段phase。有关启动阶段的列表,请参见第 25.6.4 节,“NDB 集群启动阶段总结”。(type*是initialsystemnodeinitial node<未知>之一。)StartPhaseCompleted启动4信息
Node *node_id*: CM_REGCONF 主席 = *president_id*,自己的节点 = *own_id*,我们的动态 ID = *dynamic_id*节点 president_id 被选为“主席”。own_iddynamic_id 应始终与报告节点的 ID(node_id)相同。CM_REGCONF启动3信息
Node *node_id*: 来自节点 *president_id* 对我们节点 *node_id* 的 CM_REGREF。原因 = *cause*报告节点(ID node_id)无法接受节点 president_id 为主席。问题的*cause* 给出为BusyElection with wait = falseNot presidentElection without selecting new candidateNo such cause之一。CM_REGREFStartUp8INFO
Node *node_id*: 我们是节点 *own_id*,动态 ID 为 *dynamic_id*,左邻节点是节点 *id_1*,右邻节点是节点 *id_2*节点已发现其在集群中的邻居节点(节点 id_1 和节点 id_2)。node_idown_iddynamic_id 应始终相同;如果它们不同,则表示集群节点配置严重错误。FIND_NEIGHBOURSStartUp8INFO
Node *node_id*: *type* 关闭已启动节点已接收到关闭信号。关闭的*type*可以是ClusterNodeNDBStopStartedStartUp1INFO
Node *node_id*: 节点关闭已完成 [, *action*] [由信号 *signal`* 发起。]节点已关闭。此报告可能包括一个*action*,如果存在,则为restartingno startinitial之一。报告还可能包括对NDB协议 signal 的引用;有关可能的信号,请参阅操作和信号。NDBStopCompletedStartUp1INFO
Node *node_id*: 强制节点关闭已完成 [, action]. [发生在启动阶段 *start_phase*。] [signal 发起。] [由错误 *error_code*: '*error_message*(*error_classification*). *error_status*'. [(额外信息 *extra_code*)]]节点已被强制关闭。随后采取的*actionrestartingno startinitial之一)也会报告。如果节点在启动时关闭,报告将包括节点失败的start_phase。如果这是由发送给节点的signal* 导致的,还会提供此信息(有关更多信息,请参阅操作和信号)。如果已知导致失败的错误,也会包括在内;有关更多关于NDB错误消息和分类的信息,请参阅 NDB Cluster API 错误。NDBStopForcedStartUp1ALERT
Node *node_id*: 节点关闭已中止用户中止了节点关闭过程。NDBStopAbortedStartUp1INFO
节点 *node_id*:StartLog:[GCI 保留:*keep_pos* 最后完成:*last_pos* 最新可恢复:*restore_pos*]这报告了节点启动期间引用的全局检查点。在 keep_pos 之前的重做日志将被丢弃。last_pos 是数据节点参与的最后一个全局检查点;restore_pos 是实际用于恢复所有数据节点的全局检查点。StartREDOLogStartUp4信息
startup_message [单独列出;请参见下文.]在不同情况下可能记录的启动消息有很多种。这些将单独列出;请参见第 25.6.2.2 节,“NDB Cluster 日志启动消息”。StartReportStartUp4信息
节点 *node_id*:节点重新启动完成了字典信息的复制数据字典信息已复制到重新启动的节点NR_CopyDictNodeRestart8信息
节点 *node_id*:节点重新启动完成了分布信息的复制数据分布信息已复制到重新启动的节点NR_CopyDistrNodeRestart8信息
节点 *node_id*:节点重新启动开始复制片段到节点 *node_id*开始将片段复制到正在重新启动的数据节点 node_idNR_CopyFragsStartedNodeRestart8信息
Node *node_id*:表 ID = *table_id*,片段 ID = *fragment_id* 已复制到节点 *node_id*来自表 table_id 的片段 fragment_id 已复制到数据节点 node_idNR_CopyFragDoneNodeRestart10信息
节点 *node_id*:节点重新启动完成了复制片段到节点 *node_id*将所有表片段复制到重新启动的数据节点 node_id 已完成NR_CopyFragsCompletedNodeRestart8信息
Node *node_id*:节点 *node1_id* 完成了节点 *node2_id* 的故障数据节点 node1_id 检测到了数据节点 node2_id 的故障NodeFailCompletedNodeRestart8警报
所有节点完成了节点 *node_id* 的故障所有(剩余)数据节点已检测到数据节点 node_id 的故障NodeFailCompletedNodeRestart8警报
节点 *node_id* 的块故障已完成NDB内核块中检测到了数据节点 node_id 的故障,其中块是 DBTC 的第 1 块,DBDICTDBDIH,或 DBLQH;更多信息,请参阅 NDB 内核块NodeFailCompletedNodeRestart8警报
节点 *mgm_node_id*: 节点 *data_node_id* 失败。节点在失败时的状态为 *state_code*一个数据节点失败了。其在失败时的状态由仲裁状态代码 state_code 描述:可能的状态代码值可以在文件include/kernel/signaldata/ArbitSignalData.hpp中找到。节点失败报告节点重启8警报
主节点重新启动仲裁线程 [状态=*state_code*]准备仲裁节点 *node_id* [票=*ticket_id*]接收仲裁节点 *node_id* [票=*ticket_id*]启动仲裁节点 *node_id* [票=*ticket_id*]丢失仲裁节点 *node_id* - 进程失败 [状态=*state_code*]丢失仲裁节点 *node_id* - 进程退出 [状态=*state_code*]丢失仲裁节点 *node_id* - *error_message* [状态=*state_code*]这是对集群中仲裁当前状态和进展的报告。node_id是选定为仲裁者的管理节点或 SQL 节点的节点 ID。state_code是一个仲裁状态代码,如include/kernel/signaldata/ArbitSignalData.hpp中所述。当发生错误时,还会提供一个error_message,也在ArbitSignalData.hpp中定义。*ticket_id*是在选定为仲裁者时由仲裁者分发给所有参与其选择的节点的唯一标识符;这用于确保请求仲裁的每个节点都是参与选择过程的节点之一。仲裁状态节点重启6信息
仲裁检查失败 - 不到 1/2 节点剩余仲裁检查成功 - 所有节点组和超过 1/2 节点剩余仲裁检查成功 - 节点组多数仲裁检查失败 - 缺少节点组网络分区 - 需要仲裁仲裁成功 - 节点 *node_id*仲裁失败 - 节点 *node_id*网络分区 - 没有仲裁者可用网络分区 - 没有配置仲裁者仲裁失败 - *error_message* [状态=*state_code*]此消息报告了仲裁的结果。在仲裁失败的情况下,会提供一个*error_message和一个仲裁state_code*;这两者的定义可以在include/kernel/signaldata/ArbitSignalData.hpp中找到。仲裁结果节点重启2警报
节点 *node_id*: GCP 接管开始此节点正在尝试承担下一个全局检查点的责任(即,它正在成为主节点)GCP_ 接管开始节点重启7信息
节点 *node_id*: GCP 接管完成此节点已成为主节点,并已承担下一个全局检查点的责任GCP_ 接管完成节点重启7信息
Node *node_id*: LCP 接管已启动该节点正在尝试承担下一组本地检查点的责任(即成为主节点)LCP_TakeoverStartedNodeRestart7INFO
Node *node_id*: LCP 接管已完成该节点已成为主节点,并已承担下一组本地检查点的责任LCP_TakeoverCompletedNodeRestart7INFO
Node *node_id*: 事务计数 = *transactions*,提交计数 = *commits*,读取计数 = *reads*,简单读取计数 = *simple_reads*,写入计数 = *writes*,AttrInfo 计数 = *AttrInfo_objects*,并发操作 = *concurrent_operations*,中止计数 = *aborts*,扫描 = *scans*,范围扫描 = *range_scans*大约每 10 秒提供一次的事务活动报告TransReportCountersStatistic8INFO
Node *node_id*: Operations=*operations*该节点执行的操作数量,大约每 10 秒提供一次OperationReportCountersStatistic8INFO
Node *node_id*: ID 为 *table_id* 的表已创建已创建具有显示的表 ID 的表TableCreatedStatistic7INFO
Node *node_id*: 在 doJob 中最后 8192 次的平均循环计数 = *count*JobStatisticStatistic9INFO
平均发送大小到节点 = *node_id* 最后 4096 次发送 = *bytes* 字节该节点每次发送到节点 node_id 的平均发送 bytes 字节SendBytesStatisticStatistic9INFO
平均接收大小到节点 = *node_id* 最后 4096 次发送 = *bytes* 字节每次从节点 node_id 接收数据时,该节点平均接收 bytes 字节的数据ReceiveBytesStatisticStatistic9INFO
Node *node_id*: 数据使用率为 *data_memory_percentage*%(*data_pages_used* 32K 页,总共 *data_pages_total*) / Node *node_id*: 索引使用率为 *index_memory_percentage*%(*index_pages_used* 8K 页,总共 *index_pages_total*)当在集群管理客户端中发出 DUMP 1000 命令时生成此报告MemoryUsageStatistic5INFO
Node *node1_id*: 到节点 *node2_id* 的传输器报告错误 *error_code*: *error_message*与节点 node2_id 通信时发生传输器错误;有关传输器错误代码和消息的列表,请参阅 NDB 传输器错误,在 MySQL NDB 集群内部手册中TransporterErrorError2ERROR
Node *node1_id*: 传输到节点 *node2_id* 报告错误 *error_code*: *error_message*在与节点 node2_id 通信时出现潜在传输器问题的警告;有关传输器错误代码和消息的列表,请参见 NDB 传输器错误,有关更多信息
Node *node1_id*: 节点 *node2_id* 丢失心跳 *heartbeat_id*这个节点丢失了来自节点 node2_id 的心跳
Node *node1_id*: 节点 *node2_id* 因丢失心跳而被宣告死亡这个节点已经至少丢失了来自节点 node2_id 的 3 个心跳,因此宣告该节点“死亡”
Node *node1_id*: 向节点发送心跳 = *node2_id*这个节点已向节点 node2_id 发送了心跳
Node *node_id*: 事件缓冲区状态 (*object_id*): 已使用=*bytes_used* (*percent_used*% of alloc) 分配=*bytes_allocated* 最大=*bytes_available* 最新消耗的时代=*latest_consumed_epoch* 最新缓冲的时代=*latest_buffered_epoch* 报告原因=*report_reason*在事件缓冲区使用量较大时出现此报告,例如,在相对较短的时间内应用了许多更新时;报告显示了已使用的事件缓冲区内存的字节数和百分比,仍然可用的字节数和百分比,以及最新的缓冲和消耗时代;有关更多信息,请参见第 25.6.2.3 节,“集群日志中的事件缓冲区报告”
Node *node_id*: 进入单用户模式, Node *node_id*: 进入单用户模式 节点 *API_node_id* 具有独占访问权限, Node *node_id*: 进入单用户模式当进入和退出单用户模式时,这些报告将被写入集群日志;API_node_id 是具有对集群的独占访问权限的 API 或 SQL 的节点 ID(有关更多信息,请参见第 25.6.6 节,“NDB 集群单用户模式”);消息 未知单用户报告 *API_node_id* 表示发生了错误,正常情况下不应看到
Node *node_id*: 从节点 *mgm_node_id* 开始的备份已启动使用具有 mgm_node_id 的管理节点启动了备份;当发出START BACKUP命令时,此消息也会显示在集群管理客户端中;有关更多信息,请参阅第 25.6.8.2 节,“使用 NDB 集群管理客户端创建备份”备份已启动备份7信息
Node *node_id*: 从节点 *mgm_node_id* 开始的备份 *backup_id* 已完成。StartGCP: *start_gcp* StopGCP: *stop_gcp* #记录数:*records* #日志记录数:*log_records* 数据:*data_bytes* 字节 日志:*log_bytes* 字节具有 ID backup_id 的备份已完成;有关更多信息,请参阅第 25.6.8.2 节,“使用 NDB 集群管理客户端创建备份”备份已完成备份7信息
Node *node_id*: 来自 *mgm_node_id* 的备份请求启动失败。错误:*error_code*备份启动失败;有关错误代码,请参阅 MGM API 错误备份启动失败备份7警报
Node *node_id*: 从 *mgm_node_id* 开始的备份 *backup_id* 已中止。错误:*error_code*备份在启动后被终止,可能是由于用户干预备份已中止备份7警报
日志消息描述事件名称事件类型优先级严重程度

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-log-startup-messages.html

25.6.2.2 NDB 集群日志启动消息

可能的启动消息及其描述如下列表所示:

  • 初始启动,等待 %s 连接,节点 [ 所有: %s 已连接: %s 无等待: %s ]

  • 等待直到节点 %s 连接,节点 [ 所有: %s 已连接: %s 无等待: %s ]

  • 等待 %u 秒以连接节点 %s,节点 [ 所有: %s 已连接: %s 无等待: %s ]

  • 等待非分区启动,节点 [ 所有: %s 已连接: %s 缺失: %s 无等待: %s ]

  • 等待 %u 秒进行非分区启动,节点 [ 所有: %s 已连接: %s 缺失: %s 无等待: %s ]

  • 初始启动节点为 %s [ 缺失: %s 无等待: %s ]

  • 启动所有节点 %s

  • 启动节点为 %s [ 缺失: %s 无等待: %s ]

  • 启动可能已分区,节点为 %s [ 缺失: %s 无等待: %s ]

  • 未知的启动报告: 0x%x [ %s %s %s %s ]

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-logs-event-buffer.html

25.6.2.3 集群日志中的事件缓冲区报告

NDB使用一个或多个内存缓冲区来存储从数据节点接收的事件。每个订阅表事件的Ndb对象都有一个这样的缓冲区,这意味着每个执行二进制日志记录的mysqld通常有两个缓冲区(一个用于模式事件,一个用于数据事件)。每个缓冲区包含由事件组成的时代。这些事件包括操作类型(插入、更新、删除)和行数据(前后图像加元数据)。

NDB在集群日志中生成消息来描述这些缓冲区的状态。尽管这些报告出现在集群日志中,但它们是指 API 节点上的缓冲区(与大多数其他集群日志消息不同,这些消息是由数据节点生成的)。

集群日志中的事件缓冲区记录使用以下格式:

Node *node_id*: Event buffer status (*object_id*):
used=*bytes_used* (*percent_used*% of alloc)
alloc=*bytes_allocated* (*percent_alloc*% of max) max=*bytes_available*
latest_consumed_epoch=*latest_consumed_epoch*
latest_buffered_epoch=*latest_buffered_epoch*
report_reason=*report_reason*

组成此报告的字段在此处列出,并附有描述:

  • node_id: 报告来源节点的 ID。

  • object_id: 报告来源的Ndb对象的 ID。

  • bytes_used: 缓冲区使用的字节数。

  • percent_used: 使用的分配字节的百分比。

  • bytes_allocated: 分配给此缓冲区的字节数。

  • percent_alloc: 使用的可用字节的百分比;如果ndb_eventbuffer_max_alloc等于 0(无限制),则不打印。

  • bytes_available: 可用字节数;如果ndb_eventbuffer_max_alloc为 0(无限制),则为 0。

  • latest_consumed_epoch: 最近完全消耗的时代。(在 NDB API 应用程序中,通过调用nextEvent()来完成。)

  • latest_buffered_epoch: 最近在事件缓冲区中缓冲的时代。

  • report_reason: 报告原因。可能的原因稍后在本节中显示。

报告原因的可能原因在以下列表中描述:

  • ENOUGH_FREE_EVENTBUFFER:事件缓冲��有足够的空间。

    LOW_FREE_EVENTBUFFER:事件缓冲区的剩余空间不足。

    触发这些报告的阈值空闲百分比水平可以通过设置ndb_report_thresh_binlog_mem_usage服务器变量来调整。

  • BUFFERED_EPOCHS_OVER_THRESHOLD: 缓存的时代数量是否超过了配置的阈值。这个数字是已完整接收的最新时代与最近被消耗的时代之间的差异(在 NDB API 应用程序中,通过调用nextEvent()nextEvent2()来完成)。报告每秒生成一次,直到缓存的时代数量低于阈值,可以通过设置ndb_report_thresh_binlog_epoch_slip服务器变量来调整阈值。您还可以通过调用setEventBufferQueueEmptyEpoch()在 NDB API 应用程序中调整阈值。

  • PARTIALLY_DISCARDING: 事件缓冲内存已经耗尽,即已使用了 100%的ndb_eventbuffer_max_alloc。任何部分缓存的时代都会被完全缓存,即使使用率超过 100%,但任何接收到的新时代都会被丢弃。这意味着事件流中出现了间隙。

  • COMPLETELY_DISCARDING: 不会缓存任何时代。

  • PARTIALLY_BUFFERING: 在间隙之后,缓冲区的空闲百分比已经上升到阈值,在mysql客户端中可以使用ndb_eventbuffer_free_percent服务器系统变量或在 NDB API 应用程序中通过调用set_eventbuffer_free_percent()来设置阈值。新的时代被缓存。由于间隙而无法完成的时代被丢弃。

  • COMPLETELY_BUFFERING: 所有接收到的时代都正在被缓存,这意味着有足够的事件缓冲内存。事件流中的间隙已经被关闭。