RE: Base de datos corrupta

Lists: pgsql-es-ayuda
From: Manuel Lamas <manuel3w(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Base de datos corrupta
Date: 2007-11-05 09:06:42
Message-ID: BAY108-W24D9C3C4E477A6077E000895880@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola lista,
Ya he hecho esta pregunta hace 2 semanas pero nadie me respondió. Si alguien me puede informar seria una gran ayuda.
Mi servidor paro brutalmente en medio de un montón de procesos y autovacuum. Inmediatamente después hice un backup pero me queda una duda y tengo miedo de encontrarme con una database corrupta y no darme cuenta enseguida. De que forma puedo asegurarme que la base de datos no esta corrupta y que puedo seguir sin problemas ?Muchas gracias de antemanoManuel
_________________________________________________________________
Envoie un sourire, fais rire, amuse-toi! Employez-le maintenant!
http://www.emoticonesgratuites.ca/?icid=EMFRCA120


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Manuel Lamas <manuel3w(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Base de datos corrupta
Date: 2007-11-05 18:57:30
Message-ID: 20071105185730.GC6511@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Manuel Lamas escribió:
> Hola lista,
> Ya he hecho esta pregunta hace 2 semanas pero nadie me respondió. Si alguien me puede informar seria una gran ayuda.
> Mi servidor paro brutalmente en medio de un montón de procesos y autovacuum. Inmediatamente después hice un backup pero me queda una duda y tengo miedo de encontrarme con una database corrupta y no darme cuenta enseguida. De que forma puedo asegurarme que la base de datos no esta corrupta y que puedo seguir sin problemas ?Muchas gracias de antemanoManuel

Haz un select * from <tabla> de todas las tablas.

--
Alvaro Herrera Valdivia, Chile ICBM: S 39º 49' 18.1", W 73º 13' 56.4"
"If you have nothing to say, maybe you need just the right tool to help you
not say it." (New York Times, about Microsoft PowerPoint)


From: Julio Cesar Sánchez González <knowhow(at)sistemasyconectividad(dot)com(dot)mx>
To: Manuel Lamas <manuel3w(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Base de datos corrupta
Date: 2007-11-05 19:49:26
Message-ID: 1194292166.7167.6.camel@andromeda.gateway.2wire.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


El lun, 05-11-2007 a las 04:06 -0500, Manuel Lamas escribió:
> Hola lista,
>
> Ya he hecho esta pregunta hace 2 semanas pero nadie me respondió. Si
> alguien me puede informar seria una gran ayuda.
>
> Mi servidor paro brutalmente en medio de un montón de procesos y
> autovacuum. Inmediatamente después hice un backup pero me queda una
> duda y tengo miedo de encontrarme con una database corrupta y no darme
> cuenta enseguida.
>
> De que forma puedo asegurarme que la base de datos no esta corrupta y
> que puedo seguir sin problemas ?
>
> Muchas gracias de antemano
> Manuel
>
>
> ______________________________________________________________________
> Envoie un sourire, fais rire, amuse-toi! Employez-le maintenant!

Hola, porque no bajas el respaldo en otra instalacion de postgresql y lo
pruebas para ver si no te falta nada.

--
Saludos,

Julio Cesar Sánchez González.

--
Ahora me he convertido en la muerte, destructora de mundos.
Soy la Muerte que se lleva todo, la fuente de las cosas que vendran.

www.sistemasyconectividad.com.mx http://darkavngr.blogspot.com/


From: Manuel Lamas <manuel3w(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Base de datos corrupta
Date: 2007-11-05 23:37:26
Message-ID: BAY108-W313451F9700CE6B21BB4AB95880@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


> Subject: Re: [pgsql-es-ayuda] Base de datos corrupta> From: knowhow(at)sistemasyconectividad(dot)com(dot)mx> To: manuel3w(at)hotmail(dot)com> CC: pgsql-es-ayuda(at)postgresql(dot)org> Date: Mon, 5 Nov 2007 13:49:26 -0600> > > El lun, 05-11-2007 a las 04:06 -0500, Manuel Lamas escribió:> > Hola lista,> > > > Ya he hecho esta pregunta hace 2 semanas pero nadie me respondió. Si> > alguien me puede informar seria una gran ayuda.> > > > Mi servidor paro brutalmente en medio de un montón de procesos y> > autovacuum. Inmediatamente después hice un backup pero me queda una> > duda y tengo miedo de encontrarme con una database corrupta y no darme> > cuenta enseguida.> > > > De que forma puedo asegurarme que la base de datos no esta corrupta y> > que puedo seguir sin problemas ?> > > > Muchas gracias de antemano> > Manuel> > > > > > ______________________________________________________________________> > Envoie un sourire, fais rire, amuse-toi! Employez-le maintenant!> > Hola, porque no bajas el respaldo en otra instalacion de postgresql y lo> pruebas para ver si no te falta nada.> > > -- > Saludos,> > Julio Cesar Sánchez González.>

Gracias Alejandro, Alvaro y Julio.

Alejandro : Si hice un backup con pg_dump.

Julio : Si, pensé en bajar el respaldo en otro servidor. En realidad es lo que voy a hacer si no encuentro otra forma. El problema es que para hacer un verdadero test, tengo que hacer une instalación idéntica y son muchas muchas horas.

Alvaro : Me estraña tu respuesta. Solo haciendo un simple SELECT * FROM mis_tablas puedo comprobar que la base de datos no esta corrupta ? Tengo tablas de 500 000 lineas, cambia algo a tu manera ? No existe ningún comando particular que escanea la base de datos y detecta los errores ?

Muchas gracias de antemano
Manuel

_________________________________________________________________
Envoie un sourire, fais rire, amuse-toi! Employez-le maintenant!
http://www.emoticonesgratuites.ca/?icid=EMFRCA120


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Manuel Lamas <manuel3w(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Base de datos corrupta
Date: 2007-11-06 13:56:24
Message-ID: 20071106135624.GC2694@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Manuel Lamas escribió:

> Alvaro : Me estraña tu respuesta. Solo haciendo un simple SELECT *
> FROM mis_tablas puedo comprobar que la base de datos no esta corrupta
> ? Tengo tablas de 500 000 lineas, cambia algo a tu manera ? No existe
> ningún comando particular que escanea la base de datos y detecta los
> errores ?

La base de datos no se corrompe, excepto cuando hay
1) bugs
2) problemas de hardware.

Cuando hay (1), lo obvio es corregir el bug de manera que la corrupcion
no vuelva a presentarse. Por lo tanto no tiene sentido hacer una
herramienta para escanear (y reparar?) los posibles errores, porque cada
bug sera distinto y por lo tanto los errores son distintos; cuando esto
ha sucedido lo que se ha hecho es que se ha liberado una nueva version
de Postgres con el bug corregido.

Cuando hay (2), los problemas se manifiestan de formas aleatorias. Por
lo tanto es muy dificil hacer una herramienta que chequee la base de
datos de maneras utiles.

Los problemas que se presentan tipicamente en este caso son:
a) corrupcion de punteros TOAST
b) corrupcion de encabezados "varlena"
c) corrupcion total de paginas, incluyendo encabezados de pagina

Los tres problemas serian detectados al hacer un SELECT de todos los
campos de cada tabla, y reportados con un ERROR. Por lo tanto si haces
eso y no reporta nada, es porque la base de datos (muy probablemente) no
esta corrupta.

Hay otros problemas posibles, por ejemplo corrupcion interna de los
valores almacenados (por ejemplo que un valor "1" se convierta en un
"100"). Pero la probabilidad de que eso ocurra y que _no_ ocurra ni (a)
ni (b) ni (c) es muy muy remota.

Si el servidor de datos simplemente se cayo por un corte de energia y
luego volvio a levantarse sin ningun problema, la probabilidad de que
haya corrupcion de datos es bastante pequeña. (Hemos visto varios
reportes de servidores que se caen y luego tienen problemas al
levantarse debido a problemas de configuracion. Pero si se levanta OK y
luego sigue funcionando OK creo que no hay razones para temer).

--
Alvaro Herrera http://www.flickr.com/photos/alvherre/
You liked Linux a lot when he was just the gawky kid from down the block
mowing your lawn or shoveling the snow. But now that he wants to date
your daughter, you're not so sure he measures up. (Larry Greenemeier)


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Manuel Lamas <manuel3w(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Base de datos corrupta
Date: 2007-11-06 13:57:09
Message-ID: 20071106135709.GD2694@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Manuel Lamas escribió:

> Alvaro : Me estraña tu respuesta. Solo haciendo un simple SELECT *
> FROM mis_tablas puedo comprobar que la base de datos no esta corrupta
> ? Tengo tablas de 500 000 lineas, cambia algo a tu manera ? No existe
> ningún comando particular que escanea la base de datos y detecta los
> errores ?

Se me olvidó comentar lo siguiente: la idea no es que revises linea por
linea la salida, sino solamente que la dejes ejecutarse por completo.

--
Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J
"Si un desconocido se acerca y te regala un CD de Ubuntu ...
Eso es ... Eau de Tux"


From: Manuel Lamas <manuel3w(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Base de datos corrupta
Date: 2007-11-06 19:56:38
Message-ID: BAY108-W15419B59301E443007A29C95890@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


> > Alvaro : Me estraña tu respuesta. Solo haciendo un simple SELECT *> > FROM mis_tablas puedo comprobar que la base de datos no esta corrupta> > ? Tengo tablas de 500 000 lineas, cambia algo a tu manera ? No existe> > ningún comando particular que escanea la base de datos y detecta los> > errores ?> > Se me olvidó comentar lo siguiente: la idea no es que revises linea por> linea la salida, sino solamente que la dejes ejecutarse por completo.
Ok por la explicación del scanner anti-corrupción (es muy lógico, no puede marchar).

Si entiendo bien, al hacer un simple SELECT * FROM mis_tablas, si mi tabla (mi base de datos) esta corrupta, pgsql me lo va indicar inmediatamente señalándome algún error.

Muchisimas gracias Alvaro por la ayuda generosa que nos haces desde hace tantos años y de tu altisimo nivel.

Manuel
_________________________________________________________________
Envoie un sourire, fais rire, amuse-toi! Employez-le maintenant!
http://www.emoticonesgratuites.ca/?icid=EMFRCA120