harbor断电重启postgres报错PANIC: could not locate a valid checkpoint record

docker部署的Harbor 内置的数据库为postgres,服务器断电重启后,报错信息如下:

PANIC:  could not locate a valid checkpoint record                                                                                   
LOG:  startup process (PID 7) was terminated by signal 6: Aborted                                                                    
LOG:  aborting startup due to startup process
failure  
LOG:  database system is shut down 
LOG:  database system shutdown was interrupted; last known up at 2024-08-27 14:25:36 UTC                                             
LOG:  invalid primary checkpoint 
record                                 
LOG:  invalid secondary checkpoint record                                                                                    
PANIC:  could not locate a valid checkpoint record                                                                                   
LOG:  startup process (PID 8) was terminated by signal 6: Aborted                                                                    
LOG:  aborting startup due to startup process failure 

解决办法:

1.首先进入到postgres的存储目录中
查看持久化目录
cat docker-compose.yml
查看harbor-db对应的内容找到对应的数据目录,例如:/data/database
示例:

postgresql:
   xxxx
    volumes:
      - /data/database:/var/lib/postgresql/data:z

2.下载对应版本的docker镜像

docker pull postgresql:xxx

3.使用数据目录启动容器

docker run -it -v /data/database:/var/lib/postgresql/data postgres:9.6 /bin/bash

4.执行修复命令(注意:执行时需切换到postgres用户且使用命令的绝对路径执行)

10之前的版本执行:
/xxx/xxx/xxx/pg_resetxlog /var/lib/postgresql/data -f
10之后的版本执行:
/xxx/xxx/xxx/pg_resetwal  /var/lib/postgresql/data  -f

5.执行结果示例:

posted @ 2024-08-28 11:52  海上生明月~  阅读(171)  评论(0)    收藏  举报