数据库故障定位手段
数据库发生故障时,需要及时收集日志、视图、错误码和黑匣子(或core文件)的信息来分析问题产生的原因。
查看错误码信息
GaussDB 100提供了丰富的错误码显示机制。并期望通过不断丰富每条错误码的可能原因和处理办法,协助用户在遇到问题时可以快速和顺利地定位和解决问题。
错误码详细信息请参见《GaussDB 100 V300R001C00 错误码参考》。
通过日志定位故障
GaussDB 100在运行过程中,会产生大量用于数据库日常维护的运行、审计、DEBUG、告警等日志。在数据库发生故障时,可以使用这些日志进行问题定位和数据库恢复的操作。
具体日志记录内容,请参见《GaussDB 100 V300R001C00 用户指南(单机)》中“数据库系统管理 > > 管理日志 > 查看日志”章节。
- 运行日志
打印GaussDB 100数据库运行信息,如果数据库运行故障,请查看zengine.rlog。
日志目录:默认为“$GSDB_DATA/log/run/zengine.rlog”。
- DEBUG日志
打印GaussDB 100数据库运行DEBUG级别信息,如果数据运行故障,且开启DEBUG级别日志,请查看zengine.dlog。
日志目录:默认为“$GSDB_DATA/log/debug/zengine.dlog”。
- 告警日志
打印GaussDB 100数据库运行告警信息。如需了解告警信息,请查看zenith_alarm.log。
日志目录:“$GSDB_DATA/log/zenith_alarm.log”。
- zctl日志
打印使用zctl.py运维操作数据库的信息,zctl是日志为zctl-yyyy-mm-dd_xxx.log。如需获取GaussDB 100完整的运维信息,请查看zctl-yyyy-mm-dd_xxx.log和数据库启动输出信息zenithstatus.log。
日志目录:“$GSDB_DATA/log/zctl-yyyy-mm-dd_xxx.log”。
- 启动日志
记录数据库启动输出信息zenithstatus.log。如需获取GaussDB 100完整的运维信息,请查看zctl-yyyy-mm-dd_xxx.log和数据库启动输出信息zenithstatus.log。
日志目录:“$GSDB_DATA/log/zenithstatus.log”。
- TRACE日志
记录数据库会话死锁的信息。如需查看会话死锁信息,请查看zengine_00003_xxxxxx.trc。
日志目录:“$GSDB_DATA/trc/zengine_00003_xxxxxx.trc”。
通过视图查看信息
GaussDB 100提供了丰富的视图,在定位故障时,可以根据实际情况查看相关视图。如,SQL长时间无响应时,可以查看视图DV_LOCKED_OBJECTS。
通过Core文件定位故障
GaussDB 100的相关进程在运行过程中可能会因为各种意外情况导致数据库崩溃(Coredump),而崩溃时产生的core文件对于迅速定位程序崩溃的原因及位置非常重要。如果进程运行时出现Coredump现象,建议立即开启core文件便于分析、定位故障。
操作系统自带Core dump机制。开启后,系统中所有出现Core dump问题时都会生成core文件,对操作系统带来性能和磁盘占用的影响。为了定位GaussDB 100 Coredump问题时不影响操作系统中其他程序,GaussDB 100支持操作系统不配置core机制时仍可产生core文件。
查看core文件位置命令如下所示:
cat /proc/sys/kernel/core_pattern
文章来源:https://bbs.huaweicloud.com/forum/thread-28109-1-1.html




