PANIC: could not locate a valid checkpoint record
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PANIC: could not locate a valid checkpoint record相关的知识,希望对你有一定的参考价值。
环境zabbix 4.0 + pgpool + postgres 11.0 cluster + Centos 7.5 +Python2.7.5【3.6】
引起故障的原因,PG Master 磁盘空间150G,由于zabbix监控设备众多(约1000个点,模板监控项也较多),导致数据库的归档文件增长速度非常快,通常五分钟左右吃掉一个G的空间。磁盘空间消耗完毕之后,pg&pgpool的服务会停止,进而影响zabbix系统的使用.为了解决这个问题,创建了bash shell 脚本和crontab 任务定时清理归档文件.
故障日志截图:
PostgreSQL错误PANIC:找不到有效的检查点记录
解决办法:
1. 登录 postgres : docker run -ti postgres /bin/bash【不是docker环境直接跳过此步骤】
2. 切换到 postgres 用户
3. 执行修复命令:/usr/pgsql-11/bin/pg_resetwal -f /var/lib/pgsql/11/data
【根据环境和安装方式的不同,可能文件路径不同,具体可以使用locate或find 命令搜索 pg_resetwal】
【pg_resetxlog -f DATADIR postgres 低于10.0 以下的版本可以使用该命令;-f 强制执行更新】
4. 如果看到“Write-ahead log reset”,表示修复成功。
# systemctl start postgresql-11.service
# systemctl status postgresql-11.service
# systemctl start pgpool-II-11.service
# systemctl status pgpool-II-11.service
# netstat -pltn
此时PG的服务起来了,但是未必数据库可以正常使用,继续使用命令检查
su - postgres
-bash-4.2$ psql
psql: FATAL: xlog flush request 399/FCA1D7D8 is not satisfied --- flushed only to 399/E720DE18
CONTEXT: writing block 2225 of relation base/16385/17835
--此时报的这个错误,可以耐心等待一段时间(约十几分吧),经验而谈pg和pgpool从故障恢复过来都要等一段时间才可正常使用;
-bash-4.2$ psql
psql (11.4)
Type "help" for help.
postgres=#
修复postgres集群建议使用pgpooladmin工具
备注:只需要点击红色箭头所指“返回/断开连接” & "重新加载“”,集群业务即可恢复使用,比命令行管理方便已维护;
以上是关于PANIC: could not locate a valid checkpoint record的主要内容,如果未能解决你的问题,请参考以下文章
Harbor断电重启postgres报错 could not locate a valid checkpoint record
Could not locate device support files.
iOS 12 真机调试 Xcode 9 提示 Could not locate device support files.
Could not locate executable nullinwinutils.exe in the Hadoop binaries.
Could not locate executable nullinwinutils.exe in the Hadoop binaries.
新版Retrofit 2可运行例子(解决Could not locate ResponseBody converter for问题)