本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%...
告警日志不设开关控制,恒为打开状态,即一直保持记录文件。记录文件大小没有设置上限,当alert.log文件过大时需要手动清理告警日志。
本文将介绍YashanDB中常见的告警示例。
表空间满
space 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|18|StandbyDisconnect|1|0||redo sender failed to connect with standby
主库与备库断连修复时,alert.log打印情况如下:
2021-10-29 19:41:23.877|18|StandbyDisconnect|1|1|
发生死锁
dead lock:当用户操作不当导致出现数据库出现死锁情况,存储引擎能够检测出死锁问题,通过中止构成死锁环中的某个会话的等待,从而解除死锁状态。
当以下3种死锁发生时候,数据库会选择死锁环中的一个session返回error,生成对应的死锁trace log,并记录告警日志,告警日志中指示trace log文件路径:
- 事务死锁:事务修改相同的数据产生并发等待,可能导致死锁。
- Xslot死锁:页面内事务槽位(Xslot)资源不足时,会产生事务等待,可能导致死锁。
- 表锁死锁:事务之间对表加共享锁与排他锁时,会产生事务等待,可能导致死锁。
例如,当发生事务相互更新导致死锁时,alert.log打印情况为:
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路径)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。