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

华为GaussDB T 查看日志

墨天轮 2019-09-23
2917

查看日志

数据库运行时,某些操作在执行过程中可能会出现错误,数据库依然能够运行。但是此时数据库中的数据可能已经发生不一致的情况。建议按月检查数据库运行日志,及时发现隐患。

运行日志

集群运行时CN、DN、CM、ETCD产生的日志统称为系统日志。如果集群在运行时发生故障,可以通过这些系统日志及时定位故障发生的原因,根据日志内容制定恢复集群的方法。

  • 日志目录

    日志默认放在$GAUSSLOG中各自对应的目录下。如果用户安装数据库时修改过配置文件的目录,可以使用echo $GAUSSLOG查看日志所在目录。

    CM(包括cm_agent、cm_server)的运行日志放在“$GAUSSLOG/cm”中各自对应的目录下。

    OM集群安装卸载时产生的日志放在“$GAUSSLOG/om”目录下;om调用zengine,zsql命令输出结果记录的日志记录在$GAUSSLOG/init_db下。

    ETCD的运行日志放在“$GAUSSLOG/etcd”目录下。

    数据库的运行日志放在“$GAUSSLOG/db_log”目录下。其中,$GAUSSLOG/db_log/实例名/run”目录下记录的是;$GAUSSLOG/db_log/实例名/oper”目录下记录的是实例的操作日志,即数据库管理员使用zsql.py工具操作数据库时产生的日志;$GAUSSLOG/db_log/实例名/audit”目录下记录的是实例的审计日志;$GAUSSLOG/db_log/实例名/run”目录下记录的是实例的审计日志。

  • OM日志格式

    例如:

    [2018-06-09 11:33:06.296765][gs_install][LOG][Step1]:Parsing the configuration file.
    • 事件发生时间
    • 模块
    • 日志级别
    • 执行步骤
    • 日志内容
  • CM日志格式

    例如:

    time="2019-05-21T00:00:01+08:00" level=info msg="[CheckAndCompressLog] compress log "
    • 事件发生时间
    • 日志级别
    • 日志内容
  • ETCD日志格式

    例如:

    2019-05-14 20:22:50.469050 I | etcdserver: heartbeat = 300ms
    • 事件发生的时间
    • 日志级别
    • 日志内容
  • 数据库日志日志格式
    例如:
    2018-06-09 12:09:40.053|ZENGINE|00048|140045052368640|INFO>[SPACE] succeed to create tablespace TABLESPACE1
    • 事件发生的时间
    • 模块
    • session ID
    • 当前线程ID
    • 日志级别
    • 日志内容

DEBUG日志

  • 日志目录

    默认为$GAUSSLOG/db_log/实例名/debug/zengine.dlog

  • 日志格式
    例如:
    2018-06-09 12:13:02.857|ZENGINE|00048|140045052368640|INFO>Parse SQL successfully, SQL = select * from test_lob2
    • 事件发生的时间
    • 模块
    • session ID
    • 当前线程ID
    • 日志级别
    • 日志内容

审计日志

根据用户设置的审计级别,记录不同的审计内容。审计功能开启时会不断产生大量的审计日志,占用磁盘空间。用户可以根据磁盘空间的大小设置审计日志维护策略。

关于如何设置审计日志维护策略请参见维护审计日志。

  • 日志目录

    默认为$GAUSSLOG/db_log/实例名/audit/zengine.aud

  • 日志格式

    例如:

    UTC+8 2019-01-30 10:09:23.488 LENGTH: "117" SESSIONID:[2] "48" STMTID:[0] "" USER:[6] "SYSDBA" HOST:[0] "" ACTION:[7] "CONNECT" RETURNCODE:[1] "0" SQLTEXT:[0] ""
    • 事件发生的时间
    • 审计内容的长度
    • 审计内容

      内容关键字:[关键字内容长度]"审计内容"。

操作日志

操作日志是指数据库管理员使用zsql.py工具操作数据库时产生的日志。如果GaussDB 100发生故障,可以通过这些日志信息跟踪用户对数据库进行了哪些操作,重现故障场景。

  • 日志目录

    默认在“$GAUSSLOG/oper”目录下,如果环境变量$GAUSSLOG不存在或者变量值为空,则工具日志信息不会记录到对应的工具日志文件中,日志信息只会打印到屏幕上。

    /var/log/gaussdb

    其中$GAUSSLOG默认为“/var/log/gaussdb/用户名”。

    说明:

    如果使用om脚本部署时,则日志路径为 “/var/log/gaussdb/用户名”。

  • 日志格式

    例如:

    2019-01-30 10:21:10.894|zsql|SELECT VALUE FROM DV_PARAMETERS WHERE NAME = 'TCP_INVITED_NODES';
    • 事件发生的时间
    • zsql工具
    • 执行的命令

REDO日志

REDO日志是指如果要修改数据文件,必须是在这些修改操作已经记录到日志文件之后才能进行修改,即在描述这些变化的日志记录刷新到永久存储器之后。在系统崩溃时,可以使用REDO日志对集群进行恢复操作。REDO日志对数据库异常恢复有重要的作用,建议定期对WAL日志进行备份。

  • 日志目录

    以一个DN为例,默认在“/gaussdb/data/logn(n=1、2、3、4、5、6)”目录下。

  • 日志格式

    REDO日志的内容取决于记录事务的类型,在系统崩溃时可以利用REDO日志进行恢复。

    默认配置下,GaussDB 100每次启动时会先读取REDO日志进行恢复。

慢查询日志

慢查询日志记录了运行时间超过阈值的语句。阈值由配置参数LONGSQL_TIMEOUT指定,默认值为10,单位为秒,即运行时间超过10秒的DML语句会被记录到慢查询日志中。慢查询日志通过设置LOG_LEVEL参数开启,默认不开启。建议只在调优需要时开启慢查询日志。

  • 日志目录

    日志默认放在“/var/log/gaussdb/longsql”目录下。如果用户安装数据库时修改过配置文件的目录,可以使用echo $GAUSSLOG查看日志所在目录。

    CM(包括cm_agent、cm_server)的慢查询日志放在“/var/log/gaussdb/用户名/cm”中各自对应的目录下。

    OM集群安装卸载时产生的日志放在“/var/log/gaussdb/用户名/om”目录下。

    ETCD的慢查询日志放在“/var/log/gaussdb/用户名/etcd”目录下。

    说明:

    如果使用om脚本部署时,则日志路径为 “/var/log/gaussdb/用户名”。

告警日志

告警日志用于记录数据库发生的异常情况。当数据库发生死锁的时候,会记录一条死锁日志,包括表锁死锁、事务死锁等;数据库句柄数不足的时候,会记录一条句柄数不足的日志。

  • 日志目录

    默认为/var/log/gaussdb/alarm/目录下。如果用户安装数据库时修改过配置文件的目录,可以使用echo $GAUSSLOG查看日志所在目录。

    CM的告警日志放在“/var/log/gaussdb/用户名/alarm/CM”目录下。

    CN的告警日志放在“/var/log/gaussdb/用户名/alarm/cn_name”目录下。

    DB的告警日志放在“/var/log/gaussdb/用户名/alarm/dn_name”目录下。

    说明:

    如果使用om脚本部署时,则日志路径为 “/var/log/gaussdb/用户名”。

  • 日志格式

    例如:

    2019/02/14 11:33:56 |1078919227|AbnormalCMSProcess|CM|CM1|CM1 2019/02/14 11:34:02 |1078919177|AbnormalCoordinatorInst|CN|cn_401|cn_401 2019/02/14 11:34:09 |1078919184|AbnormalDatanodeInst|DN|DB1_1|DB1_1 2019/02/14 11:36:14 |1078919202|DatanodeFailOver|DN|DB1_1|DB1_1 2019/02/14 11:52:41 |1078919227|AbnormalCMSProcess|CM|CM1|CM1 2019/02/14 11:52:48 |1078919177|AbnormalCoordinatorInst|CN|cn_401|cn_401 2019/02/14 11:52:56 |1078919184|AbnormalDatanodeInst|DN|DB1_1|DB1_1
    • 事件发生的时间
    • 告警号
    • 告警内容
    • 组件名
    • 数据库名
    • 具体的告警描述

TRACE日志

Trace日志用于记录数据库发生故障时,相关会话的追踪信息,目前仅用于记录会话死锁或锁超时的信息。

  • 日志目录

    CN上默认目录为:/gaussdb/data/data_cn/trc/zengine_00003_xxxx.trc,其中/gaussdb/data/data_cn是CN的数据目录。

    DN上默认目录为:/gaussdb/data/data_dn/trc/zengine_00003_xxxx.trc,其中/gaussdb/data/data_dn是DN的数据目录。

    其中,00003是表示某一个会话的ID,目前死锁日志在SESSION_ID为3的会话中进行打印;后面的数字是进程号,数据库重新启动后,会重新生成一个Trace日志。

  • 日志格式

    例如:

    CN上的Trace日志:

    *** 2019-03-20 11:38:11 *** *** ACTION NAME:(DML) *** *** MODULE NAME:(ZSQL) *** *** SERVICE NAME:(GaussDB) *** *** SESSION ID:(44) *** LOCK TIMEOUT DETECTED (GS-00717) Locking timed out while the operation was waiting. The following deadlock is not an GaussDB error. It is a deadlock on DATANODE due to user error in the design of an application or from issuing incorrect ad-hoc SQL. The following information may aid in determining the deadlock: ----- Information for CURRENT COORDINATOR sessions ----- Session: sid:65 ser:943 pid:94179 user:2/omm O/S info: user:os_user, machine:[87368]/opt/gaussdb/app/zsql application name:ZSQL ----- End of information for CURRENT COORDINATOR sessions ----- ----- Information for DATANODEs which occur DEADLOCK DETECTED or LOCK TIMEOUT ----- Information on DN(id:2) sessions: lock timeout while waiting for transaction Session:sid = 50 user = omm curr_schema = omm current SQL:"update t1 set b=2 where a=1" End of information on DN(id:2) sessions. ----- End of information for DATANODEs which occur DEADLOCK DETECTED or LOCK TIMEOUT -----
    • 事件发生的时间
    • 事件发生的操作类型
    • 事件类型:锁超时或死锁
    • 事件发生的CN信息
    • 事件发生的DN信息:
      • DN的NODE ID
      • 事件发生时该DN执行的SQL语句

    DN上的Trace日志:

    **2019-03-17 11:37:32 DEADLOCK DETECTED* The following deadlock is not a GaussDB error.It is due to user error in the design of SQL.The following information may aid in determining the deadlock : ----------------------WAIT INFORMATION--------------------- [Transaction Deadlock] session id: 54, wait session: 53, wait rowid: 0-0-9624 wait sql: update d1 set c2 = 'w' where c1 = 1 session id: 53, wait session: 54, wait rowid: 0-0-9632 wait sql: update d2 set c2 = 'w' where c1 = 1 -----------------END OF WAIT INFORMATION-----------------

    以上记录的就是发生死锁,记录的Trace日志。如果wait_sql为空,说明当前会话正在进行DDL,目前暂时无法记录正在进行DDL的死锁。Trace日志包括以下信息:

    • 死锁的发生时间
    • 死锁的类型
    • 死锁环中各个会话ID
    • 死锁环中各个会话等待ID
    • 死锁环中导致死锁的各个SQL语句
    • 针对不同的死锁,记录了导致死锁的原因:
      • 事务死锁:导致死锁的行,可由row_id查看。
      • 表锁死锁:导致死锁的表,可由table_id查看。
      • ITL死锁:导致死锁的页面,可由page_id查看。

Roach日志

  • 日志目录
  • 日志格式

    例如:

    [2019-07-25 09:32:20.092027][][INFO]:Successfully stopped cluster.
    • 事件发生事件
    • 日志级别
    • 日志内容
  • 日志级别
    • ERROR:非常严重的故障,系统服务自动恢复至正常状态,需要人工介入。
    • WARN:在业务处理时触发了异常流程,但系统可恢复到正常态,下一次业务可以正常执行。往往表示有参数校验问题或者程序逻辑缺陷,功能逻辑走入异常逻辑。
    • INFO:记录系统关键信息,系统正常工作期间关键运行指标。可保存初始化配置、业务状态变化、业务流程中的核心处理记录。
    • DEBUG:作为INFO的辅助,可将各类信息记录到DEBUG中,起调试作用。生成环境禁止使用DEBUG级别。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论