Problema al actualizar DB en Postgres
Alvaro Herrera
alvherre en alvh.no-ip.org
Vie Ago 13 11:54:13 CLT 2010
Excerpts from Marcelo Opazo Vivallos's message of vie ago 13 11:36:48 -0400 2010:
> Maestros,
>
> Les cuento que tengo un script que restaura una DB Postgres a traves de psql
> -f
> que no tiene problema alguno al ejecutarse. El problema radica cuando
> lo ejecuto a traves de cron, ya que no alcanza a finalizar y se corta
> a los 3 minutos aproximadamente, con el siguiente log:
>
> CLT LOG: 08P01: se encontró fin de archivo inesperado en la
> conexión del cliente
Qué extraño. ¿Y alcanza a ejecutar que quede en la BD, o no se ejecuta
en absoluto? Por tu descripción me da la impresión de que pasa lo
primero.
Si no ejecutara nada, yo pensaría que el problema es que psql no puede
conectarse, por ej. quizás queda esperando que ingreses la password por
el terminal y se queda colgado hasta que un timeout lo mata. Pero no
puede ser, porque no diría que se encontró el EOF.
Suena como que hay algo que está matando a psql inesperadamente. ¿Queda
algo en el stderr? Por favor muestra la línea de crontab que invoca
este script.
> Mi script es:
> psql -a -e -U technoline -d hidronor -f /backup/mirrow/$replica >>
> /root/script/log.pg
> date >> /root/script/log.pg
> echo $replica >> /root/script/log.pg
¿Quién define $replica? Lo que nos muestras está incompleto, quizás
haya algo mal en la parte que estás omitiendo.
Tu script es un poco malo porque no revisa los códigos de retorno de
cada programa. Quizás podrías hacer que fuera más chillón, prueba por
ej. poner "set -e" antes de invocar psql.
--
Álvaro Herrera <alvherre en alvh.no-ip.org>
Más información sobre la lista de distribución Linux