#告警日志管理
告警日志不设开关控制,恒为打开状态,即一直保持记录文件。记录文件大小没有设置上限,当alert.log文件过大时需要手动清理告警日志。
本文将介绍YashanDB中常见的告警示例。
# 表空间满
space full:当表空间已满且申请不到页面时,记录告警日志。
当某个表空间已全部使用完时,告警日志将产生报错信息。
示例
//session 24在2022-06-20 00:20:46发现表空间TBS_TPCC空间使用率已达到100%,触发SpaceFull告警事件
//53表示表空间的space id,0表示该告警未消除。tablespace TBS_TPCC is full为提示信息。
2022-06-20 00:20:46.514|22|SpaceFull|53|0||tablespace TBS_TPCC is full
2022-06-20 00:20:46.520|24|SpaceFull|53|0||tablespace TBS_TPCC is full
# 连接数满
session exhausted:当连接数满时,上报连接数满告警。当可用连接数达到30%及以上,消除告警。
当前会话连接数超过MAX_SESSIONS参数设置的最大值时,运行日志将产生报错信息。
示例
2022-06-19 22:45:46.542 5367 [ERROR] alloc session failed, error code:6013, error message: too many sql handlers
2022-06-19 22:45:46.554 5367 [ERROR] alloc session failed, error code:6013, error message: too many sql handlers
2022-06-19 22:45:46.554 5367 [ERROR] alloc session failed, error code:6013, error message: too many sql handlers
2022-06-19 22:45:46.554 5367 [ERROR] alloc session failed, error code:6013, error message: too many sql handlers
2022-06-19 22:45:46.554 5367 [ERROR] alloc session failed, error code:6013, error message: too many sql handlers
2022-06-19 22:45:46.554 5367 [ERROR] alloc session failed, error code:6013, error message: too many sql handlers
此时客户端无法连接数据库,并提示:
YAS-00406 connection is closed
YASQL-00007 invalid username/password; logon denied
# 主备连接断开
standby disconnect:当主库发现备库断连,记录告警日志。当主库发现备库重新连接上,记录消除告警的日志。
主库与备库断连时,alert.log打印情况如下:
//2021-10-29 19:41:05.841,在session 18中发生当前HA架构中主库发现备库断开连接,主库向备库传输日志失败,触发了StandbyDisconnect告警事件。
//1为备库ID,0表示该告警产生未消除。redo sender failed to connect为提示信息。
2021-10-29 19:41:05.841|18|StandbyDisconnect|1|0||redo sender failed to connect with standby
主库与备库断连修复时,alert.log打印情况如下:
//在2021-10-29 19:41:23.877主库和备库重新连接,断连告警修复。
//第一个1为备库ID,第二个1表示该告警产生已消除。
2021-10-29 19:41:23.877|18|StandbyDisconnect|1|1|
# 发生死锁
dead lock:当用户操作不当导致出现数据库出现死锁情况,存储引擎能够检测出死锁问题,通过中止构成死锁环中的某个会话的等待,从而解除死锁状态。
当以下3种死锁发生时候,数据库会选择死锁环中的一个session返回error,生成对应的死锁trace log,并记录告警日志,告警日志中指示trace log文件路径:
事务死锁:事务修改相同的数据产生并发等待,可能导致死锁。
Xslot死锁:页面内事务槽位(Xslot)资源不足时,会产生事务等待,可能导致死锁。
表锁死锁:事务之间对表加共享锁与排他锁时,会产生事务等待,可能导致死锁。
例如,当发生事务相互更新导致死锁时,alert.log打印情况为:
//session 19发现了事务死锁,触发了DeadLock告警事件。
//21为该死锁的ID,0表示该告警的状态为未消除,lockType表示产生锁的类型,found xact dead lock为提示信息。
2022-06-23 18:44:17.191|19|DeadLock|21|0|lockType=2|found xact dead lock,more info in xxx.trc(xxx.trc为具体的死锁trace log路径)