由于停电,我运行Postgres数据库的服务器崩溃了。
现在,当我试图启动数据库时,我会得到以下错误。
< 2020-01-04 11:40:39.409 CET >日志:数据库系统关闭被中断;最后一次知道时间为2020-01-04 11:39:52
< 2020-01-04 11:40:39.655 CET > LOG:数据库系统没有正确关闭;自动恢复正在进行中
< 2020-01-04 11:40:39.657 CET > LOG:重做从1A2/8F237F8开始
< 2020-01-04 11:40:39.658 CET > LOG:无效记录长度为1A2/8F240298:需要24,got 0
< 2020-01-04 11:40:39.658 CET > LOG:重做1A2/8F240270
< 2020-01-04 11:40:39.658 CET > LOG:最后完成的事务是在日志时间2020-01-03 07:21:31.432701+01
< 2020-01-04 11:40:39.685 CET >致命:无法fsync文件"pg_tblspc/16387/PG_9.6_201608131/48151/51110":输入/输出错误
< 2020-01-04 11:40:39.687 CET > LOG:启动进程(PID 33321)退出代码1
< 2020-01-04 11:40:39.687 CET > LOG:因启动进程失败而中止启动
< 2020-01-04 11:40:39.709 CET > LOG:数据库系统关闭
有没有办法让它运行。
发布于 2020-01-05 17:50:31
你看错信息了。“无效记录长度”是WAL结束的一种常见方式。这并不一定表示存在问题。“致命的:不能fsync”,然而,绝对不应该发生。您有硬件问题或损坏的文件系统,需要在数据库之外处理这些问题。
您可以使用fsck这样的方法修复它,然后重复自动恢复。但你永远也无法确定自己是否已经有了无法修复的永久性腐败。因此,您最好的选择可能是从备份(如果有备份)恢复到不同的硬件上。
https://dba.stackexchange.com/questions/256740
复制相似问题