ndbd是使用NDB集群存储引擎处理表中所有数据的进程。这个过程使数据节点能够完成分布式事务处理、节点恢复、指向磁盘的检查点、在线备份和相关任务。
在NDB集群中,一组ndbd进程协同处理数据。这些进程可以在同一台计算机(主机)上执行,也可以在不同的计算机上执行。数据节点和Cluster主机之间的通信是完全可配置的。
可用于。的选项ndbd如下表所示。其他描述见下表。
表18.17 ndbd程序使用的命令行选项
格式 | 描述 | 已添加、已弃用或已移除 |
---|---|---|
本地绑定地址 | (基于MySQL 5.6的所有NDB版本都支持) |
|
包含字符集的目录 | (基于MySQL 5.6的所有NDB版本都支持) |
|
——connect-retry-delay的过时同义词,应该用它来代替这个选项 | 弃用:NDB 7.4.9 |
|
设置在放弃连接之前重试连接的次数;0表示只有1次尝试(没有重试);-1表示无限地继续重试 | (基于MySQL 5.6的所有NDB版本都支持) |
|
两次尝试联系管理服务器之间的等待时间,单位为秒;0表示在两次尝试之间不等待 | 补充:NDB 7.4.9 |
|
——ndb-connectstring一样 | (基于MySQL 5.6的所有NDB版本都支持) |
|
写入核心文件出错;用于调试 | (基于MySQL 5.6的所有NDB版本都支持) |
|
启动ndbd作为守护进程(默认);覆盖,nodaemon | (基于MySQL 5.6的所有NDB版本都支持) |
|
在读取全局文件之后读取给定文件 | (基于MySQL 5.6的所有NDB版本都支持) |
|
只从给定文件读取默认选项 | (基于MySQL 5.6的所有NDB版本都支持) |
|
也可以用concat(group,后缀)读取组 | (基于MySQL 5.6的所有NDB版本都支持) |
|
在前台运行ndbd,用于调试目的(隐含——nodaemon) | (基于MySQL 5.6的所有NDB版本都支持) |
|
|
显示帮助文本并退出 | (基于MySQL 5.6的所有NDB版本都支持) |
执行ndbd的初始启动,包括文件系统清理;在使用此选项之前10bet官方网站,请参阅文档 | (基于MySQL 5.6的所有NDB版本都支持) |
|
执行部分初始启动(需要——nowait-nodes) | (基于MySQL 5.6的所有NDB版本都支持) |
|
用于将数据节点进程作为Windows服务安装;是否适用于其他平台 | (基于MySQL 5.6的所有NDB版本都支持) |
|
从登录文件中读取给定路径 | (基于MySQL 5.6的所有NDB版本都支持) |
|
设置连接ndb_mgmd的连接字符串。语法:“[nodeid = id;][主机=]主机名(港口):”。覆盖NDB_CONNECTSTRING和my.cnf中的条目 | (基于MySQL 5.6的所有NDB版本都支持) |
|
——ndb-connectstring一样 | (基于MySQL 5.6的所有NDB版本都支持) |
|
设置此节点的节点ID,覆盖由——db-connectstring设置的任何ID | (基于MySQL 5.6的所有NDB版本都支持) |
|
不要启动ndbd作为守护进程;供测试之用 | (基于MySQL 5.6的所有NDB版本都支持) |
|
不从除登录文件以外的任何选项文件读取默认选项 | (基于MySQL 5.6的所有NDB版本都支持) |
|
不要立即启动ndbd;NDBD等待命令从ndb_mgm启动 | (基于MySQL 5.6的所有NDB版本都支持) |
|
不要等待这些数据节点启动(接受以逗号分隔的节点id列表);要求——ndb-nodeid | (基于MySQL 5.6的所有NDB版本都支持) |
|
为事务的节点选择启用优化。默认启用;使用——skip-ndb-optimized-node-selection禁用 | (基于MySQL 5.6的所有NDB版本都支持) |
|
打印程序参数列表并退出 | (基于MySQL 5.6的所有NDB版本都支持) |
|
用于删除以前作为Windows服务安装的数据节点进程;是否适用于其他平台 | (基于MySQL 5.6的所有NDB版本都支持) |
|
|
显示帮助文本并退出;一样,帮助 | (基于MySQL 5.6的所有NDB版本都支持) |
|
向节点日志中写入额外的调试信息 | (基于MySQL 5.6的所有NDB版本都支持) |
|
显示版本信息并退出 | (基于MySQL 5.6的所有NDB版本都支持) |
-
命令行格式 ——bind-address =名字
类型 字符串 默认值 原因ndbd绑定到特定的网络接口(主机名或IP地址)。该选项没有默认值。
-
命令行格式 ——character-sets-dir =路径
包含字符集的目录。
-
命令行格式 ——connect-delay = #
弃用 5.6.28-ndb-7.4.9 类型 数字 默认值 5
最小值 0
最大值 3600
确定在启动时两次尝试联系管理服务器之间的等待时间(尝试的次数由
——connect-retries
选项)。缺省值是5秒。此选项在NDB 7.4.9中已弃用,在未来的NDB Cluster版本中会被删除。使用
——connect-retry-delay
代替。 -
命令行格式 ——connect-retries = #
类型 数字 默认值 12
最小值 0
最大值 65535
设置在放弃连接之前重试连接的次数;0表示只有1次尝试(没有重试)。默认为12次。控件控制两次尝试之间的等待时间
——connect-retry-delay
选项在MySQL NDB 7.4.9和更高版本(以前,这是——connect-delay
). -
命令行格式 ——连接字符串= connection_string
类型 字符串 默认值 (没有)
-
命令行格式 ——connect-retry-delay = #
介绍了 5.6.28-ndb-7.4.9 类型 数字 默认值 5
最小值 0
最大值 4294967295
确定在启动时尝试联系管理服务器的间隔等待时间(间隔时间由控件控制
——connect-retries
选项)。缺省值是5秒。该选项是在NDB 7.4.9中添加的,目的是取代
——connect-delay
选项,现在已弃用,并将在未来的NDB Cluster版本中删除。 -
命令行格式 ——核心文件
写入核心文件出错;用于调试。
-
命令行格式 ——守护进程
指示ndbd或ndbmtd作为守护进程执行。这是默认行为。
——nodaemon
可用于阻止进程作为守护进程运行。 -
命令行格式 ——defaults-extra-file =路径
类型 字符串 默认值 (没有)
在读取全局文件之后读取给定文件。
-
命令行格式 ——defaults-file =路径
类型 字符串 默认值 (没有)
只从给定文件读取默认选项。
-
命令行格式 ——defaults-group-suffix =字符串
类型 字符串 默认值 (没有)
也可以用concat(group,后缀)读取组。
-
命令行格式 ——前台
原因ndbd或ndbmtd作为前台进程执行,主要用于调试目的。此选项意味着
——nodaemon
选择。 -
命令行格式 ——帮助
显示帮助文本并退出。
-
命令行格式 ——初始
指示ndbd执行初始启动。的早期实例为恢复目的创建的任何文件将被初始启动擦除ndbd.它还重新创建恢复日志文件。在某些操作系统上,这个过程可能需要相当长的时间。
一个
——初始
将使用Start只有当启动ndbd过程:在非常特殊情况下的过程;这是因为该选项将导致从NDB集群文件系统中删除所有文件,并重新创建所有重做日志文件。下面列出了这些情况:当执行软件升级时,更改了任何文件的内容。
的新版本重新启动节点时ndbd.
当由于某种原因,节点重启或系统重启反复失败时,作为最后的手段。在这种情况下,请注意,由于数据文件被破坏,该节点不能再用于恢复数据。
警告为避免数据最终丢失的可能性,建议您不使用
——初始
选择在一起StopOnError = 0
.相反,设置StopOnError
为0的config.ini
只有在集群启动之后,才能正常重启数据节点—也就是说,不需要——初始
选择。的描述StopOnError
参数获取此问题的详细解释。(错误# 24945638)使用此选项可防止
StartPartialTimeout
而且StartPartitionedTimeout
配置参数不具有任何效果。重要的这个选项是不影响以下文件类型:
受影响节点已经创建的备份文件
NDB集群磁盘数据文件(参见第18.6.10节“NDB集群磁盘数据表”).
如果数据节点刚刚从已经在运行的数据节点启动(或重新启动),则此选项对数据节点恢复数据也没有影响。在正常运行的NDB集群中,数据的恢复是自动进行的,不需要用户干预。
允许在第一次启动集群(即在创建任何数据节点文件之前)时使用此选项;然而,它是不这样做是必要的。
-
命令行格式 ——初始起动
当执行集群的部分初始启动时,使用此选项。每个节点都应该以此选项启动,以及
——nowait-nodes
.假设您有一个4节点的集群,其数据节点的id为2、3、4和5,并且您希望只使用节点2、4和5执行部分初始启动,即忽略节点3:
$> NDBD——ndb-nodeid=2——nowait-nodes=3——initial-start $> NDBD——ndb-nodeid=4——nowait-nodes=3——initial-start $> NDBD——ndb-nodeid=5——nowait-nodes=3——initial-start
方法启动的数据节点的节点ID
——ndb-nodeid
选择。重要的不要将此选项与
——nowait-nodes
选择ndb_mgmd,它可用于启动配置了多个管理服务器的集群,而不需要所有管理服务器都在线。 -
命令行格式 ——安装(=名字)
特定于平台的 窗户 类型 字符串 默认值 ndbd
原因ndbd安装为Windows服务。您可以选择为服务指定一个名称;如果未设置,则服务名默认为
ndbd
.尽管最好指定otherndbd的程序选项my.ini
或my.cnf
配置文件,是可以一起使用的——安装
.然而,在这种情况下——安装
选项必须在给出任何其他选项之前首先指定,以便Windows服务安装成功。通常不建议将此选项与
——初始
选项,因为这将导致在每次停止和启动服务时清除并重新构建数据节点文件系统。如果你打算使用其他任何一种,也应该特别小心ndbd影响数据节点开始的选项——包括——初始起动
,——nostart
,——nowait-nodes
同一个与——安装
,你应该绝对确定你完全理解并考虑到这样做可能产生的任何后果。的
——安装
选项在非windows平台上不起作用。 -
命令行格式 ——登录路径=路径
类型 字符串 默认值 (没有)
从登录文件读取给定路径。
-
命令行格式 ——ndb-connectstring = connection_string
类型 字符串 默认值 (没有)
设置连接ndb_mgmd的连接字符串。语法:“[nodeid = id;][主机=]主机名(港口):”。覆盖NDB_CONNECTSTRING和my.cnf中的条目。
-
命令行格式 ——ndb-mgmd-host = connection_string
类型 字符串 默认值 (没有)
-
命令行格式 ——ndb-nodeid = #
类型 整数 默认值 (没有)
设置此节点的节点ID,覆盖由
——ndb-connectstring
. ——ndb-optimized-node-selection
命令行格式 ——ndb-optimized-node-selection
为事务的节点选择启用优化。默认启用;使用
——skip-ndb-optimized-node-selection
禁用。-
命令行格式 ——nodaemon
防止ndbd或ndbmtd从作为守护进程执行。选项将覆盖
——守护进程
选择。这对于在调试二进制文件时将输出重定向到屏幕很有用。的默认行为ndbd而且ndbmtdon Windows是在前台运行,这使得该选项在Windows平台上不必要,在那里它没有效果。
-
命令行格式 ——已
不要从除登录文件以外的任何选项文件中读取默认选项。
-
命令行格式 ——nostart
指示ndbd不要自动启动。当使用此选项时,ndbd连接管理服务器,从管理服务器获取配置数据,并初始化通信对象。但是,直到管理服务器特别请求它才真正启动执行引擎。这可以通过签发适当的
开始
命令(参见第18.6.1节“NDB集群管理客户端命令”). ——nowait-nodes =
node_id_1
[,node_id_2
[…]]命令行格式 ——nowait-nodes =列表
类型 字符串 默认值 此选项接受一个数据节点列表,集群在启动前不等待这些数据节点。
这可用于在分区状态下启动集群。例如,要启动一个只有一半数据节点(节点2、3、4和5)运行在4节点集群中的集群,可以启动每个节点ndbd过程
——nowait-nodes = 3, 5
.在这种情况下,集群在节点2和4连接时立即启动,并且确实如此不等待StartPartitionedTimeout
节点3和5以毫秒的速度连接起来。如果您想要启动与上一个示例中相同的集群,而不需要它ndbd(例如,节点3的主机发生了硬件故障),然后用
——nowait-nodes = 3
.当节点2、4和5连接时,集群立即启动,而不等待节点3启动。-
命令行格式 ——print-defaults
打印程序参数列表并退出。
-
命令行格式 ——删除(=名字)
特定于平台的 窗户 类型 字符串 默认值 ndbd
导致一个ndbd该进程以前被安装为要删除的Windows服务。您还可以指定要卸载的服务的名称;如果未设置,则服务名默认为
ndbd
.的
——删除
选项在非windows平台上不起作用。 -
命令行格式 ——使用
显示帮助文本并退出;一样
——帮助
. 导致额外的调试输出写入节点日志。
-
命令行格式 ——版本
显示版本信息并退出。
ndbd所指定的目录中生成一组日志文件DataDir
在config.ini
配置文件。
下面列出了这些日志文件。node_id
是并表示节点的唯一标识符。例如,ndb_2_error.log
是节点ID为的数据节点的错误日志2
.
ndb_
文件是否包含引用的所有崩溃的记录ndbd过程遇到了。此文件中的每个记录都包含一个简短的错误字符串和对此崩溃的跟踪文件的引用。该文件中的一个典型条目可能如下所示:node_id
_error.log日期/时间:2004年7月30日- 00:20:01错误类型:错误消息:内部程序错误(failed ndbrequire)故障ID: 2341问题数据:DbtupFixAlloc.cpp参考对象:DBTUP(行:173)ProgramName: NDB Kernel ProcessID: 14909 TraceFile: ndb_2_trace.log。2 * * * * * *加工
上市的可能ndbd中可以找到数据节点进程过早关闭时生成的退出代码和消息数据节点错误消息.
重要的错误日志文件中的最后一个条目不一定是最新的(也不太可能)。错误日志中的条目是不按时间顺序列出的;方法中确定的跟踪文件的顺序与之对应
ndb_
文件(见下文)。因此,错误日志条目以循环的而不是顺序的方式被覆盖。node_id
_trace.log.nextndb_
是一个跟踪文件,详细描述错误发生之前发生的事情。这些信息对NDB集群开发团队的分析很有用。node_id
_trace.log。trace_id
可以配置在覆盖旧文件之前创建的这些跟踪文件的数量。
trace_id
为每个后续跟踪文件递增的数字。ndb_
是跟踪下一个要分配的跟踪文件号的文件。node_id
_trace.log.nextndb_
控件输出的任何数据是否包含在文件中ndbd的过程。此文件仅在ndbd作为守护进程启动,这是默认行为。node_id
_out.logndb_
是包含进程ID的ndbd作为守护进程启动时处理。它还充当一个锁文件,以避免节点的开头具有相同的标识符。node_id
.pidndb_
的调试版本中是否只使用该文件ndbd的数据中,可以跟踪所有传入、传出和内部消息及其数据ndbd的过程。node_id
_signal.log
建议不要使用通过NFS挂载的目录,因为在某些环境中,这会导致锁在.pid
即使进程已终止,文件仍然有效。
开始ndbd,可能还需要指定管理服务器的主机名及其监听的端口。还可以指定进程要使用的节点ID。
$ > ndbd——连接字符串= " nodeid = 2;主机= ndb_mgmd.mysql.10bet靠谱com: 1186”
看到第18.4.3.3节“NDB集群连接字符串”,以获取有关此问题的更多信息。有关数据节点配置参数的详细信息,请参见第18.4.3.6节“定义NDB集群数据节点”.
当ndbd它实际上启动了两个进程。第一个叫做”天使的过程”;它的唯一工作是发现执行过程何时完成,然后重新启动ndbd处理(如果配置为这样做)。因此,如果你想杀人ndbd使用Unix杀了命令时,必须从天使进程开始杀死两个进程。终止的首选方法ndbd流程是使用管理客户端并从那里停止流程。
执行过程使用一个线程来读取、写入和扫描数据,以及所有其他活动。该线程是异步实现的,因此它可以轻松处理数千个并发操作。此外,看门狗线程监视执行线程,以确保它不会挂起在一个无休止的循环中。线程池处理文件I/O,每个线程能够处理一个打开的文件。中的传输器还可以将线程用于传输器连接ndbd的过程。在执行大量操作(包括更新)的多处理器系统中ndbd如果允许,进程最多可以消耗2个cpu。
对于具有多个cpu的机器,可以使用多个cpundbd属于不同节点组的进程;然而,这样的配置仍然被认为是实验性的,在生产设置中MySQL 5.6不支持。看到第18.2.7节“NDB集群的已知局限性”.