本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%...

日志管理章节所述范围为运维相关的日志管理,不包括与数据相关的redo/归档日志,对于redo/归档日志的管理将在文件管理章节描述。

日志分类


YashanDB的运维类日志分类如下:

  • 运行日志run log:运行日志记录了数据库各服务运行产生的轨迹信息、调试信息、状态变迁、未产生影响的潜在问题和直接的错误信息。
  • 告警日志alert log:当数据库发生死锁、表空间满、网络断连、坏块等错误时,会处于“带病运行”的状态,运维人员应该及时知道这些信息并作出处理。通过数据库在告警日志中发出告警(上报告警事件),运维人员定时检查告警日志,可以防患于未然,时刻了解和维护系统的运行状况。YashanDB包含的所有告警事件信息见参考手册告警事件
  • 监听日志listen log:当数据库遭遇连接风暴等问题时,需要查看连接来源定位原因,监听日志会向运维人员提供连接状态和频率等信息。
  • 慢日志slow log:慢日志全称为慢查询日志(Slow Query Log),主要用于记录在数据库中执行时间超过指定时间的SQL语句,可选择输出到日志文件或系统表。通过慢查询日志,可以查找出哪些语句的执行效率低,以便进行优化。
  • 代理程序日志yex\_server.log:代理程序日志记录了外置UDF代理程序服务运行产生的轨迹信息、调试信息、状态变迁、未产生影响的潜在问题和直接的错误信息。

下表列示了上述日志对应的文件信息:

日志文件日志内容说明
$YASDB\_HOME/log/集群名/node-nodeid/run/run.log运行日志1.安装时默认按此路径及名称创建

2.可通过RUN\_LOG\_FILE\_PATH参数修改文件路径,若路径不存在则会自动创建,需保证用户对该路径拥有相应权限
3.文件名称不可修改 |
| $YASDB\_DATA/log/alert/alert.log | 告警日志 | 1.安装时默认按此路径及名称创建
2.文件路径不可修改
3.文件名称不可修改 |
| $YASDB\_DATA/log/listener/listener.log | 监听日志 | 1.安装时默认按此路径及名称创建
2.文件路径不可修改
3.文件名称不可修改 |
| $YASDB\_HOME/log/集群名/node-nodeid/slow/slow.log | 慢查询日志 | 1.安装时默认按此路径及名称创建
2.可通过SLOW\_LOG\_FILE\_PATH参数修改文件路径,若路径不存在则会自动创建,需保证用户对该路径拥有相应权限
3.可通过SLOW\_LOG\_FILE\_NAME参数修改文件名称
4.输出方式为FILE时记入此文件,为TABLE时记入系统表 |
| $YASDB\_DATA/log/external/server/yex\_server.log | 代理程序日志 | 1.安装时默认按此路径及名称创建
2.文件路径不可修改
3.文件名称不可修改 |

日志归档


下表列示了YashanDB支持日志归档的情况:

日志类型支持情况
运行日志支持
告警日志不支持
监听日志不支持
慢日志不支持
代理程序日志支持

Caution

对于不支持归档的日志,数据库管理员应该对其设置定期清理策略,避免占满磁盘空间。

运行日志归档

当运行日志文件达到RUN\_LOG\_FILE\_SIZE(默认为20M)后,将进行归档并创建一个新的日志文件,归档的日志文件命名为原日志文件名+时间后缀,如:run/run-20211213151402.log。

代理程序日志归档

当代理程序日志文件达到16M后,将进行归档并创建一个新的日志文件,归档的日志文件命名为原日志文件名+时间后缀,如:external/server/yex\_server20211213151402.log。

日志格式


运行日志文件内容格式

格式为:日期+时间+[级别]+[模块]+日志信息。如下:

2021-12-13 14:51:23.342 [INFO] [TABLESPACE] succeed to create tablespace SYSTEM
2021-12-13 14:53:18.559 [WARN] [CKPT] checkpoint not complete
2021-12-13 14:53:22.483 [DEBUG] [HA] send redo from point 0-5-12840-18360, size 278528, standby 1, next send point 0-5-12908-18373

Copied!

日志级别

YashanDB运行日志支持不同级别的日志管理,并根据配置打印不同级别的日志:

级别描述
OFF关闭日志
FATAL致命错误产生的日志
ERROR一般错误产生的日志
WARN告警类错误产生的日志
INFO正常运行日志(默认日志级别)
DEBUG调试日志级别
TRACE追踪日志
ALL所有日志

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

告警日志文件内容格式

格式为:TimeStamp | Session ID | Event Name | Object | Action | content |Event Escription。各字段说明见下表:

字段类型说明
TimeStamptimestamp产生告警的时间
Session IDuint16产生告警的会话ID
Event Nametext告警类型名称
Objectuint16产生告警的对象ID

* Object和Event Name一起构成告警的唯一标识符
* 有些告警并不需要Object信息,则该值为0 |
| Action | int | 告警状态:
* 0:产生告警
* 1:告警消除 |
| Content | text | 对该告警的其他附带信息 |
| Description | text | 供用户进一步了解告警的详细信息 |

监听日志文件内容格式

日志格式示例如下:

2023-08-02 09:47:26.143 protocal = TCP  ip = fc00:7::126 port = 14526 user = SYS status = SUCCESS
2023-08-02 09:47:26.151 protocal = TCP  ip = fc00:7::126 port = 14528 user = SYS status = SUCCESS
2023-08-02 09:50:42.005 protocal = TCP  ip = fc00:7::126 port = 14650 user = SYS status = SUCCESS
2023-08-02 09:51:34.354 protocal = TCP  ip = fc00:7::126 port = 44058 user = REGRESS status = ERROR
2023-08-02 09:54:32.526 protocal = TCP  ip = fc00:7::126 port = 14656 user = SYS status = SUCCESS
2023-08-02 09:56:32.126 protocal = IPC  user = SYS status = SUCCESS

Copied!

格式为:

TimeStamp | Protocal | Ip | Port | User | Status

字段说明
TimeStamp产生监听记录的时间
Protocal链路类型

* TCP:TCP连接
* IPC: IPC连接 |
| Ip | 客户端IP |
| Port | 客户端PORT |
| User | 连接用户 |
| Status | 连接状态
* SUCCESS:连接成功
* ERROR:连接失败 |

慢日志内容格式

慢日志文件格式

示例如下:

# TIME: 2022-11-18 20:51:30.374
# USER_HOST: SYS@127.0.0.1
# DB_NAME: test_base1
# COST_EXECUTE_TIME: 0.000119
# COST_OPTIMIZE_TIME: 0.000040
# ROWS_SENT: 1
# SQL_ID: 3jd5aq4g9t7gf
SQL: select * from v$parameter where name = 'SLOW_LOG_SQL_MAX_LEN'

Copied!

格式为:

字段说明
TIME打印该条慢SQL信息的时间
USER\_HOST执行SQL时的连接信息
DB\_NAME使用的数据库名称
COST\_EXECUTE\_TIMESQL执行花费的时间,单位为秒
COST\_OPTIMIZE\_TIMESQL优化计划阶段花费的时间,单位为秒
ROWS\_SENT返回的行数
SQL\_IDSQL ID

慢日志系统表格式

慢日志系统表名为SLOW\_LOG$,表结构定义如下:

列名说明
DATABASE\_NAME数据库名称
USER\_NAME用户名
START\_TIME日志记录时的时间,非执行开始时间
USER\_HOST连接IP
QUERY\_TIME执行时间
ROWS\_SENT查询返回的行数
SQL\_IDSQL的ID值
SQL\_TEXTSQL语句,超过2000会截断

YashanDB
1 声望0 粉丝

崖山数据库系统YashanDB是深圳计算科学研究院自主设计研发的新型数据库管理系统,融入原创的有界计算、近似计算、并行可扩展和跨模融合计算理论,可满足金融、政企、能源等关键行业对高性能、高并发及高安全性的...