RE: https://mastodon.au/@xrobau/117300844625946496
Edit: We have figured it out, and are manually importing to a new temp table.
---
Any #PostgreSQL exports around to help me out here? After a storage server crash, I've ended up with (at least one) table having corrupt time data in it. There is, apparently, no way to pg_dump and ignore errors, and \COPY also doesn't appear to continue-on-error.
What I want to do is just get a list of the IDs of the rows with the corrupt time entries so I can either fix them, or just delete them.
This is the 'status_stats' table from #MastodonNZ, and has about 70m rows.
My current plan is that I've copied the schema of status_stats to status_stats_new, changing the time rows to just 'text' and I'm doing 'insert into status_stats_new select * from status_stats ON CONFLICT DO NOTHING;' then a left join to find missing ones.
IS THERE A BETTER WAY? Halp!
Quoting
Sorry #MastodonNZ but there is a good chance I'm going to have to do a complete database dump and restore, as there's still some bits of corruption left over from the crash the other day. This is probably an hour or so outage. I'm actually not even totally sure that #PostgreSQL will even restart properly when I shut it down. More information will be in this thread (so you can look at it on #MastodonAU directly via the web interface.)
Open quoted post