This looks like disk page corruption.<p>In such a case, the <i>very first</i> thing you do — aside from verifying that your backups, replication, and WAL archiving are all working — before you even try diagnosing your problem any further than "something weird is happening" is <i>make a filesystem-level copy of your PostgreSQL cluster</i>. (If you're running LVM, ZFS, a SAN, or any other thing that lets you take an instantaneous filesystem snapshot, so much the better. Do that, and then copy <i>it</i>.) Then, and only then, should you even contemplate trying to un-fuck your database.<p>I cannot stress this point enough. That means make a tarball, or cp the directory, or rsync it, or whatever <i>disk file level</i> tool you prefer, and specifically and emphatically <i>not</i> pg_dump. (It's probably not going to make things any worse, but if you do have corrupted disk pages, pg_dump isn't likely work, anyway.)<p>Flailing around trying to fix things can sometimes make them worse. If you're working on your already broken data, and break it further without the safety net of a fs-level backup, you're ... well, you're worse off than you were five minutes prior, aren't you?