写点什么

YashanDB 运行日志管理

作者:YashanDB
  • 2025-03-19
    广东
  • 本文字数:2545 字

    阅读完需:约 8 分钟

本文内容来自 YashanDB 官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86/%E6%97%A5%E5%BF%97%E7%AE%A1%E7%90%86/%E8%BF%90%E8%A1%8C%E6%97%A5%E5%BF%97%E7%AE%A1%E7%90%86.html


运行日志通过日志级别控制记录开关和记录策略,级别为 OFF 时不记录运行日志。


通过设置 RUN_LOG_FILE_COUNT 参数修改运行日志的保留个数,当达到该参数设置的值(默认 10)时,系统会自动删除时间靠前的日志。


日志文件保留个数修改指令:


ALTER SYSTEM SET RUN_LOG_FILE_COUNT=<保留个数> SCOPE=SPFILE;
复制代码


该参数需重启数据库才能生效。


可进入日志文件存放位置观察文件的保留数量:


$ ls -l $YASDB_HOME/log/run
复制代码


设置日志文件最大大小



通过设置 RUN_LOG_FILE_SIZE 参数修改运行日志的最大大小,当达到该参数设置的值(默认 20M)时,该日志文件会自动归档。


日志文件最大大小修改指令:


ALTER SYSTEM SET RUN_LOG_FILE_SIZE=<日志文件大小> SCOPE=SPFILE;
复制代码


该参数需重启数据库才能生效。

设置运行日志的存放路径



通过设置 RUN_LOG_FILE_PATH 参数修改运行日志的存放路径。


运行日志的存放路径修改指令:


ALTER SYSTEM SET RUN_LOG_FILE_PATH='<path>' SCOPE=SPFILE;
复制代码


该参数需重启数据库才能生效。


Warn

为运行日志设置的新路径必须已存在且对其拥有写权限,否则数据库将启动失败。

运行日志级别管理



运行日志级别的排序为:


ERROR < WARN < INFO < DEBUG < TRACE < ALL


从左到右,日志等级依次增高,高日志级别包含低日志级别。


查看当前日志级别的指令如下:


show parameter RUN_LOG_LEVEL;
复制代码


# ERROR 级别

数据库产生了可处理的关键错误时,将输出 ERROR 日志。这些错误一般无法返回给客户端,例如后台线程的产生的错误。


将日志级别设置为 ERROR 的指令如下:


ALTER SYSTEM SET RUN_LOG_LEVEL=ERROR;
复制代码


当 YashanDB 丢失表空间数据文件时,run.log 打印情况如下:(本文以单机部署为例,具体日志以实际为准)


2022-06-17 19:20:56.981 20098 [ERROR] [MONITOR]/data/yashan/yasdb_data/db-1-1/dbfiles/temp metadata changed, for example, permissions, timestamps, extended attributes, and user/group ID, etc2022-06-17 19:21:55.839 20308 [ERROR][errno=00313]: open file /data/yashan/yasdb_data/db-1-1/dbfiles/temp failed, errno 2, error message "No such file or directory"
复制代码


# INFO 级别

YashanDB 默认使用的日志级别为 INFO。


INFO 级别记录数据库正常运行中发生的关键事件,主要包括:


  • 数据库状态变更:例如启动、关闭、升主降备。

  • 数据库关键资源的变更:例如表空间、用户增加删除等。

  • 数据库资源变更:例如线程的启动和停止等。

  • 数据库关键活动:例如重启恢复、残留事务等。

  • 数据库参数变化:修改系统配置。


将日志级别设置为 INFO 的指令如下:


ALTER SYSTEM SET RUN_LOG_LEVEL=INFO;
复制代码


示例



2022-06-17 19:29:18.341 21320 [INFO] [DB] start database2022-06-17 19:29:18.570 21320 [INFO] [DB] database mount2022-06-17 19:29:18.570 21331 [INFO] [MONITOR] patrol process start2022-06-17 19:29:18.599 21320 [INFO] [RCY] replay start, rcy begin point asn 1, block id 4650, lfn 1290. rcy least lfn 1289. flush point asn 1, block id 4650, lfn 1290. scn 3179655255695319042022-06-17 19:29:18.602 21320 [INFO] [RCY] stop to replay, point 0-1-4650-12902022-06-17 19:29:18.603 21320 [INFO] [RCY] replay end, rcy replay point asn 1, block id 4650, lfn 1290. current scn 3179655255695319042022-06-17 19:29:18.603 21320 [INFO] [RCY] flush point 0-1-4650-1290, receive point 0-1-4650-12902022-06-17 19:29:18.700 21320 [INFO] [DB] database open2022-06-17 19:29:18.701 21320 [INFO] [DATABASE] database start up,phase 22022-06-17 19:29:18.702 21338 [INFO] [MMS PRELOAD] start to preload memory mapped tablespaces2022-06-17 19:29:18.702 21342 [INFO] pre-process TABXFMR$ successful2022-06-17 19:29:18.704 21338 [INFO] [MMS PRELOAD] end to preload memory mapped tablespaces

2022-06-17 19:28:45.612 20747 [INFO] [DATABASE] shutdown database,mode: 22022-06-17 19:28:47.043 20747 [INFO] [HA] stop redo sender2022-06-17 19:28:47.043 20747 [INFO] [HA] stop redo receiver2022-06-17 19:28:47.088 20763 [INFO] [MONITOR] patrol process exited
复制代码


# DEBUG 级别

DEBUG 级别用于打印追溯问题时可能用到的关键信息。


将日志级别设置为 DEBUG 的指令如下:


ALTER SYSTEM SET RUN_LOG_LEVEL=DEBUG;
复制代码


示例



2022-06-17 19:33:58.961 21916 [DEBUG][errno=02094]: current session has been killed or canceled2022-06-17 19:33:58.961 21916 [DEBUG][errno=02094]: promise catch unhandled error: current session has been killed or canceled2022-06-17 19:34:15.683 21984 [DEBUG][yasdb][col_executor::executor]remove temp dir/data/yashan/yasdb_data/tmp

2022-06-17 20:26:13.475 28790 [DEBUG][MMON][col_executor::executor]Local execute, end local resource2022-06-17 20:26:13.475 28790 [DEBUG][MMON][col_executor::executor]Local execute, end column query context2022-06-17 20:26:13.475 28790 [DEBUG][MMON][col_executor::executor]Local execute, prepare column query context2022-06-17 20:26:13.475 28790 [DEBUG][MMON][anchor::plsql::statement]Statement is cloned, check it is safe2022-06-17 20:26:13.475 28790 [DEBUG][MMON][anchor::plsql::statement]Statement is cloned, check it is safe2022-06-17 20:26:13.475 28790 [DEBUG][MMON][anchor::plsql::statement]Statement is cloned, check it is safe2022-06-17 20:26:13.475 28790 [DEBUG][MMON][col_executor::executor]Local execute, end local resource2022-06-17 20:26:13.475 28790 [DEBUG][MMON][col_executor::executor]Local execute, end column query context
复制代码


# ALL 级别

ALL 级别记录所有日志信息,是最高级别的日志级别模式。


将日志级别设置为 ALL 的指令如下:


ALTER SYSTEM SET RUN_LOG_LEVEL=ALL;
复制代码


发布于: 刚刚阅读数: 5
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB运行日志管理_数据库_YashanDB_InfoQ写作社区