一. 安装日志
安装日志记录集群和服务的安装、卸载、升级,回退、扩容,缩容、节点替换日志,可用于定位安装出错的问题。
安装、升级,扩容,缩容日志
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)




