关于 YMatrix
部署数据库
使用数据库
管理集群
最佳实践
高级功能
高级查询
联邦查询
Grafana 监控
备份恢复
灾难恢复
管理手册
性能调优
故障诊断
工具指南
系统配置参数
SQL 参考
在生产环境中,偶尔会因为程序 Bug 等其他未知原因而导致程序出 core。程序出 core 不仅仅会导致查询执行失败,更严重的可能会出现集群故障,所以生成的 core 文件是非常重要的现场信息,需要提供给开发人员跟踪追查。
packcore 工具用来为生成的 core 文件进行打包,以便开发人员调试跟踪。
packcore 是随 YMatrix 一同发布的 Python 工具, packcore 工具的位置在:
$GPHOME/sbin/packcore
$GPHOME/sbin 并不在环境变量中,所以需要通过绝对路径使用。
使用方法:
$GPHOME/sbin/packcore -b $GPHOME/bin/postgres postgres.core.4_1635732782.17213
其中:
-b $GPHOME/bin/postgres 指定可执行文件路径,因为工作进程都派生自 postgres master 进程postgres.core.4_1635732782.17213 是生成的 core 文件执行命令后,会在当前目录生成和 core 文件名相同的 .tgz 文件,将该文件提供给开发人员即可。里面包括了 core 文件和现场环境信息
使用 packcore 工具进行 core 文件打包的前提是需要操作系统生成 core 文件。
生成 core 文件需要修改如下配置:
设置 coredump 文件大小无限制:
ulimit -c unlimited
# 持久化方式
echo "ulimit -c unlimited" >> /etc/profile
vi /etc/sysctl.conf
然后增加 kernel.core_pattern=/home/mxadmin/%e.core.%s_%t 配置到末尾
执行 sysctl -p 使配置生效:
sysctl -p
该配置决定了 core 文件生成的位置和文件名模板,其中: