• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • NDB群集中生成的事件报告

    在本节中,我们讨论NDB Cluster提供的事件日志的类型以及记录的事件的类型。

    NDB群集提供两种类型的事件日志:

    • 的群集日志,其包括所有群集节点生成的事件。群集日志是大多数情况下建议使用的日志,因为它在单个位置提供了整个群集的日志记录信息。

      默认情况下,集群日志将保存到管理服务器的名为的文件(其中是管理服务器的节点ID)。ndb_node_id_cluster.lognode_idDataDir

      集群日志记录信息也可以发送到,stdout或者syslog作为保存到文件的补充,或者代替保存到文件,这由为DataDirLogDestination配置参数设置的值确定。有关这些参数的更多信息,请参见“定义NDB群集管理服务器”。

    • 节点日志是每个节点本地的。

      节点事件日志记录生成的输出将写入节点的文件中(节点的节点ID)。同时为管理节点和数据节点生成节点事件日志。ndb_node_id_out.lognode_idDataDir

      节点日志仅在应用程序开发期间或调试应用程序代码时使用。

    两种类型的事件日志都可以设置为记录不同的事件子集。

    每个可报告事件可以根据三个不同的标准进行区分:

    • 类别:这可以是以下值中的任何一个:STARTUPSHUTDOWNSTATISTICSCHECKPOINTNODERESTARTCONNECTIONERROR,或INFO
    • 优先级:这是由数字中的一个表示从0至15包容性,其中0表示“最重要的”和15个“最重要的。”
    • 严重级别:这可以是下列任一值:ALERTCRITICALERRORWARNINGINFO,或DEBUG

    可以在这些属性上过滤群集日志和节点日志。

    集群日志中使用的格式如下所示:

    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 1: Data usage is 2%(60 32K pages of total 2560)
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 1: Index usage is 1%(24 8K pages of total 2336)
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 1: Resource 0 min: 0 max: 639 curr: 0
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 2: Data usage is 2%(76 32K pages of total 2560)
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 2: Index usage is 1%(24 8K pages of total 2336)
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 2: Resource 0 min: 0 max: 639 curr: 0
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 3: Data usage is 2%(58 32K pages of total 2560)
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 3: Index usage is 1%(25 8K pages of total 2336)
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 3: Resource 0 min: 0 max: 639 curr: 0
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 4: Data usage is 2%(74 32K pages of total 2560)
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 4: Index usage is 1%(25 8K pages of total 2336)
    2007-01-26 19:35:55 [MgmSrvr] INFO     -- Node 4: Resource 0 min: 0 max: 639 curr: 0
    2007-01-26 19:39:42 [MgmSrvr] INFO     -- Node 4: Node 9 Connected
    2007-01-26 19:39:42 [MgmSrvr] INFO     -- Node 1: Node 9 Connected
    2007-01-26 19:39:42 [MgmSrvr] INFO     -- Node 1: Node 9: API 8.0.20-ndb-8.0.20
    2007-01-26 19:39:42 [MgmSrvr] INFO     -- Node 2: Node 9 Connected
    2007-01-26 19:39:42 [MgmSrvr] INFO     -- Node 2: Node 9: API 8.0.20-ndb-8.0.20
    2007-01-26 19:39:42 [MgmSrvr] INFO     -- Node 3: Node 9 Connected
    2007-01-26 19:39:42 [MgmSrvr] INFO     -- Node 3: Node 9: API 8.0.20-ndb-8.0.20
    2007-01-26 19:39:42 [MgmSrvr] INFO     -- Node 4: Node 9: API 8.0.20-ndb-8.0.20
    2007-01-26 19:59:22 [MgmSrvr] ALERT    -- Node 2: Node 7 Disconnected
    2007-01-26 19:59:22 [MgmSrvr] ALERT    -- Node 2: Node 7 Disconnected
    

    群集日志中的每一行都包含以下信息:

    • 格式的时间戳。YYYY-MM-DDHH:MM:SS
    • 正在执行日志记录的节点的类型。在群集日志中,该值始终为[MgmSrvr]
    • 事件的严重性。
    • 报告事件的节点的ID。
    • 事件的描述。日志中最常见的事件类型是群集中不同节点之间的连接和断开连接,以及发生检查点的时间。在某些情况下,描述可能包含状态信息。

    NDB群集日志记录管理命令

    ndb_mgm支持许多与群集日志和节点日志有关的管理命令。在下面的清单中,node_id表示存储节点ID或关键字ALL,表示该命令应应用于所有群集的数据节点。

    • CLUSTERLOG ON

      打开集群日志。

    • CLUSTERLOG OFF

      关闭集群日志。

    • CLUSTERLOG INFO

      提供有关群集日志设置的信息。

    • node_id CLUSTERLOG category=threshold

      日志category优先级小于或等于事件threshold在群集日志。

    • CLUSTERLOG FILTER severity_level

      切换指定的事件的集群记录severity_level

    下表描述了群集日志类别阈值的默认设置(对于所有数据节点)。如果事件的优先级值小于或等于优先级阈值,则会在群集日志中报告该事件。

    注意

    将针对每个数据节点报告事件,并且可以在不同节点上将阈值设置为不同的值。

    群集日志类别,具有默认阈值设置

    类别默认阈值(所有数据节点)
    STARTUP7
    SHUTDOWN7
    STATISTICS7
    CHECKPOINT7
    NODERESTART7
    CONNECTION7
    ERROR15
    INFO7

    STATISTICS类别可以提供大量有用的数据。有关更多信息,请参见“在NDB群集管理客户端中使用CLUSTERLOG统计”。

    阈值用于过滤每个类别中的事件。例如,STARTUP除非将阈值STARTUP设置为3或更高,否则不记录优先级为3 的事件。如果阈值为3,则仅发送优先级为3或更低的事件。

    下表显示了事件严重性级别。

    注意

    这些和Unix syslog级别相对应,除了LOG_EMERG和之外LOG_NOTICE,它们没有使用或映射。

    事件严重性级别

    严重级别值严重程度描述
    1个ALERT应立即纠正的情况,例如损坏的系统数据库
    2CRITICAL紧急情况,例如设备错误或资源不足
    3ERROR应纠正的条件,例如配置错误
    4WARNING条件不是错误,但是可能需要特殊处理
    5INFO信息性消息
    6DEBUG调试用于NDBCLUSTER开发的消息

    可以打开或关闭事件严重性级别(使用CLUSTERLOG FILTER—参见上文)。如果打开了严重性级别,则将记录优先级小于或等于类别阈值的所有事件。如果关闭了严重性级别,则不会记录属于该严重性级别的事件。

    重要

    群集日志级别是基于每个订户的每个ndb_mgmd设置的。这意味着,在具有多个管理服务器的NDB群集中,CLUSTERLOG在连接到一个管理服务器的ndb_mgm实例中使用命令只会影响该管理服务器生成的日志,而不会影响其他任何服务器。这也意味着,如果要重新启动其中一个管理服务器,则仅由该管理服务器生成的日志会受到重新启动引起的日志级别重置的影响。


    NDB群集日志事件

    事件日志中报告的事件报告具有以下格式:

    datetime [string] severity -- message
    

    例如:

    09:19:30 2005-07-24 [NDB] INFO -- Node 4 Start phase 4 completed
    

    本节讨论所有可报告事件,按类别和每个类别中的严重性级别排序。

    在事件描述中,GCP和LCP分别表示“全局检查点”和“本地检查点”。

    连接事件

    这些事件与群集节点之间的连接相关。

    与群集节点之间的连接相关的事件

    事件优先严重等级描述
    Connected8INFO数据节点已连接
    Disconnected8ALERT数据节点断开
    CommunicationClosed8INFOSQL节点或数据节点连接已关闭
    CommunicationOpened8INFOSQL节点或数据节点连接已打开
    ConnectedApiVersion8INFO使用API版本的连接

    CHECKPOINT活动

    此处显示的日志消息与检查点相关联。

    与检查点关联的事件

    事件优先严重等级描述
    GlobalCheckpointStarted9INFOGCP启动:REDO日志写入磁盘
    GlobalCheckpointCompleted10INFOGCP完成
    LocalCheckpointStarted7INFOLCP的开始:数据写入磁盘
    LocalCheckpointCompleted7INFOLCP正常完成
    LCPStoppedInCalcKeepGci0ALERTLCP停止
    LCPFragmentCompleted11INFO片段上的LCP已完成
    UndoLogBlocked7INFOUNDO日志记录被阻止;缓冲区溢出
    RedoStatus7INFO重做状态

    启动事件

    响应于节点或群集的启动及其成功或失败,将生成以下事件。它们还提供有关启动过程进度的信息,包括有关日志记录活动的信息。

    与节点或集群启动有关的事件

    事件优先严重等级描述
    NDBStartStarted1个INFO数据节点启动阶段已启动(所有节点均已启动)
    NDBStartCompleted1个INFO开始阶段已完成,所有数据节点
    STTORRYRecieved15INFO重新启动完成后收到的块
    StartPhaseCompleted4INFO数据节点启动阶段X已完成
    CM_REGCONF3INFO节点已成功包含到集群中;显示节点,管理节点和动态ID
    CM_REGREF8INFO节点已被拒绝包含在集群中;由于配置错误,无法建立通信或其他问题而无法包含在群集中
    FIND_NEIGHBOURS8INFO显示相邻的数据节点
    NDBStopStarted1个INFO数据节点关闭启动
    NDBStopCompleted1个INFO数据节点关闭完成
    NDBStopForced1个ALERT强制关闭数据节点
    NDBStopAborted1个INFO无法正常关闭数据节点
    StartREDOLog4INFO新的重做日志开始;GCI保留X,最新可恢复的GCIY
    StartLog10INFO新日志开始;日志部分X,启动MB Y,停止MB Z
    UNDORecordsExecuted15INFO撤消记录已执行
    StartReport4INFO报告开始
    LogFileInitStatus7INFO日志文件初始化状态
    LogFileInitCompStatus7INFO日志文件完成状态
    StartReadLCP10INFO开始读取本地检查点
    ReadLCPComplete10INFO读取完成本地检查点
    RunRedo8INFO运行重做日志
    RebuildIndex10INFO重建索引

    NODERESTART活动

    重新启动节点时会生成以下事件,这些事件与节点重新启动过程的成功或失败有关。

    与重启节点有关的事件

    事件优先严重等级描述
    NR_CopyDict7INFO完成字典信息的复制
    NR_CopyDistr7INFO完成复制分发信息
    NR_CopyFragsStarted7INFO开始复制片段
    NR_CopyFragDone10INFO完成复制片段
    NR_CopyFragsCompleted7INFO完成复制所有片段
    NodeFailCompleted8ALERT节点故障阶段已完成
    NODE_FAILREP8ALERT报告节点发生故障
    ArbitState6INFO报告是否找到仲裁员;寻求仲裁员时有七种不同的可能结果,如下所示:
    • 管理服务器重新启动仲裁线程[state =X]
    • 准备仲裁程序节点X[ticket =Y]
    • 接收仲裁节点X[ticket =Y]
    • 启动的仲裁程序节点X[ticket =Y]
    • 仲裁器节点丢失X-进程失败[state =Y]
    • 仲裁器节点丢失X-进程退出[state =Y]
    • 丢失的仲裁程序节点X<错误消息>[状态=Y]
    ArbitResult2ALERT报告仲裁员结果;此处列出了八种不同的仲裁尝试可能结果:
    • 仲裁检查失败:剩余不到1/2个节点
    • 仲裁检查成功:多数节点组
    • 仲裁检查失败:缺少节点组
    • 网络分区:需要仲裁
    • 仲裁成功:来自节点的肯定回应X
    • 仲裁失败:节点的否定响应X
    • 网络分区:无仲裁器可用
    • 网络分区:未配置仲裁器
    GCP_TakeoverStarted7INFOGCP接管开始
    GCP_TakeoverCompleted7INFOGCP收购完成
    LCP_TakeoverStarted7INFOLCP收购开始
    LCP_TakeoverCompleted7INFOLCP收购完成(状态=X
    ConnectCheckStarted6INFO连接检查开始
    ConnectCheckCompleted6INFO连接检查完成
    NodeFailRejected6ALERT节点故障阶段失败

    统计活动

    以下事件具有统计性质。它们提供信息,例如事务处理和其他操作的数量,各个节点发送或接收的数据量以及内存使用情况。

    具有统计性质的事件

    事件优先严重等级描述
    TransReportCounters8INFO报告事务统计信息,包括事务数,提交,读取,简单读取,写入,并发操作,属性信息和中止
    OperationReportCounters8INFO操作次数
    TableCreated7INFO报告已创建表的数量
    JobStatistic9INFO平均内部作业调度统计
    ThreadConfigLoop9INFO线程配置循环数
    SendBytesStatistic9INFO发送到节点的平均字节数X
    ReceiveBytesStatistic9INFO从节点接收的平均字节数X
    MemoryUsage5INFO数据和索引内存使用率(80%,90%和100%)
    MTSignalStatistics9INFO多线程信号

    SCHEMA活动

    这些事件与NDB群集架构操作有关。

    与NDB群集架构操作有关的事件

    事件优先严重等级描述
    CreateSchemaObject8INFO创建对象的架构
    AlterSchemaObject8INFO模式对象已更新
    DropSchemaObject8INFO架构对象已删除

    错误事件

    这些事件与群集错误和警告有关。这些中的一个或多个的存在通常表明发生了重大故障或故障。

    与群集错误和警告有关的事件

    事件优先严重等级描述
    TransporterError2ERROR转运错误
    TransporterWarning8WARNING运输车警告
    MissedHeartbeat8WARNING节点X错过的心跳数Y
    DeadDueToHeartbeat8ALERT由于缺少心跳,节点X宣布“死机”
    WarningEvent2WARNING一般警告事件
    SubscriptionStatus4WARNING更改订阅状态

    INFO活动

    这些事件提供有关群集状态以及与群集维护相关的活动的常规信息,例如日志记录和心跳传输。

    信息事件

    事件优先严重等级描述
    SentHeartbeat12INFO发送心跳
    CreateLogBytes11INFO创建日志:日志部分,日志文件,大小(MB)
    InfoEvent2INFO一般信息活动
    EventBufferStatus7INFO事件缓冲区状态
    EventBufferStatus27INFO改进的事件缓冲区状态信息

    注意

    SentHeartbeat仅当VM_TRACE启用NDB群集编译时,事件才可用。

    SINGLEUSER活动

    这些事件与进入和退出单用户模式相关。

    与单用户模式有关的事件

    事件优先严重等级描述
    SingleUser7INFO进入或退出单用户模式

    备份事件

    这些事件提供有关正在创建或还原的备份的信息。

    备份事件

    事件优先严重等级描述
    BackupStarted7INFO备份开始
    BackupStatus7INFO备份状态
    BackupCompleted7INFO备份完成
    BackupFailedToStart7ALERT备份无法启动
    BackupAborted7ALERT备份被用户中止
    RestoreStarted7INFO开始从备份还原
    RestoreMetaData7INFO恢复元数据
    RestoreData7INFO恢复数据
    RestoreLog7INFO恢复日志文件
    RestoreCompleted7INFO从备份完成还原
    SavedEvent7INFO活动已保存

    在NDB群集管理客户端中使用CLUSTERLOG统计

    NDB管理客户端的CLUSTERLOG STATISTICS命令可以提供许多可在其输出的统计数据。事务协调器(TC)和本地查询处理程序(LQH)以5秒的报告间隔更新提供有关集群状态信息的计数器,并将其写入集群日志。

    交易协调员统计信息。每个事务都有一个事务协调器,可通过以下方法之一选择事务协调器:

    • 以循环方式
    • 通过通讯接近
    • 通过在事务开始时提供数据放置提示
    注意

    您可以使用ndb_optimized_node_selection系统变量来确定从给定的SQL节点开始的事务使用哪种TC选择方法。

    同一事务中的所有操作都使用同一事务协调器,该事务协调器报告以下统计信息:

    • 反算。这是使用此TC作为事务协调器的最后间隔中开始的事务数。在报告时间间隔结束时,这些事务中的任何一个都可能已提交,已中止或保持未提交状态。

      注意

      事务不会在TC之间迁移。

    • 提交计数。这是在上一个报告间隔中使用此TC作为事务协调器进行的事务的数量。由于在此报告间隔中提交的某些事务可能已在先前的报告间隔中开始,因此可能Commit count大于Trans count
    • 读取计数。这是在最后一次报告间隔中使用此TC作为事务协调器进行的主键读取操作的数量,包括简单读取。此计数还包括作为唯一索引操作的一部分执行的读取。唯一索引读取操作会生成2个主键读取操作-1个用于隐藏的唯一索引表,而1个用于在其上进行读取的表。
    • 简单读取计数。这是在上一个报告间隔中使用此TC作为事务协调器进行的简单读取操作的数量。
    • 写计数。这是在上次报告间隔中使用此TC作为事务协调器进行的主键写入操作的数量。这包括所有插入,更新,写入和删除,以及作为唯一索引操作的一部分执行的写入。

      注意

      唯一索引更新操作可以在索引表和基表上生成多个PK读取和写入操作。

    • AttrInfoCount。这是在最后一个报告间隔中使用此TC作为事务协调器进行主键操作时接收到的32位数据字的数量。对于读取,这与请求的列数成正比。对于插入和更新,这与写入的列数及其数据大小成正比。对于删除操作,通常为零。

      唯一索引操作会生成多个PK操作,因此会增加此计数。但是,此处计入发送来描述PK操作本身的数据字和发送的密钥信息。发送来描述要读取扫描的列或描述ScanFilter的属性信息也不计入AttrInfoCount

    • 并发操作。这是使用该TC作为事务协调器的主键或扫描操作的数量,这些操作在上次报告时间间隔内已开始但尚未完成。操作在启动时递增此计数器,在完成时递减。这在事务提交后发生。肮脏的读写操作以及失败的操作都会使此计数器递减。

      该最大值Concurrent Operations可以具有是操作一个TC块可以支持的最大数量;目前,这是(2 * MaxNoOfConcurrentOperations)+ 16 + MaxNoOfConcurrentTransactions。(有关这些配置参数的更多信息,请参见“定义NDB群集数据节点”中的“事务参数”部分。)

    • 中止计数。这是在上次报告间隔期间使用此TC作为事务协调器的事务数量。由于在上一个报告间隔中中止的某些事务可能已经在上一个报告间隔中开始,Abort count因此有时可能大于Trans count
    • 扫描。这是在上一个报告时间间隔内使用此TC作为事务协调器进行的表扫描的次数。这不包括范围扫描(即有序索引扫描)。
    • 范围扫描。这是在上一个报告间隔内使用此TC作为事务协调器进行的有序索引扫描的次数。
    • 本地读取。这是在还保存记录的主副本的节点上使用事务处理协调器执行的主键读取操作的数量。该计数也可以从表中的LOCAL_READS计数器获得ndbinfo.counters
    • 本地写入。这包含在还保存记录的主副本的节点上使用事务处理协调器执行的主键读取操作的数量。该计数也可以从表中的LOCAL_WRITES计数器获得ndbinfo.counters

    本地查询处理程序统计信息(操作)。每个本地查询处理程序块有1个集群事件(即每个数据节点进程1个)。操作记录在LQH中,操作所基于的数据将驻留在该位置。

    注意

    单个事务可以对存储在多个LQH块中的数据进行操作。

    Operations统计信息提供了该LQH块在最后报告间隔中执行的本地操作的数量,并包括所有类型的读取和写入操作(插入,更新,写入和删除操作)。这也包括用于复制写入的操作。例如,在2副本群集中,对主副本的写入记录在主LQH中,而对备份的写入将记录在备份LQH中。唯一键操作可能会导致多个本地操作;然而,这并包括如表扫描或有序索引扫描,这不被计数的结果而产生的局部操作。

    进程调度程序统计信息。除了由事务协调器和本地查询处理程序报告的统计信息之外,每个ndbd进程还具有一个调度程序,该调度程序还提供与NDB群集性能有关的有用指标。该调度程序在无限循环中运行;在每个循环中,调度程序执行以下任务:

    1. 将来自套接字的所有传入消息读入作业缓冲区。
    2. 检查是否有定时消息要执行;如果是这样,请将它们也放入作业缓冲区。
    3. 执行(循环)作业缓冲区中的所有消息。
    4. 发送通过在作业缓冲区中执行消息而生成的所有分布式消息。
    5. 等待任何新的传入消息。

    流程调度程序统计信息包括以下内容:

    • 平均循环计数器。这是上一个列表中第三步执行的循环数。随着TCP / IP缓冲区利用率的提高,此统计信息的大小也会增加。您可以在添加新的数据节点进程时使用它来监视性能的变化。
    • 平均发送大小和平均接收大小。这些统计信息使您能够评估节点之间的写入和读取效率。值以字节为单位。较高的值表示发送或接收的每字节成本较低;最大值为64K。

    要记录所有群集日志统计信息,可以在NDB管理客户端中使用以下命令:

    ndb_mgm> ALL CLUSTERLOG STATISTICS=15
    
    注意

    将阈值设置为STATISTICS15会导致群集日志变得非常冗长,并且大小会迅速增长,与群集节点的数量和NDB群集中的活动量成正比。

    有关与日志和报告有关的NDB群集管理客户端命令的更多信息,请参见“ NDB群集日志管理命令”。