Discussion:
La base de datos entra en modo de recuperacion
Natalia Anadon
2007-05-28 16:26:43 UTC
Permalink
Hola, buen dia a todos!

Tengo una aplicacion en java que utiliza base de datos postgres.

El problema es el siguiente: se produce un error que hace entrar a la
base de datos en "modo de recuperacion" y luego, segundos despues la
base de datos se reinicia sola nuevamente.

Lo que necesito saber es: que puede ocurrirle a la base de datos que
entra en "modo de recuperacion"?

Las lineas de error son las siguientes:

A connection error has occurred: org.postgresql.util.PSQLException:
FATAL: the database system is in recovery mode

A connection error has occurred: org.postgresql.util.PSQLException:
FATAL: the database system is starting up

Gracias!!!

p.d: necesitaria tambien saber que informacion me muestra el archivo
"postmaster.pid", me muestra lo sigueiente y no se como interpretarlo:

3213
/usr/local/pg/sql/data
5432001 360448

Adios!!!
Natalia
Alvaro Herrera
2007-05-28 19:46:51 UTC
Permalink
Post by Natalia Anadon
Hola, buen dia a todos!
Tengo una aplicacion en java que utiliza base de datos postgres.
El problema es el siguiente: se produce un error que hace entrar a la
base de datos en "modo de recuperacion" y luego, segundos despues la
base de datos se reinicia sola nuevamente.
Lo que necesito saber es: que puede ocurrirle a la base de datos que
entra en "modo de recuperacion"?
Se cae por algun bug o comportamiento anómalo. En el log del servidor
deberia haber un mensaje anterior a ese que indica qué sucedió. No
deberia suceder. Quizas estas usando una version antigua con errores (o
una nueva con algun error no corregido), o bien tu servidor tiene
problemas de hardware.
Post by Natalia Anadon
p.d: necesitaria tambien saber que informacion me muestra el archivo
3213
El PID del postmaster en ejecucion
Post by Natalia Anadon
/usr/local/pg/sql/data
El directorio de datos (donde esta el archivo postmaster.pid)
Post by Natalia Anadon
5432001 360448
La llave (en decimal) y el ID del segmento de memoria compartida (que
puedes ver con la orden "ipcs", pero esta te muestra la llave en hex)
--
Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4
"El número de instalaciones de UNIX se ha elevado a 10,
y se espera que este número aumente" (UPM, 1972)
Alvaro Herrera
2007-05-28 21:30:46 UTC
Permalink
Natalia,

Por favor recuerda responder siempre con copia a la lista.
*** SQLException caught Vends.buscar() ***
SQLState: 08S01
Message: The backend has broken the connection. Possibly the action you
have attempted has caused it to close.
Ok, pero revisa el log de Postgres. Al momento de cerrar esta conexion
tiene que haber escrito una linea indicando por qué lo hizo. Puede que
haya recibido una señal por "falla de segmentación" (segmentation fault)
o porque quiso leer o escribir un archivo y no pudo hacerlo.
El metodo Vends.buscar() realiza una consulta a la base de datos, pero
no tiene errores de sintaxis y se ejecuta muchas veces sin problemas,
pero en algun momento falla.
Cuando me decis que puede ser algun problema de hardware, se te ocurre
algun ejemplo? Alguna vez tuviste un problema de hardware?
Por ejemplo, memoria RAM mala o disco duro fallado. Ambas cosas se
manifiestan aleatoriamente. Una idea por ej. sería que un problema
puntual del disco haya causado que un bloque de un índice se haya
corrompido. O bien un bloque en una tabla. O bien que una falla de
energía haya hecho que un bloque haya quedado mal escrito (raro a menos
que estes usando discos duros con cache de escritura activado, y sin
proteccion). Pero es imposible saber qué pasa sin ver lo que te dice el
log del servidor.

Los problemas puntuales los puedes arreglar (por ej. en el caso de los
indices con REINDEX), pero si no corriges tu problema de hardware (en
caso de ser cierta esa hipótesis), la proxima semana volveras a tener un
problema de este tipo.
--
Alvaro Herrera http://www.flickr.com/photos/alvherre/
Si no sabes adonde vas, es muy probable que acabes en otra parte.
Natalia Anadon
2007-05-28 19:09:13 UTC
Permalink
Alvaro: disculpa mi poca experiencia pero no se donde escribe los log
Postgres. Y buscando en el directorio donde esta instalado no encuentro
algo que tenga que ver con los logs.

Nuevamente gracias por la ayuda, realmente es muy amable de tu parte
tanta rapidez en la respuestas!!!
Saludos Cordiales!!!
Alvaro Herrera
2007-05-29 16:39:20 UTC
Permalink
Post by Natalia Anadon
Alvaro: disculpa mi poca experiencia pero no se donde escribe los log
Postgres. Y buscando en el directorio donde esta instalado no encuentro
algo que tenga que ver con los logs.
Es configurable. Examina el archivo postgresql.conf. Si activas la
opcion redirect_stderr los logs iran a parar al directorio de datos, en
un subdirectorio pg_log (pero puedes configurarlo para que vayan a otra
parte).
--
Alvaro Herrera http://www.PlanetPostgreSQL.org/
"No single strategy is always right (Unless the boss says so)"
(Larry Wall)
Loading...