Base corrompida

From: Benjamin Roberto Alvarado Rivera <balvarado(at)linuxmail(dot)org>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Base corrompida
Date: 2004-08-20 14:37:36
Message-ID: 1093012656.1933.34.camel@6-allhosts
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

El día de ayer por en la madrugada, una base de datos que utilizo para
un programa en win (PostgreSQL esta en Linux-debian), se corrompió,
afortunadamente no perdí ningún dato importante, y basto con eliminar la
base de datos y restaurar los datos.

Esto fue a raíz de que necesitaba que se eliminaran tablas temporales,
que creadas por una conexión odbc desde win a PostgreSQL, pero una
maquina se reinicio (que raro) y la tabla temporal se quedo en la base
de datos, y y como no estaba en la empresa (esto paso a las 3am), por
medio asistencia telefónica a un compañero, le fui indicando como borrar
la tabla temporal, pero no se si estaba mas dormido o que despierto no
la encontraba. Así que me decidí por reiniciar la base de datos.

/etc/init.d/postgresql restar (esta en debian, duda: me convendría mas
tener el postgresql en su forma normal, desde un tar.gz, compilarlo y
tenerlo todo junto o de la forma que los instalan los deb?)

Y al reiniciar marco varios errores, y no trabajo la base de datos, fue
hasta que se le dio

/etc/init.d/postgresql stop
/etc/init.d/postgresql start

y ya volvió a funcionar, pero empezó a marcar errores al programa en win

El error que me mostraba el programa en win, era, Error 21474667259
(8000040005) en tiempo de ejecución Error: Could not access status of
transaction 959346.

En Linux en el psql, me decía Could not access status of transaction
959346, al darle select * from tabla;

a ciertas tablas, no podía acceder, afortunadamente, los datos que
contenían, los agregue por medio de un scrip, por lo que esa información
no la perdí.

Trate de darle un pg_dump a la base de datos pero me marcaba que
/var/lib/postgres/data/pg_clog/0000 no existía o algo así
y efectivamente no existía solo había un 0001

y pues tampoco pude obtener los datos de otras tablas, tuve que sacar la
información que no tenia de 3 tablas, por otro lado. un odbc y lo metí a
un archivo un mdb (sorry, no se me ocurrió nada mas en ese momento),
posteriormente elimine la base de datos dropdb y volví a crear la base y
todas las tablas con un scrip, y después metí la información del
archivo mdb y listo.

Mi duda, que otra cosa podría haber hecho, por ejemplo, directamente en
psql, como vació la información de una base de datos a un archivo de
texto?
Como podría recuperar la información de las tablas que no puede acceder?
que en esta ocasión, los datos los tenia en un scrip, pero si hubieran
sido los datos que se fueron agregando por los usuario, hubiera estado
en problemas.

De antemano agradezco sus concejos, y es es, mas que nada, por si vuelve
a suceder, pueda proceder de un forma mas efectiva.

Gracias

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Carlos Del Rio 2004-08-20 15:27:45 Bloqueos Registros
Previous Message Alvaro Herrera 2004-08-20 03:39:16 Re: Generador de reportes y recuperar respaldo.