From: | Calabaza <calalinux(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | unexpected chunk number 1953460082 (expected 52) for toast value 478112 in pg_toast_377028 |
Date: | 2011-10-15 16:35:30 |
Message-ID: | CADA3Qfyg6dt5kEwr9CUkjHXpEgiw+soCJpHzdY7JjarwTQaO6w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenos días, amigos,
espero puedan darme algunas indicaciones con el siguiente
Problema:
No puedo realizar una copia de seguridad de una DB que se utiliza
para guardar ficheros BLOB (fotografias de marcaciones de usuarios).
La causa:
Días antes del problema, la partición en donde reside el directorio DATA
se ha llenado, por lo que ha dejado de funcionar.
Log de ese día:
2011-09-07 17:21:17 PYTERROR: could not extend relation base/17133/377032:
No queda espacio en el dispositivo
2011-09-07 17:21:17 PYTHINT: Check free disk space.
2011-09-07 17:21:17 PYTCONTEXT: SQL statement "insert into
mi_tabla (campo_id, campo1) values ( $1 , $2)"
PL/pgSQL function "ins_mi_tabla" line 2 at SQL statement
2011-09-07 17:21:17 PYTSTATEMENT: select * FROM ins_mi_tabla($1,$2)
2011-09-07 17:21:21 PYTLOG: could not write temporary statistics
file "pg_stat_tmp/pgstat.tmp": No queda espacio en el dispositivo
2011-09-07 17:21:21 PYTLOG: could not write temporary statistics file "pg_sta
Lo realizado:
a) Intento de realizar copia de seguridad, el que dio el siguiente error:
2011-09-17 14:15:38 PYTERROR: unexpected chunk number 1953460082 (expected 52)
for toast value 478112 in pg_toast_377028
2011-09-17 14:15:38 PYTSTATEMENT: COPY mi_tabla (campo_id, campo1) TO stdout;
b) Detuve el servicio
c) Reubicación del directorio data (Copiado) a una partición
diferente con más espacio libre.
d) Cambio de path en el postgresql.conf e Inicio del servidor.
Resultados / Sugerencias de Búsquedas en Internet:
[0]. http://archives.postgresql.org/pgsql-admin/2008-09/msg00287.php
Si bien, mi Inglés no es tan bueno, creo entender que el trabajo
aquí realizado fue:
a) Identificar el registro dañado
b) Dumpear el schema de la DB
c) Dumpear los datos de todas las tablas a excepción de la que está defectuosa
d) Obtener los registros previos y posteriores al "defectuoso" e insertarlos
en otra BD.
[2]. http://serverfault.com/questions/152442/pg-dump-error-message-from-server-error-missing-chunk-number-0-for-toast-value
Según este link, indica que debe borrarse el registro "defectuoso".
Y aquí hay varias observaciones, de las cuales he verificado los parámetros:
fsync y full_page_writes estan comentados en el postgresql.conf,
lo que, según el link, indica que estan en ON.
La versión completa del postgresql: Select version();
"PostgreSQL 8.4.1 on i686-pc-linux-gnu, compiled by GCC gcc (GCC)
3.4.6 20060404 (Red Hat 3.4.6-10), 32-bit"
Datos del server:
openSUSE 11.1
Linux linux-mh 2.6.27.29-0.1-pae #1 SMP 2009-08-15 17:53:59 +0200
i686 i686 i386 GNU/Linux
Pregunta:
¿Que sugieren que pueda hacer para volver a un estado correcto la BD
para poder realizar un backup completo, preferentemente sin
hacer el recorrido registro a registro sugerido
en los links [0] y [1] asumiendo que se pueden descartar
los registros defectuosos?
Desde ya muchas gracias por su tiempo.
--
§~^Calabaza^~§ from Barrio Obrero, Asunción, Paraguay
http://calablogbaza.blogspot.com/
http://es.wikipedia.org/wiki/Top-posting
http://es.wikipedia.org/wiki/Netiquette
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2011-10-15 19:51:58 | Re: unexpected chunk number 1953460082 (expected 52) for toast value 478112 in pg_toast_377028 |
Previous Message | Sergio Sánchez Rivas | 2011-10-15 03:24:23 | Re: In Memoriam: Falleció Dennis Ritchie |