本文内容来自 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, etc
2022-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 database
2022-06-17 19:29:18.570 21320 [INFO] [DB] database mount
2022-06-17 19:29:18.570 21331 [INFO] [MONITOR] patrol process start
2022-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 317965525569531904
2022-06-17 19:29:18.602 21320 [INFO] [RCY] stop to replay, point 0-1-4650-1290
2022-06-17 19:29:18.603 21320 [INFO] [RCY] replay end, rcy replay point asn 1, block id 4650, lfn 1290. current scn 317965525569531904
2022-06-17 19:29:18.603 21320 [INFO] [RCY] flush point 0-1-4650-1290, receive point 0-1-4650-1290
2022-06-17 19:29:18.700 21320 [INFO] [DB] database open
2022-06-17 19:29:18.701 21320 [INFO] [DATABASE] database start up,phase 2
2022-06-17 19:29:18.702 21338 [INFO] [MMS PRELOAD] start to preload memory mapped tablespaces
2022-06-17 19:29:18.702 21342 [INFO] pre-process TABXFMR$ successful
2022-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: 2
2022-06-17 19:28:47.043 20747 [INFO] [HA] stop redo sender
2022-06-17 19:28:47.043 20747 [INFO] [HA] stop redo receiver
2022-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 canceled
2022-06-17 19:33:58.961 21916 [DEBUG][errno=02094]: promise catch unhandled error: current session has been killed or canceled
2022-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 resource
2022-06-17 20:26:13.475 28790 [DEBUG][MMON][col_executor::executor]Local execute, end column query context
2022-06-17 20:26:13.475 28790 [DEBUG][MMON][col_executor::executor]Local execute, prepare column query context
2022-06-17 20:26:13.475 28790 [DEBUG][MMON][anchor::plsql::statement]Statement is cloned, check it is safe
2022-06-17 20:26:13.475 28790 [DEBUG][MMON][anchor::plsql::statement]Statement is cloned, check it is safe
2022-06-17 20:26:13.475 28790 [DEBUG][MMON][anchor::plsql::statement]Statement is cloned, check it is safe
2022-06-17 20:26:13.475 28790 [DEBUG][MMON][col_executor::executor]Local execute, end local resource
2022-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;
复制代码
评论