容器化部署PG重启后数据丢失,如何恢复?

容器化部署的单机10.4版本pg,运维人员把docker重启后,pg一直无法启动;执行pg_resetwal没有加时间点启动后,发现数据表及丢失了;重新创建表时,提示表已存在,但是pg_tables系统表中未查询到所创建表的记录;还有部分表在information_schema.tables系统表中能查询到数据大小,但是直接...显示全部

容器化部署的单机10.4版本pg,运维人员把docker重启后,pg一直无法启动;执行pg_resetwal没有加时间点启动后,发现数据表及丢失了;重新创建表时,提示表已存在,但是pg_tables系统表中未查询到所创建表的记录;还有部分表在information_schema.tables系统表中能查询到数据大小,但是直接查询表没有记录。

收起
参与9

查看其它 1 个回答austindatabase的回答

austindatabaseaustindatabase数据库架构师互联网金融

实际上这个问题可以从两个部分看

1  在你使用pg_resetwal 不指定时间的情况下,并启动数据库发现数据丢失,是由于 WAL日志没有正确应用到数据库中造成的,数据库是通过WAL来保证数据的一致性,那么你的WAL 没有应用对,那么必然数据丢失。

但比较遗憾的是,基于操作这对于数据库这块的基础知识没有,那么在没有备份的情况下,恢复数据库的可能性很低。

2  不建议在PG数据库使用容器,基于数据库实现模式不同,MySQL可以勉强进行容器化,PG 不建议

互联网服务 · 2023-09-21
浏览364

回答者

austindatabase
数据库架构师互联网金融

austindatabase 最近回答过的问题

回答状态

  • 发布时间:2023-09-21
  • 关注会员:3 人
  • 回答浏览:364
  • X社区推广