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

Learn OceanBase record 10:通用查找 SQL 请求日志的方法

SQL新手 2023-02-03
271

OceanBase 数据库支持获取目标 SQL 请求的完整日志。

为了便于查找目标 SQL 请求日志,您可提前通过设置日志打印级别来减少 SQL 模块之外的日志的打印。有关日志打印级别的相关设置请参见 设置日志打印级别

具体操作步骤如下:

  1. 登录 OBServer 所在的服务器。

  2. 执行以下命令,进入日志文件所在的目录。

    cd ~/oceanbase/log
    
  3. 根据设置的日志级别,筛选出该级别的日志。例如:查看 WARN 级别的 observer.log 日志。

    grep 'WARN' observer.log
    observer.log: [2021-07-15 14:05:11.218141] WARN  [SQL] execute_get_plan (ob_sql.cpp:3159) [119331][0][YB42AC1E87ED-0005C6866C3BAFB1-0-0] [lt=5] [dc=0] fail to get plan retry(ret=-5138)
    observer.log: [2021-07-15 14:05:11.300671] WARN  [SQL] execute_get_plan (ob_sql.cpp:3159) [119342][0][YB42AC1E87ED-0005C686685C0492-0-0] [lt=18] [dc=0] fail to get plan retry(ret=-5138)
    observer.log: [2021-07-15 14:05:11.549102] WARN  [STORAGE] set_io_prohibited (ob_storage.cpp:110) [119002][0][Y0-0000000000000000-0-0] [lt=14] [dc=0] set_io_prohibited(io_prohibited=false, prohibited=false)
    observer.log: [2021-07-15 14:05:11.549109] WARN  [STORAGE] enable_backup_white_list (ob_partition_service.cpp:14335) [119002][0][Y0-0000000000000000-0-0] [lt=6] [dc=0] backup set_io_prohibited(prohibited=false)
    
  4. 然后再根据筛选出的日志的 trace_id 获取某条 SQL 请求的完整日志。

    grep $trace_id observer.log
    

    例如:获取 trace_id 为 YB42AC1E87ED-0005C6866C3BAFB1-0-0 的日志。

    grep YB42AC1E87ED-0005C6866C3BAFB1-0-0 observer.log
    observer.log: [2021-07-15 14:05:11.2181N  [SQ41] WARL] execute_get_plan (ob_sql.cpp:3159) [119331][0][YB42AC1E87ED-0005C6866C3BAFB1-0-0] [lt=5] [dc=0] fail to get plan retry(ret=-5138)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论