PostgreSQL物理坏块和文件损坏案例分享

作者简介

王睿操,平安好医数据库架构岗,多年postgresql数据库运维开发工作。曾就职于中国民航信息,迪卡侬。对其他数据库产品也有一定的涉猎。

背景

笔者最近发现很多朋友经常遇到PostgreSQL坏块或者数据混乱的情况,网上中文资料比较少,于是整理了一下笔者遇到各种各样的报错以及解决方案

案例一:物理坏块

逻辑备份时报错

pg_dump: Dumping the contents of table "xxxx" failed: PQgetResult() failed.
pg_dump: Error message from server: ERROR: invalid memory alloc request size 18446744073709551613
pg_dump: The command was: COPY xxxxxx (id, active_flag, bkd, blk, go_show, grs, lss, lsv, lt, no_show, value, wl, inv_seg_cabin_id, ind) TO stdout;
pg_dump: [parallel archiver] a worker process died unexpectedly

原因:数据库产生坏行(可能是硬件损坏,可能是一个bug(piece of memory gets overwritten by random data pg9.2之前版本),也有可能是不正确的硬件配置)

首先笔者考虑了pg自带参数zero_damaged_pages,将这个参数修改为true,但发现仍然是报错,看了

你可能感兴趣的:(数据库)