暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Gbase 8a 集群日志分类及使用方法(一)

VV_刺头王 2022-03-27
1399

一.  安装日志

 

安装日志记录集群和服务的安装、卸载、升级,回退、扩容,缩容、节点替换日志,可用于定位安装出错的问题。

安装、升级,扩容,缩容日志

gcinstall/gcinstall.log

安装过程各节点执行日志

/tmp/InstallTar.log

卸载日志

gcinstall/uninstall.log

回退日志

gcinstall/restore.log

回退过程各节点执行日志

/tmp/RestoreLocal.log

节点替换日志

gcinstall/replace.log

 

二.  GCware日志

GCware日志文件路径: /GCWARE_BASE/log/gcware.log

当出现集群分裂现象时,查看日志方法:grep lost /GCWARE_BASE/log/gcware.log

 

三.  数据库管理日志

gcluster 层日志存放路径为:$GLUSTER_BASE/log/gcluster。

gnode 层日志存放路径为: $GBASE_BASE/log/gbase。

 

1. Trace日志:

1)默认不打开

2)开启trace日志后查询计划输入到$GCLUSTER_BASE/log/gcluster目录下以.trc结尾的文件中。

    gbase> show variables like '%gbase_sql_trace%';

    +----------------------------+-------+

   

    | Variable_name              | Value |

    +----------------------------+-------+

    | _gbase_sql_trace_file_mode | OFF   |

    | gbase_sql_trace            | ON    |

    | gbase_sql_trace_level      | 0     |

    +----------------------------+-------+

    3 rows in set (Elapsed: 00:00:00.00)

   

    打开trace开关:(session/global级参数)

    set gbase_sql_trace=1;            

    set global gbase_sql_trace_level=1;     

    设置trace级别:(global级参数)

    set global gbase_sql_trace_level=3;

 

gbase_sql_trace_level 1、2、3 级,表示 trace 日志记录信息的详细程度

3 级是最详细的日志内容, 日志文件为.trc 后缀名的文件;

trace 日志是根据当前 session 连接生成的 trc 日志,故 session 断开会产生新的 trc 日志。

由于日志内容较大,不方便分析,每次执行 sql 语句之前建议清空以前的 trc 日志文件,方法为使用 rm -rf *.trc 删除之前的 trace日志。

3)gcluster层:记录SQL的查询和SQL分布式执行计划。通过分析这些计划来确定SQL的计划是否是最优的。

可查看SQL 语句的计划步骤是3步还是2步,找出执行时间间隔最大的步骤,然后分析是否能应用优化方法进行优化提高性能;

4)gnode层:记录sql下发到当前节点的执行情况,记录SQL语句的完整执行过程。

一条 SQL 语句经 GCluster 层解析分解执行计划后,会产生很多条 SQL 语句下发到 GNode 层,所以在 到 GNode 的日志目录下会产生多个.trc 日志文件,建议查看执行节点的到 GNode 层的字节数最大的那个.trc 文件即可。

一条 SQL 语句的通用的完整执行流程一般如下所述:

smart scan -> scan -> join -> aggregation -> sort -> materialization -> send result

包含聚集和排序操作的时候通常无需单独的物化步骤,物化在聚集和排序过程中已经完成。

如果是包含嵌套子查询的复杂 SQL,嵌套子查询从内至外递归执行,每一层的执行顺序与上述过程基本相同

排查性能问题时,就是查看上面步骤具体是哪个步骤耗时长,定位后再分析 I/O 因素、 buffer 大小对性能影响等信息,看如何优化能提高性能

2. express.log

1)默认打开

2)记录 express 引擎内部执行过程中的一些重要信息,包括异常等,有时可用于查错。

3)express 详细日志内容,可以在 gcluster 配置文件中设置gcluster_log_level =7,设置配置文件后,需要重启集群服务,使上述配置文件的设置生效;也可以通过set [global] gcluster_log_level=7的方式设置,设置完成后完整的执行计划可输出到 express.log 文件中。

4)缺省情况下只有执行过程中出现的警告和错误才会输出到 express.log 文件。

3. system.log(也叫错误日志)

1)默认打开

2)记录数据库服务启动、停止等重要操作,并可记录数据库服务宕库等异常情况的程序堆栈,可辅助开发人员查错。

GCluter 层和 GNode 层分别记录 gclusterd 服务和 gbased 服务的启动、停止等信息,当有服务崩溃时,可查看当时的程序堆栈,辅助开发人员查错。)

3)日志文件存储路径:

$GCLUSTER_BASE/log/gcluster/system.log

$GBASE_BASE/log/gbase/system.log

4)日志文件名称可通过设置log_error参数修改。默认为$GCLUSTER_BASE/log/gcluster/system.log;

5)运行过程中出现crash时,system.log中记录了宕机的堆栈信息,core文件中记录了宕机的详细的堆栈信息,查看详细的堆栈信息,方法如下:

   集群管理节点层面:在每台集群节点机器的$GBASE_BASE/config路径下,找到配置文件gbase_8a_gcluster.cnf,将文件中的core-file参数去掉参数前的注释符号“#”;

   集群数据节点层面:在每台集群节点机器的$GBASE_BASE/config路径下,找到配置文件gbase_8a_gbase.cnf,将文件中的core-file参数去掉参数前的注释符号“#”

    完成上述步骤后,重新启动集群服务,使上述配置文件的设置生效。

4. general日志(也叫 SQL 日志)

1)默认不打开

2)记录数据库执行过的 SQL 语句。

3)日志文件名称可通过设置 general_log_file 参数修改,默认路径$GCLUSTER_BASE/log/gcluster/gclusterd.log

4)开启SQL日志,语法如下:

SET GLOBAL general_log =on;

SET GLOBAL log_output='FILE'|'TABLE';

    log_output 参数值'FILE'|'TABLE'选项值为二选一;

    log_output 参数值是 FILE 时,表示生成日志文件,为默认设置;

    log_output 参数值是 TABLE 时,表示生成日志的日志内容输出到表中,一般这个选项在集群监控工具中使用;

    log_output 参数值是 TABLE时,表示将 SQL 语句写入一个表中,在监控工具中要开启审计日志功能,则必须设置为 TABLE;

5)在监控工具中开启审计日志功能方法为:

SET GLOBAL general_log=true;

SET GLOBAL log_output='TABLE'

 

gbase> show variables like '%general_log%';   

+------------------+----------------------------------------------------+

| Variable_name    | Value                                              |

+------------------+----------------------------------------------------+

| general_log      | OFF                                                |

| general_log_file | /opt/10.10.8.0/gcluster/log/gcluster/gclusterd.log |

+------------------+----------------------------------------------------+

2 rows in set (Elapsed: 00:00:00.00)

 

gbase> show variables like '%log_output%';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_output    | FILE  |

+---------------+-------+

1 row in set (Elapsed: 00:00:00.00)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论