作者:瀚高PG实验室 (Highgo PG Lab)
目录
环境
症状
问题原因
解决方案
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.7.7
症状
pg_ctl start启动数据库后,运行psql报错:“psql: 致命错误: 57P03: 数据库系统启动中”
[highgo@host data]$ pg_ctl start server starting [highgo@host data]$ 日志: 00000: This is a trial edition, validate until 2020-09-29 14:00:28, database will not be able to start up after that time,please apply an official license by that time. 日志: 00000: 日志输出重定向到日志收集进程 提示: 后续的日志输出将出现在目录 "hgdb_log"中. [highgo@host data]$ psql psql: 致命错误: 57P03: 数据库系统启动中 |
问题原因
报错原因是删除了pg_xlog下的wal日志文件及archive_status
下面模拟报错:
[highgo@host pg_xlog]$ pg_ctl stop waiting for server to shut down.... done server stopped [highgo@host pg_xlog]$ ls 000000010000000000000009.00000028.backup 000000010000000000000010 00000001000000000000000E 000000010000000000000011 00000001000000000000000F archive_status [highgo@host pg_xlog]$ rm -rf * [highgo@host pg_xlog]$ ll total 0 [highgo@host data]$ pg_ctl start server starting [highgo@host data]$ 日志: 00000: This is a trial edition, validate until 2020-09-29 14:00:28, database will not be able to start up after that time,please apply an official license by that time. 日志: 00000: 日志输出重定向到日志收集进程 提示: 后续的日志输出将出现在目录 "hgdb_log"中. [highgo@host data]$ psql psql: 致命错误: 57P03: 数据库系统启动中 |
查看日志
[highgo@host hgdb_log]$ tail -50f highgodb_20.csv 2020-04-20 14:38:39.520 CST,,,2636,,5e9d436f.a4c,2,,2020-04-20 14:38:39 CST,,0,日志,00000,"终止日志输出到标准错误输出设备",,"后续的日志输出将进入到目标日志 ""csvlog"".",,,,,,,"" 2020-04-20 14:38:39.522 CST,,,2638,,5e9d436f.a4e,1,,2020-04-20 14:38:39 CST,,0,日志,00000,"数据库上次关闭时间为 2020-04-20 14:37:17 CST",,,,,,,,,"" 2020-04-20 14:38:39.522 CST,,,2638,,5e9d436f.a4e,2,,2020-04-20 14:38:39 CST,,0,日志,00000,"正在创建丢失的WAL目录""pg_xlog/archive_status""",,,,,,,,,"" 2020-04-20 14:38:39.522 CST,,,2638,,5e9d436f.a4e,3,,2020-04-20 14:38:39 CST,,0,日志,00000,"无效的主 checkpoint 记录",,,,,,,,,"" 2020-04-20 14:38:39.522 CST,,,2638,,5e9d436f.a4e,4,,2020-04-20 14:38:39 CST,,0,日志,00000,"无效的次 checkpoint 记录",,,,,,,,,"" 2020-04-20 14:38:39.523 CST,,,2638,,5e9d436f.a4e,5,,2020-04-20 14:38:39 CST,,0,比致命错误还过分的错误,XX000,"无法找到一个有效的 checkpoint 记录",,,,,,,,,"" 2020-04-20 14:38:43.481 CST,,,2650,"[local]",5e9d4373.a5a,1,"",2020-04-20 14:38:43 CST,,0,日志,00000,"已接收到连接: 主机=[local]",,,,,,,,,"" 2020-04-20 14:38:43.481 CST,"highgo","highgo",2650,"[local]",5e9d4373.a5a,2,"",2020-04-20 14:38:43 CST,,0,致命错误,57P03,"数据库系统启动中",,,,,,,,,"" 2020-04-20 14:39:19.803 CST,,,2636,,5e9d436f.a4c,3,,2020-04-20 14:38:39 CST,,0,日志,00000,"启动进程 (PID 2638) 被信号 6 中断: Aborted",,,,,,,,,"" 2020-04-20 14:39:19.803 CST,,,2636,,5e9d436f.a4c,4,,2020-04-20 14:38:39 CST,,0,日志,00000,"由于启动进程失败, 终止启动",,,,,,,,," |
解决方案
1.数据库做了wal归档,从归档路径拷出wal日志到pg_xlog中可进行恢复
数据库已做过归档,归档路径/home/highgo/hgdbbak/archive
highgo=# show archive_mode ; archive_mode -------------- on highgo=# show archive_directory ; archive_directory ------------------------------ /home/highgo/hgdbbak/archive |
从归档路径中拷出wal到pg_xlog中,启动数据库,恢复成功
[highgo@host archive]$ pwd /home/highgo/hgdbbak/archive [highgo@host archive]$ cp 0000000100000000000000{0E,0F,10,11} /home/highgo/highgo/database/4.7.7/data/pg_xlog/ [highgo@host data]$ pg_ctl status pg_ctl: no server running [highgo@host data]$ pg_ctl start server starting [highgo@host data]$ psql psql (4.7.7)
PSQL: Release 4.7.7 Connected to: HighGo Database V4.7 Enterprise Edition Release 4.7.7 - 64-bit Production
Type "help" for help. highgo=# |
更多解决方案请登录【瀚高技术支持平台】查看https://support.highgo.com/#/index/docContent/c07bdeb70386bff9