Re: pg_dumpall and restore
Laurenz Albe <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.novice,gmane.comp.db.postgresql.sql |
|---|---|
| Organization | Cybertec |
| Message-ID | <[email protected]> |
Rossi, Maria wrote: > I upgraded our postgres database from V9.3 to V10.5. Used pg_dumpall then restore it to the new instance. > After the restore, we notice that 1 table had duplicate rows, such that it was not able to create the primary key. > I checked the old database, it does not have the dups. > Has anyone encountered having dups rows loaded? Any idea what caused this and how to prevent? > > Your help would be much appreciated. I don't believe that pg_dumpall miraculously duplicated the row. You probably *do* have a duplicate row, and hence table corruption, but I suspect that one of the rows is not in the index you used to look for the row. If you query: SELECT * FROM tab WHERE id = 42; the query will likely use the index on "id" and find only one of the rows. You should SET enable_indexscan = off; SET enable_indexonlyscan = off; and then repeat the query, so that a sequential scan is used. To fix, delete one of the rows and reindex. You can identify a row by its tuple id: SELECT ctid, * FROM tab WHERE id = 42; Yours, Laurenz Albe -- Cybertec | https://www.cybertec-postgresql.com