MySQL Cluster篇10 — 日志相关

概述

本章,您将学习并管理 MySQL NDB Cluster 中的日志。

目前管理节点的 config.ini 文件内容未修改,如下所示:

Shell > vim /etc/mysql-cluster/config.ini
[ndbd default]
NoOfReplicas=2
DataMemory=98M

[ndb_mgmd]
HostName=192.168.100.10
DataDir=/var/log/mysql-cluster

[ndbd]
HostName=192.168.100.12
NodeId=2
DataDir=/usr/local/mysql/data

[ndbd]
HostName=192.168.100.14
NodeId=3
DataDir=/usr/local/mysql/data

[mysqld]
HostName=192.168.100.16

日志分类

在 MySQL NDB Cluster 中,日志(或称事件日志)被划分为了两个大类:

  • 集群日志 - 包含了所有集群节点生成的事件。由于集群日志能在单一位置提供整个集群的日志信息,因此是大多数场景下推荐使用的日志类型。默认情况下,它被保存在管理服务器的数据目录中,文件命名为 ndb_node_id_cluster.log,其中 node_id 指管理节点的节点 ID

    Shell (192.168.100.10)> ls -l /var/log/mysql-cluster/
    总用量 56
    -rw-r--r-- 1 root root 41441 4月  13 19:42 ndb_1_cluster.log
    -rw-r--r-- 1 root root    68 4月  13 19:42 ndb_1_out.log
    -rw-r--r-- 1 root root     5 4月  13 19:42 ndb_1.pid
  • 节点日志 - 保存在每个数据服务器或 SQL 服务器上的的本地日志。默认情况下,保存在这些服务器的数据目录中,文件命名为 ndb_node_id_out.log,中 node_id 指 SQL 节点或数据节点的节点 ID。在应用程序开发期间以及需要调试应用程序的代码时,需要使用到节点日志。

每个被报告的事件可以根据三个不同标准进行区分(可通过这三个标准来过滤日志,相当于日志的筛选条件):

  • 类别(Category) - STARTUP、SHUTDOWN、STATISTICS、CHECKPOINT、NODERESTART、CONNECTION、ERROR、INFO 的任意一个
  • 优先级(Priority) - 通过 0~15 的其中一个数字来表示事件在集群内部的处理优先级,数值越小越紧急。0 表示最重要,15 表示最不重要
  • 严重程度(Severity Level) - ON、DEBUG、INFO、WARNING、ERROR、CRITICAL、ALERT、ALL 的任意一个。不同的严重程度代表着当前集群环境的状态,由低到高依次是:

    关键字 描述
    DEBUG 基本调试消息
    INFO 信息性消息
    WARNING 警告类的消息,可能需要进行特殊处理
    ERROR 错误类消息,比如配置文件的内容错误
    CRITICAL 非常关键的消息,需要进行人工干预,比如设备故障或资源不足等
    ALERT 应该立刻采取行动的消息,比如系统数据库损坏
小提示
在 Rsyslog 日志处理程序中,优先级(Priority)从低到高依此使用的关键字为 debuginfonoticewarningerrcritalertemerg ,此处的优先级用来说明严重程度。在 Rsyslog 中,日志优先级越低,记录的内容越详细,严重性越低;日志优先级越高,记录的内容越少,问题越严重。Rsyslog 日志处理程序配置文件中的优先级(Priority)和 MySQL NDB Cluster 中日志的优先级(Priority)虽然都使用相同的英语单词,但所表达的含义不是一样的。读者不要混淆它们。

日志的记录格式

无论是集群日志还是节点日志,每一行日志记录的标准格式是:

timestamp [node_type] level -- Node node_id: message
  • 时间戳(timestamp) - 格式为 YYYY-MM-DD HH:MM:SS
  • 节点类型(node_type) - 可以是 [MgmtSrvr]、[ndbd]、[NdbApi] 的其中一个
  • 严重程度(level) - ON、DEBUG、INFO、WARNING、ERROR、CRITICAL、ALERT、ALL 的任意一个
  • 节点 ID(-- Node node_id) - node_id 替换为具体的节点 ID
  • 包含事件的描述信息(message)- 最常见的消息即集群中不同节点之间的连接或断开

192.168.100.10 管理服务器的集群日志内容示例:

Shell > tail -n 20 /var/log/mysql-cluster/ndb_1_cluster.log
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 2: Start phase 9 completed (system restart)
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 2: Start phase 50 completed (system restart)
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 3: Start phase 50 completed (system restart)
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 2: Start phase 101 completed (system restart)
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 3: Start phase 101 completed (system restart)
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 2: Started (mysql-8.4.8 ndb-8.4.8)
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 3: Started (mysql-8.4.8 ndb-8.4.8)
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 2: Node 1: API mysql-8.4.8 ndb-8.4.8
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 3: Node 1: API mysql-8.4.8 ndb-8.4.8
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 3: Prepare arbitrator node 1 [ticket=330200010003eb41]
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 3: Communication to Node 4 opened
2026-04-13 19:42:35 [MgmtSrvr] INFO     -- Node 2: Started arbitrator node 1 [ticket=330200010003eb41]
2026-04-13 19:42:36 [MgmtSrvr] INFO     -- Node 2: Communication to Node 4 opened
2026-04-13 19:42:47 [MgmtSrvr] INFO     -- Alloc node id 4 succeeded
2026-04-13 19:42:47 [MgmtSrvr] INFO     -- Nodeid 4 allocated for API at 192.168.100.16
2026-04-13 19:42:47 [MgmtSrvr] INFO     -- Node 4: mysqld --server-id=1
2026-04-13 19:42:48 [MgmtSrvr] INFO     -- Node 3: Node 4 Connected
2026-04-13 19:42:48 [MgmtSrvr] INFO     -- Node 2: Node 4 Connected
2026-04-13 19:42:48 [MgmtSrvr] INFO     -- Node 2: Node 4: API mysql-8.4.8 ndb-8.4.8
2026-04-13 19:42:48 [MgmtSrvr] INFO     -- Node 3: Node 4: API mysql-8.4.8 ndb-8.4.8

管理服务器上有关日志的交互命令

在前面的文章 《MySQL Cluster篇04 — 管理节点的命令与选项》 中,介绍了管理节点常见的交互命令,下面说明的是有关集群日志的交互命令:

  • clusterlog on - 打开集群日志
  • clusterlog off - 关闭集群日志
  • clusterlog info - 提供集群日志设置的信息
  • node_id clusterlog categeory=level - 指定目标节点的节点 ID(指定全部节点则使用关键字 ALL),在集群日志中记录小于或等于优先级的类别日志。例如 2 clusterlog shutdown=3

小提示
在 ndb_mgm 的交互命令中,命令关键字忽略大小写。

数据节点上各类事件被记录在集群日志上,其类别与默认优先级如下表所示:

类别 默认优先级
STARTUP 7
SHUTDOWN 7
STATISTICS 7
CHECKPOINT 7
NODERESTART 7
CONNECTION 8
ERROR 15
INFO 7
BACKUP 15
CONGESTION 7
SCHEMA 7
Avatar photo

关于 陸風睿

GNU/Linux 从业者、开源爱好者、技术钻研者,撰写文档既是兴趣也是工作内容之一。Q - "281957576";WeChat - "jiulongxiaotianci",Github - https://github.com/jimcat8
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇