Re: Base corrompida

From: Benjamin Roberto Alvarado Rivera <balvarado(at)linuxmail(dot)org>
To: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Base corrompida
Date: 2004-08-20 17:43:41
Message-ID: 1093023820.1924.82.camel@6-allhosts
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, 2004-08-20 at 12:35, Alvaro Herrera wrote:
> On Fri, Aug 20, 2004 at 12:17:04PM -0500, Benjamin Roberto Alvarado Rivera wrote:
> > On Fri, 2004-08-20 at 11:36, Alvaro Herrera wrote:
> > > On Fri, Aug 20, 2004 at 09:37:36AM -0500, Benjamin Roberto Alvarado Rivera wrote:
> > >
> > > Francamente, hace tiempo que no veia una situacion tan "matar una mosca
> > > con un mortero". Por que no bastaba simplemente terminar el proceso
> > > ODBC en el lado Win? Por favor explica como fue que intentaste "borrar
> > > la tabla temporal".
> >
> > Como que "matar una mosca con un mortero"?
>
> Eso mismo. No habia para que echar abajo el servidor solo para borrar
> una tabla!
>
> > El programa que desarrolle en VB, se conecta a postgresql a través del
> > psqlodbc, el programa entre otras cosas, crea una tabla temporal para
> > guardar algunos datos, [...]
> >
> > Al volver abrir el programa en VB, trabajo normal, creo la otra tabla
> > temporal, no se, pg_temp3.tablanombremaquina, por ejemplo, pero ya
> > existe una pg_temp1.tablanombremaquina, que se quedo en la base de
> > datos, y el programa al trabajar con las tablas temporales, tiene que
> > ponerle que esquema schemaname.tablaname, de lo contrario no funciona,
> > indica que la tabla no existe.
>
> No me queda clara esta parte. Cuando creas una tabla temporal,
> automaticamente se crea un schema pg_temp_NNN que es el schema que te
> corresponde. Cuando termine tu sesion, ese esquema va a ser limpiado.
> Si la sesion termina abruptamente, el esquema no se va a limpiar, pero
> se limpiara cuando otro proceso servidor tome su lugar. En ningun caso
> necesitas limpiarlo manualmente!

sip, asi funciona, no se ralmente que fue lo que paso. el programa
indicaba que no existia la tabla para el schema dado. asi, que supuse,
(tal ves fue este el error), reiniciar la base de datos, para que
limpiara todas las tablas temporales.

>
> Ahora, cuando se crea un esquema temporal, este es agregado
> automaticamente a tu lista de busqueda. No necesitas saber como se
> llama ni necesitas ponerlo explicitamente. De hecho, hacerlo puede
> traerte problemas como el que sen~alas. Ni siquiera necesitas calificar
> el nombre de la tabla (es decir simplemente usas "tablaname", no
> "schema.tablename"), porque si lo haces entonces el nombre del esquema
> no va a ser el correcto cuando la aplicacion se conecte a otro proceso
> servidor.

estoy completamente de acuerdo y asi tambien esta senalado en la
documentacion de postgresql, solo usar el nombre de la tabla, para las
consultas, pero no se si sea el psqlodbc, el ado, o el visual basic. al
hacer la consulta con solo el nombre de la tabla temporal, me devuelve
que esa tabla no existe y solo funciona usando schamaname.tablename

>
> > > > (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?)
> > >
> > > No.
> > No? que?, como los instalan los deb? o como desde el codigo, compilarlo
> > , instalarlo, etc?
>
> No, no es mejor tener el tar.gz. Usa el .deb si eso provee lo que
> necesitas. Una cosa es que el .deb de la distribucion estable provee
> una version algo antigua de Postgres, pero no vas a ganar mas
> confiabilidad simplemente por instalar desde el tarball.
>
>
> > > > En Linux en el psql, me decía Could not access status of transaction
> > > > 959346, al darle select * from tabla;
> > >
> > > Este es un error serio y me gustaria saber como hiciste para llegar a
> > > esta situacion.
> > Supongo que pudo haberce ocacionado, por el cierre o inicio inapropiado
> > de la base de datos, no se?
>
> No, en operacion normal (y eso incluye echar abajo el servidor, incluso
> cortar la energia abruptamente) no deberia pasar eso.

voy a hacer un chequeo fisico del disco, a ver si es por ahi el
problema.

>
> > > Siempre debes tener un respaldo reciente de tus datos. Para eso esta
> > > pg_dump. Ejecutarlo cada noche no hace dan~o.
> >
> > con el cron supongo?
>
> Si.
ok,

Pero una ves que pasa algo como esto. hay forma de recuperar la
informacion o a sido perdida para siempre?

claro, por lo menos la informacion generada desde el ultimo respaldo!!!

muchas gracias por todo.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Andrea Reyes 2004-08-20 19:34:42 Postgresql
Previous Message Alvaro Herrera 2004-08-20 17:35:30 Re: Base corrompida