openGauss3.1.0 版本的gs_stack功能解密
不管是测试还是研发,工作中总有遇到各种各样的问题。比如,你有没有遇到过在数据库中执行某个SQL,却一直不返回结果,这时候的你是不是非常想看一下代码执行到了哪个函数?或者是数据库不响应连接,需要查看数据库当前线程的执行情况呢? 在实际生产中,获取生产系统进程堆栈比较麻烦,需要在服务端后台执行gstack命令。本期主要介绍内置gs_stack工具,可以通过函数调用的方式输出指定线程的堆栈,用于解决现网环境缺少gs_stack工具,无法获取调用栈的问题。 文章目录 内置gs_stack工具介绍 1、在客户端工具执行gs_stack([tid])函数 2、在服务器端使用gs_ctl stack –D data_dir命令 总结 内置gs_stack工具介绍 在openGauss的很多客户场景中,gdb、gstack等工具都是无法使用的,当系统出现hang、慢等问题时,无法通过调用栈进行进一步的定位。还有一种情况就是登录客户数据库的流程非常繁杂,需要经过层层审批,这时通过gsql等工具连接数据库就相对容易一些。针对以上痛点,通过复用openGauss未使用操作系统信号,并在信号处理函数中...
