Re: Base corrompida

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

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!

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.

> > > (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.

> > 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.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Some men are heterosexual, and some are bisexual, and some
men don't think about sex at all... they become lawyers" (Woody Allen)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Benjamin Roberto Alvarado Rivera 2004-08-20 17:43:41 Re: Base corrompida
Previous Message Benjamin Roberto Alvarado Rivera 2004-08-20 17:17:04 Re: Base corrompida