El índice de error de Postgres 9.1.6 contiene una página cero inesperada en el bloque 0

8

He configurado la replicación de transmisión en Postgres 9.1.6 ejecutándose en un servidor Debian y está funcionando bien.

Cuando intento ejecutar una consulta en la base de datos de réplica, aparece el siguiente error:

ERROR:  index "tbl_cust_id_idx" contains unexpected zero page at block 0
HINT:  Please REINDEX it.

¿Qué podría estar causando este error?

La pregunta también se publica en /programming/17865135/postgres-9-1-6-error-index-contains-unexpected-zero-page-at-block-0

McKibet
fuente
¿Se pueden ejecutar otras consultas: SELECT version()o SELECT now()?
1
¿Recibe este error cuando se conecta a la base de datos? ¿Puedes conectarte? En caso afirmativo, ¿puede emitir consultas con éxito? De lo contrario, esto no se ve muy bien. ¿Cuáles son sus configuraciones relacionadas con fsync en la réplica? ¿Qué sabemos sobre el sistema de almacenamiento allí?
dezso

Respuestas:

7

Me encontré con el mismo problema en Postgres 8.3.11. Aunque no pude identificar la causa raíz, la solución fue bastante simple:

REINDEX INDEX tbl_cust_id_idx;

Esta página contiene sugerencias sobre lo que pudo haber causado el error, aunque son vagas:

Un índice de tabla indicado estaba dañado (puede ser el resultado de postgres recientes o falla del sistema, faltaba espacio libre en el dispositivo, etc.).

Idealmente, sería útil si hubiera algo que pudiera implementarse para prevenir o corregir estos errores de manera proactiva. En el lado positivo, esta es la primera vez que vemos este problema en varios años y en cientos de máquinas.

Justin Ethier
fuente