Re: Tablacorrupta

From: Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>
To: Carlos Montecel <carlos(dot)montecel(at)gmail(dot)com>
Cc: POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Tablacorrupta
Date: 2019-04-09 18:41:57
Message-ID: CAJGNTeNDH6Ot7ScpZOxLBZPmw6O8gNdK=rMB+O7YcaOD1cyZqQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Tue, 9 Apr 2019 at 12:37, Carlos Montecel <carlos(dot)montecel(at)gmail(dot)com> wrote:
>
> Estimados
>
>
> Este es el error que sale al hacer select en una tabla
>
>
>
> ERROR: el encabezado de página no es válido en el bloque 636253 de la relación base/163902/166094
>

Saludos Carlos,

Primero que nada, aunque no nos has dicho que versión de postgres
estás usando, ese mensaje de error lo encontré sólo entre 8.2 y 9.2
por lo que estas usando una versión vieja y descontinuada de postgres
(https://www.postgresql.org/support/versioning/) Trata de actualizar
lo antes posible.
y de paso en windows!!! por qué le tienes tanto odio a tus datos?
me imagino que el hardware es igual de viejo y tampoco le has de dar
mantenimiento lo que explica porque está fallando.

>
>
> Tenemos problemas para restaurar la base después de este error, los esquemas no se crean correctamente.
>
>
> EL proceso de restauración de un backup no resuelve el problema:
>

obviamente ningún backup va a ser válido si te dió este error, lo más
probable es que pg_dump se haya detendio después de este error es por
eso que no puedes restaurar el resto de objetos

tienes dos opciones, probemos primero con la menos dolorosa:
determinar si es una tabla o un índice el del problema

Con la siguiente consulta determinas en que base de datos está el
objeto afectado (supongo que es nw_des porque de esa base estás
sacando el backup)

select datname from pg_database from oid = 163902;

Una vez sepas en que base esta el objeto afectado ejecuta este comando
para determinar si es un índice o una tabla:

select relname, relkind from pg_class where relfilenode = 166094;

si el campo relkind dice 'i' entonces es un índice y debería bastar
con ejecutar:

REINDEX INDEX nombre_del_indice;

--
Jaime Casanova www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos Montecel 2019-04-09 19:17:05 Re: Tablacorrupta
Previous Message Jaime Casanova 2019-04-09 18:18:33 Re: Alta