17. ClustrixDB 日志管理
ClustrixDB记录关于重要和有问题的查询的详细信息。这些日志有助于确定以下事项:
- 慢速查询
- 资源争用
- SQL错误
- 读取意外数量行的查询
- 模式变化
- 全局变量的修改
- 集群的改变
默认情况下,查询日志是启用的,日志存储在/data/clustrix/log/中。
每个节点将记录其运行的查询的信息,同时充当全局事务管理器(GTM)。为了评估集群范围内的问题,常常需要合并来自所有节点的日志。使用clx logdump来合并和评估日志。
管理查询日志
查询类型
query.log中的每个条目都被归类为这些类型之一。每个查询类型的特定日志记录由指定的全局变量或会话变量控制。
Query Type
|
Description
|
---|---|
SQLERR | 这些数据库错误包括语法错误、超时通知和权限问题。默认情况下,所有的SQLERR查询都将被记录下来(session_log_error_queries)。 |
SLOW | 查询执行时间超过了session_log_slow_threshold_ms指定的阈值。(慢SQL) |
DDL |
记录 CREATE, DROP, ALTER),SET GLOBAL or SESSION command. 默认所有DDL都被记录(session_log_ddl). |
BAD | 查询读取的行数超过返回预期结果所需的行数。这可能表示计划不好或缺少索引,默认关闭(session_log_bad_queries). |
ALTER CLUSTER | 通过ALTER cluster命令对集群所做的更改总是自动记录到query.log中。此日志记录不受全局变量控制。 |
全局变量和会话变量
用于控制查询日志记录的一些变量可能由会话指定,而一些变量仅在系统范围内可用。要设置与日志记录相关的任何变量的值,请使用以下语法:
SET [GLOBAL | SESSION] variable_name = desired_value;
这些变量控制查询和用户日志记录。这里显示的默认设置对于大多数安装来说都是可以接受的。
Name
|
Description
|
Default Value
|
Session Variable
|
---|---|---|---|
session_log_bad_queries | Log BAD queries to the query.log | false |
|
session_log_ddl | Log DDL statements to query.log | true | |
session_log_error_queries | Log ERROR statements to query.log | true | |
session_log_slow_queries | Log SLOW statements to query.log | true | |
session_log_slow_threshold_ms | Query duration threshold in milliseconds before logging this query | 10000 |
|
session_log_users | Log LOGIN/LOGOUT to user.log | false |
阅读query.log
组件
每个日志条目都以标识数据开始,并包含重要信息,以帮助解决集群中的问题。下面是日志条目的布局。
[timestamp] [hostname] clxnode INSTR [query type] [sid] [db] [user] [ac] [xid] [sql] [status] [time and breakdowns] [internal counters]
Label | Description |
---|---|
timestamp | 日期和时间,包括时区。时间同步在所有节点上是非常重要的。 |
hostname | 节点ID和记录条目的主机的名称。此节点充当此事务的GTM。 |
process name | ClustrixDB进程名(clxnode). |
INSTR | 这个固定的冗余出现在每行的查询类型之前。 |
query type | 定义日志的类型: SLOW, DDL, BAD, SQLERR, ALTER CLUSTER. |
SID | 会话ID:用于对给定会话的活动进行分组。 |
db | DB name |
user | 执行查询的用户。如果使用基于语句的复制,则在排除来自主服务器的语句故障时搜索复制帐户。 |
ac | 自动提交(Y / N)指标。这对于确定查询是否在用户定义的显式事务中使用非常有用。DDL使用内部生成的显式事务,并且始终为N。 |
xid | 事务ID。在排除锁定问题时,将会话链接到XID非常有用。 |
sql | 这是完整查询的文本。省略号表示文本被截断以适应4KB的限制。 |
status | 方括号中包含的查询结果。例如,这可能是受影响的行或错误消息。 |
time | 从接收、编译和处理查询到返回输出或发生错误所花费的总时间。这在分析慢速查询时特别有用。 |
对于执行时间超过一个ms的任何查询,运行时间将进一步细分。 | |
translate | Time spent in translate_dml(). |
prefetch | Time spent building the Sierra stub. |
plan | Time spent to plan and normalize the query. |
compile | Time spent in compiling Sierra. |
execute | Time spent in invocation. |
内部计数器`
|
|
---|---|
Label
|
Description
|
reads | The number of times the database reads from a container. This may differ from the number of rows_read. |
inserts | The number of times the database inserts into a container. This includes both the number of calls and the number of rows written. |
deletes | The number of times the database deletes from a container. This includes both the number of calls and the number of rows deleted. |
updates | The number of times the database updates a container. This includes both the number of calls and the number of rows updated. |
counts | Number of calls by the query execution engine to operators BARRIER_ADD and BARRIER_FETCHADD. |
rows_read |
Total number of rows read to get all needed data for the query, including reads from indices. Essentially, the total number of rows processed by the last query. This may differ from from the number of rows_output by the query. |
forwards | Number of rows forwarded to specific nodes. |
broadcasts | Number of rows that were broadcast to all nodes. |
rows_output | Total number of rows returned or output by the last query. This is usually the same as the number of rows returned from a query but may occasionally contain counts from internal processes. |
semaphore_matches | Number of calls by the query execution engine to operator SEM_ACQUIRE. |
fragment_executions | Number of query fragments executed for the query. |
cpu_runtime_ns | This represents the aggregate total CPU time spent by all nodes to run the query. |
cpu_waits | The number of times the query waited for another query to finish due to the Fair Scheduler. |
cpu_waittime_ns | The amount of time spent waiting for CPU due to the Fair Scheduler. |
barriers | Number of barriers created for the query. This is used to synchronize message communication between nodes. |
barrier_forwards | Number of barriers created to synchronize messaging for forwarded rows. |
barrier_flushes | Number of flush operations performed on barriers. |
bm_fixes | Number of attempted page fixes by the Buffer Manager. |
bm_loads | Number of pages loaded from disk by the Buffer Manager. |
bm_waittime_ns | Nanoseconds spent blocked on Buffer Manager page fixes. |
lockman_waits | Count of the number of times that the query had to wait for a lock to be released by another query. |
lockman_waittime_ms | The total time spent waiting for other queries to release locks on needed rows. |
trxstate_waits | Number of calls to trxstate_check that had to block. |
trxstate_waittime_ms | Milliseconds spent blocked in trxstate_check. |
wal_perm_waittime_ms | Milliseconds spent waiting because the WAL is more than 75% full. |
bm_perm_waittime_ms | Milliseconds spent waiting for the Buffer Manager to grant write permission for pages. |
sigmas | The number of sigma containers used by the query. |
sigma_fallbacks | The number of sigma containers that ran out of memory and had to fall back to disk. |
row_count | The total number of rows updated, inserted or deleted by the last query. |
found_rows | The number of rows affected by the last statement, but not necessarily output by that statement . A value of 0 or -1 means no rows were found. |
insert_id | Not currently being used, always displayed as 0. |
fanout | Y/N indicator that tells if fanout was used for this query. |
attempts | Number of attempts to automatically retry the query execution after it failed. |
17. ClustrixDB 日志管理的更多相关文章
- 第17周翻译:SQL Server中的事务日志管理的阶梯:第5级:在完全恢复模式下管理日志
来源:http://www.sqlservercentral.com/articles/Stairway+Series/73785/ 作者:Tony Davis, 2012/01/27 翻译:刘琼滨. ...
- Java 日志管理最佳实践
转:http://blog.jobbole.com/51155/ 日志记录是应用程序运行中必不可少的一部分.具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源.对于开 ...
- Java日志管理方法(转载)
原文地址:http://www.cnblogs.com/leocook/p/log_java.html java开发中常见的几种日志管理方案有以下4种: 1. Commons-logging + lo ...
- android log4j日志管理的使用
以下为log4j1的日志管理,在android 6.0 一下能正常使用,时候更加高级的胃log4j2,持续跟新 android中的log4j日志文件使用需要两个包,我们不需要进行配置文件的配置,一切都 ...
- Docker日志管理--docker部署安装ELK (十一)--技术流ken
Docker logs 对于一个运行的容器,Docker 会将日志发送到 容器的 标准输出设备(STDOUT)和标准错误设备(STDERR),STDOUT 和 STDERR 实际上就是容器的控制台终端 ...
- 日志管理工具之logrotate
Logrotate配置和测试 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.logrotate是基于cron ...
- systemd的日志管理进程journald
使用Journalctl查看并操作Systemd日志 systemd拥有强大的处理与系统日志记录功能.在使用其它工具时,日志往往被分散在多套系统当中,由不同的守护进程负责处理. Journal的实现归 ...
- 2019你该掌握的开源日志管理平台ELK STACK
转载于https://www.vtlab.io/?p=217 在企业级开源日志管理平台ELK VS GRAYLOG一文中,我简单阐述了日志管理平台对技术人员的重要性,并把ELK Stack和Gra ...
- Springboot的日志管理&Springboot整合Junit测试&Springboot中AOP的使用
==============Springboot的日志管理============= springboot无需引入日志的包,springboot默认已经依赖了slf4j.logback.log4j等日 ...
随机推荐
- Metinfo3.0 /include/common.inc.php PHP代码注入
- elasticsearch 冷热数据的读写分离
步骤 一.冷热分离集群配置 比如三个机器共六个node的es集群. 每个机器上各挂载一个ssd 和 一个sata.每个机器需要启动两个es进程.每个进程对应不同类型的磁盘. 关键配置: node.ma ...
- dos2unix Linux解决编写脚本出现“%0D
## Linux解决编写脚本出现“%0D”# 安装# yum install -y dos2unix# 然后进行转化一下脚本,将其中的install_mysql.sh换成你的脚本# dos2unix ...
- Docker&Java&Mysql&Python3&Supervisor&Elasticsearch安装
目录 docker 安装java 安装mysql 安装Mysql8 安装python3 安装supervisor 安装ElasticSearch 打包images docker yum install ...
- 启用hdfs的高可用
cm-HDFS: 选择另外一个节点的做NN, 生产选node3 选择三个节点作journalNode, node2,3,4 填入journalNode的目录/dfs/jn 经过一系列步骤,如果没报错 ...
- Leetcode 35.搜索插入位置 By Python
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
- 【7.9校内test】T1挖地雷
(土气的名字万里挑一丫丫) 然后这个题是个递推,lz的考场想法: 3个的最好确定,先把3个的确定下来,然后从这个点往前推,从这个点往后推这么算吧qwq 然后码长:也是很nice,最关键的是,我都写的这 ...
- 字符集详解 ASCII码、Unicode、UTF-8 (转)
认识字符集 对于计算机而言,它仅认识两个0和1,不管是在内存中还是外部存储设备上,我们所看到的文字.图片.视频等等“数据”在计算机中都是已二进制形式存在的.不同字符对应二进制数的规则,就是字符的编码. ...
- POJ 3249 Test for Job (拓扑排序+DP)
POJ 3249 Test for Job (拓扑排序+DP) <题目链接> 题目大意: 给定一个有向图(图不一定连通),每个点都有点权(可能为负),让你求出从源点走向汇点的路径上的最大点 ...
- Solution for automatic update of Chinese word segmentation full-text index in NEO4J
Solution for automatic update of Chinese word segmentation full-text index in NEO4J 1. Sample data 2 ...