文档首页/ 云数据库 GaussDB/ 用户指南/ 日志与审计/ 下载GaussDB错误日志和慢日志
更新时间:2024-11-11 GMT+08:00

下载GaussDB错误日志和慢日志

GaussDB提供慢日志和错误日志的下载功能,慢日志可以帮助您定位SQL语句执行慢的问题,错误日志可查看集群的日志信息。

注意事项

  • 实例CN与DN节点没有异常。
  • 底层网络正常。

慢日志

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB,进入云数据库 GaussDB信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例的名称,进入基本信息页面。
  5. 单击左侧导航栏中的“日志分析”,进入“日志分析”页面。
  6. 在日志分析页面,系统自动查询最近五分钟内是否存在慢日志任务,如果不存在则生成下载慢日志任务。单击“慢日志”,选中状态为“准备完成”的日志,单击操作列的“下载”,即可下载慢日志文件。

    下载完成后,可在本地进行分析。

    图1 慢日志下载

    慢日志文件采集最近12小时内的日志。

    慢日志包含的字段如表1所示。
    表1 慢日志字段

    字段名称

    类型

    描述

    message_version

    String

    日志格式版本,当前为固定值V1。

    db_name

    name

    数据库名称。

    schema_name

    name

    schema名称。

    origin_node

    integer

    节点名称。

    user_name

    name

    用户名。

    application_name

    text

    用户发起的请求的应用程序名称。

    client_addr

    text

    用户发起的请求的客户端地址。

    client_port

    integer

    用户发起的请求的客户端端口。

    unique_query_id

    bigint

    归一化SQL ID。

    debug_query_id

    bigint

    唯一SQL ID。部分语句存在不唯一的情况,如Parse报文、DCL和TCL等语句的debug_query_id值为0。

    query

    text

    归一化SQL(仅在CN上有值),track_stmt_parameter参数开启时,显示完整SQL。

    start_time

    timestamp with time zone

    语句启动的时间。

    finish_time

    timestamp with time zone

    语句结束的时间。

    slow_sql_threshold

    bigint

    语句执行时慢SQL的标准。

    transaction_id

    bigint

    事务ID。

    thread_id

    bigint

    执行线程ID。

    session_id

    bigint

    用户session id。

    n_soft_parse

    bigint

    软解析次数, n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。

    n_hard_parse

    bigint

    硬解析次数, n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。

    query_plan

    text

    语句执行计划。

    n_returned_rows

    bigint

    SELECT返回的结果集行数。

    n_tuples_fetched

    bigint

    随机扫描行。

    n_tuples_returned

    bigint

    顺序扫描行。

    n_tuples_inserted

    bigint

    插入行。

    n_tuples_updated

    bigint

    更新行。

    n_tuples_deleted

    bigint

    删除行。

    n_blocks_fetched

    bigint

    buffer的块访问次数。

    n_blocks_hit

    bigint

    buffer的块命中次数。

    db_time

    bigint

    有效的DB时间花费,多线程将累加(单位:微秒)。

    cpu_time

    bigint

    CPU时间(单位:微秒)。

    execution_time

    bigint

    执行器内执行时间(单位:微秒)。

    parse_time

    bigint

    SQL解析时间(单位:微秒)。

    plan_time

    bigint

    SQL生成计划时间(单位:微秒)。

    rewrite_time

    bigint

    SQL重写时间(单位:微秒)。

    pl_execution_time

    bigint

    plpgsql上的执行时间(单位:微秒)。

    pl_compilation_time

    bigint

    plpgsql上的编译时间(单位:微秒)。

    data_io_time

    bigint

    IO上的时间花费(单位:微秒)。

    net_send_info

    text

    通过物理连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。在分布式数据库中,CN与CN、CN与客户端以及CN与DN之间都是通过物理连接进行通信,通过该字段可以分析SQL在分布式系统下的网络开销。例如:{"time":xxx, "n_calls":xxx, "size":xxx}。

    net_recv_info

    text

    通过物理连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。在分布式数据库中,CN与CN、CN与客户端以及CN与DN之间都是通过物理连接进行通信,通过该字段可以分析SQL在分布式系统下的网络开销。例如:{"time":xxx, "n_calls":xxx, "size":xxx}。

    net_stream_send_info

    text

    通过逻辑连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。在分布式数据库中,不同分片的DN之间通过逻辑连接进行通信,通过该字段可以分析SQL在分布式系统下的网络开销。例如:{"time":xxx, "n_calls":xxx, "size":xxx}。

    net_stream_recv_info

    text

    通过逻辑连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。在分布式数据库中,不同分片的DN之间通过逻辑连接进行通信,通过该字段可以分析SQL在分布式系统下的网络开销。例如:{"time":xxx, "n_calls":xxx, "size":xxx}。

    lock_count

    bigint

    加锁次数。

    lock_time

    bigint

    加锁耗时。

    lock_wait_count

    bigint

    加锁等待次数。

    lock_wait_time

    bigint

    加锁等待耗时。

    lock_max_count

    bigint

    最大持锁数量。

    lwlock_count

    bigint

    轻量级加锁次数(预留)。

    lwlock_wait_count

    bigint

    轻量级等锁次数。

    lwlock_time

    bigint

    轻量级加锁时间(预留)。

    details

    bytea

    等待事件和语句锁事件的列表。

    记录级别的值>=L0时,开始记录等待事件的列表。显示当前节点wait event的相关统计信息。关键的事件信息请参见表 等待状态列表表 轻量级锁等待事件列表表 I/O等待事件列表表 事务锁等待事件列表,或从视图wait_event_info中查看系统中所有的事件列表。关于每种事务锁对业务的影响程度,请参考LOCK语法小节的详细描述。

    记录级别的值是L2时,开始记录语句锁事件的列表。该列表按时间顺序记录事件。记录的数量受参数track_stmt_details_size的影响。

    该字段为二进制,需要借助解析函数pg_catalog.statement_detail_decode读取,见(表 statement_detail_decode参数说明)。

    事件包括:

    • 加锁开始
    • 加锁结束
    • 等锁开始
    • 等锁结束
    • 放锁开始
    • 放锁结束
    • 轻量级等锁开始
    • 轻量级等锁结束

    is_slow_sql

    boolean

    该SQL是否为Slow SQL。

    • t(true):表示是。
    • f(false):表示不是。

    lwlock_wait_time

    bigint

    轻量级等锁时间。

错误日志

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB,进入云数据库 GaussDB信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例的名称,进入基本信息页面。
  5. 单击左侧导航栏中的“日志分析”,进入“日志分析”页面。
  6. 在日志分析页面,单击“错误日志”,开启“错误日志采集”,单击状态为“准备完成”的操作列的“下载”,即可下载错误日志文件。下载完成后,可在本地进行分析。

    错误日志在gs_log目录下,日志的命名规则为gaussdb-创建时间.log。每一行日志内容的默认格式为日期+时间+节点名称+用户名称+数据库名称+IP地址+会话ID+事务ID+应用程序名称+日志级别+日志内容。
    表2 错误日志参数

    字段名称

    字段含义

    日期

    日志生成的日期,格式:yyyy-mm-dd。

    时间

    日志生成的时间,格式:hh:mm:ss.ms。

    节点名称

    表示指定错误上报的节点。

    用户名称

    当前触发生成日志的数据库用户的用户名。

    数据库名称

    当前触发生成日志的数据库的数据库名。

    IP地址

    当前触发生成日志的客户端的IP地址。

    线程ID

    线程ID。

    会话ID

    当前触发生成日志的session的session id。

    事务ID

    事务ID(0表示没有分配事务ID)。

    线程名

    线程名。

    查询ID

    query_id,用户发起query时,后台记录此query的id。

    模块名称

    模块名称。

    日志级别

    日志的级别,不同级别表示的严重程度不一样,有FATAL,ERROR,LOG等级别。

    日志内容

    日志内容。