二、常见故障定位案例
1.Core问题定位
1> 磁盘满故障引起的core问题
问题现象:TPCC运行时,注入磁盘满故障,数据库进程gaussdb宕掉,并产生类似如下所示的日志文件:
core-gaussdb-xxxxx-2024_01_01_01_01_01-bbox.lz4
原因分析:
数据库本身机制,在磁盘满时,Xlog日志无法进行写入,通过panic日志退出程序
处理方法:
外部监控磁盘使用状况,定时进行清理磁盘。
2> GUC参数log_directory设置不正确引起的core问题
问题现象:
数据库进程拉起后出现coredump,日志无内容。
原因分析:
GUC参数log_directory设置的路径不可读取或无访问权限,数据库在启动过程中进行校验失败,通过panic日志退出程序。
处理方法:
GUC参数log_directory设置为合法路径。
3> 开启RemoveIPC引起的core问题
问题现象:
操作系统设置中removeIPC参数设置为yes,数据库运行过程中出现宕机,并显示如下日志消息:
FATAL:semctl(1463124609,3,SETVAL,0) failed:Invalid argument
原因分析:
当RemoveIPC参数设置为yes时,操作系统会在对应用户退出时删除IPC资源(共享内存和信号量),
从而使得openGauss服务器使用的IPC资源被清理,引发数据库宕机。
处理方法:
重设RemoveIPC参数为no。
提到重设,就是重新设置,重新设定的意思。这里给大家举一个模拟场景中的肖荏盖的反向小故事。
对于初学者入门的学习,一些理论不容易理解或记住,所以本节课程【创新】采用了【正、反对比联想记忆】的方法,
引入模拟场景中的肖荏盖的小故事。(模拟场景为虚构演绎,仅供教学,不要对号入座,懂不懂?明白吗?)
【数据库的功能都是正向的,模拟场景中的肖荏盖做的事情都是反向的。】
肖荏盖