Re: Index (primary key) corrupt? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Index (primary key) corrupt?
Date
Msg-id 58221272-d684-4799-a113-d5a5031a0b05@aklaver.com
Whole thread Raw
In response to RE: Index (primary key) corrupt?  (Wim Rouquart <wim.rouquart@kbc.be>)
List pgsql-general
On 1/28/26 03:02, Wim Rouquart wrote:
> Internal
> 
> Bottom line the index exists, it is just not being applied.
> 
> -> It seems to exist indeed, but not visible for pg_dump and some other catalog queries...
> 
> Questions:
> 
> 1) What is the restore command being used?
> 
> -> It's just an untar of the full backup created with pg_basebackup. No need to focus on this imo, the restore was
donefrom the production db so I could have a playground for this situation. It's clear the situation is the same on the
originaland the backup copy.
 

Whoa, pg_basebackup does not involve pg_dump. They are two different 
beasts, where pg_basebackup is a file based binary method and 
pg_dump/pg_restore is a logical method of issuing commands. So the 
restore method is definitely something that needs to be looked at. Even 
if in the production scenario pg_basebackup is not being used how the 
schema and data are being restored is important as that seems to be the 
step where information goes missing.


> -> Well, we export the database using pg_dump, and on import some foreign key indexes which reference the problem
primarykey index fail to create because it's not created, which makes sense. It's not created because it's not
exported.

If you are using pg_dump on one end of the process and pg_basebackup on 
the other end I can see where there are issues, though I would expect 
more problems.

In a pg_dump/pg_restore cycle I don't know how a user created index 
could be present in the system catalog without also being present in the 
pg_dump commands or throwing some sort of error.



> 
> 4) What happens if you create a test database and restore bcf_work_type by itself, with and without data?
> 
> -> I could test this, how would you suggest to do the backup/restore part, also pg_dump?

For table w/data:

pg_dump -d some_db -U some_user -t name_hidden.bcf_work_type -f 
bcf_work_type.sql

with table schema only:

pg_dump -d some_db -U some_user -s -t name_hidden.bcf_work_type -f 
bcf_work_type.sql

This will produce a plain text SQL script.

To restore:

psql -d some_other_db -U some_user -f bcf_work_type.sql




-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Ron Johnson
Date:
Subject: Re: Attempting to delete excess rows from table with BATCH DELETE
Next
From: Adrian Klaver
Date:
Subject: Re: Index (primary key) corrupt?