记一次Postgresql异常中断导致的启动失败
由于异常导致了测试服务器的Pg11宕机,启动时候报错
2019-06-11 14:20:08.121 CST [9980] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9981] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9964] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9970] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9965] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9958] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9969] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9959] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9960] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9971] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9968] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9976] 致命错误: 数据库系统启动中 2019-06-11 14:20:08.121 CST [9972] 致命错误: 数据库系统启动中 2019-06-11 14:20:10.711 CST [6567] 日志: 启动进程 (PID 8002) 被信号 6 中断: Aborted 2019-06-11 14:20:10.711 CST [6567] 日志: 由于启动进程失败, 终止启动 2019-06-11 14:20:10.729 CST [6567] 日志: 数据库系统已关闭 2019-06-11 14:33:40.325 CST [7610] 日志: 数据库系统中断;上一次的启动时间是在2019-06-11 14:07:23 CST 2019-06-11 14:33:49.939 CST [7610] 日志: 无法取文件 "./pg_logical/replorigin_checkpoint" 的状态: 没有那个文件或目录 2019-06-11 15:46:24.229 CST [8248] 日志: 数据库系统中断;上一次的启动时间是在2019-06-11 14:07:23 CST 2019-06-11 15:46:55.961 CST [8248] 日志: 3/AAA53290 处的记录长度不合法:想要 24,但得到的是 0 2019-06-11 15:46:55.961 CST [8248] 日志: 无效的主 checkpoint 记录 2019-06-11 15:46:55.961 CST [8248] 比致命错误还过分的错误: 无法找到一个有效的 checkpoint 记录 2019-06-11 15:46:59.764 CST [6724] 日志: 启动进程 (PID 8248) 被信号 6 中断: Aborted 2019-06-11 15:46:59.764 CST [6724] 日志: 由于启动进程失败, 终止启动 2019-06-11 15:46:59.793 CST [6724] 日志: 数据库系统已关闭 2019-06-11 16:03:11.003 CST [8124] 日志: 数据库系统中断;上一次的启动时间是在2019-06-11 14:07:23 CST 2019-06-11 16:03:45.522 CST [8124] 日志: 3/AAA53290 处的记录长度不合法:想要 24,但得到的是 0 2019-06-11 16:03:45.522 CST [8124] 日志: 无效的主 checkpoint 记录 2019-06-11 16:03:45.523 CST [8124] 比致命错误还过分的错误: 无法找到一个有效的 checkpoint 记录 2019-06-11 16:03:49.013 CST [6509] 日志: 启动进程 (PID 8124) 被信号 6 中断: Aborted 2019-06-11 16:03:49.013 CST [6509] 日志: 由于启动进程失败, 终止启动 2019-06-11 16:03:49.030 CST [6509] 日志: 数据库系统已关闭 2019-06-11 16:49:16.784 CST [8195] 日志: 数据库系统中断;上一次的启动时间是在2019-06-11 14:07:23 CST 2019-06-11 16:49:49.393 CST [8195] 日志: 3/AAA53290 处的记录长度不合法:想要 24,但得到的是 0 2019-06-11 16:49:49.393 CST [8195] 日志: 无效的主 checkpoint 记录 2019-06-11 16:49:49.393 CST [8195] 比致命错误还过分的错误: 无法找到一个有效的 checkpoint 记录 2019-06-11 16:49:53.214 CST [6758] 日志: 启动进程 (PID 8195) 被信号 6 中断: Aborted 2019-06-11 16:49:53.214 CST [6758] 日志: 由于启动进程失败, 终止启动 2019-06-11 16:49:53.238 CST [6758] 日志: 数据库系统已关闭 2019-06-11 17:41:24.320 CST [11165] 日志: 数据库系统中断;上一次的启动时间是在2019-06-11 14:07:23 CST 2019-06-11 17:41:24.388 CST [11165] 日志: 3/AAA53290 处的记录长度不合法:想要 24,但得到的是 0 2019-06-11 17:41:24.388 CST [11165] 日志: 无效的主 checkpoint 记录 2019-06-11 17:41:24.388 CST [11165] 比致命错误还过分的错误: 无法找到一个有效的 checkpoint 记录 2019-06-11 17:41:25.244 CST [11163] 日志: 启动进程 (PID 11165) 被信号 6 中断: Aborted 2019-06-11 17:41:25.244 CST [11163] 日志: 由于启动进程失败, 终止启动 2019-06-11 17:41:25.284 CST [11163] 日志: 数据库系统已关闭
应该是事务执行中导致的日志文件丢失,少了启动必须的文件
./pg_logical/replorigin_checkpoint
然后psql
bash-4.2$ psql
psql: 无法联接到服务器: 没有那个文件或目录
服务器是否在本地运行并且在 Unix 域套接字
"/var/run/postgresql/.s.PGSQL.5432"上准备接受联接?
bash-4.2$ ./pg_ctl start
pg_ctl: 没有指定数据目录, 并且没有设置 PGDATA 环境变量
解决方案
步骤0:先用superuser登录
su postgres
步骤一:重置数据文件
./pg_resetwal -f /var/lib/pgsql/11/data
步骤二:启动
./pg_ctl start -D /var/lib/pgsql/11/data/