Hola chicos su ayuda con un tema

From: Juan Ochoa <juan(dot)ochoa(at)saviasoft(dot)com>
To: Jaime Casanova <jaime(at)2ndquadrant(dot)com>, ecpug(at)postgresql(dot)org
Subject: Hola chicos su ayuda con un tema
Date: 2013-08-28 15:01:56
Message-ID: CAF+COHtiff9=_kcauwPzJYXTReN8+JYSXa-+k1YR3RK5s63WLw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: ecpug

Necesito recrear una tabla desnormailizada por un tema de reportes, para
ello he escrito un script de linux *recrea_tabla.sh*, dentro de este script
hago lo siguiente:

#script para recrear la tabla sch_aspirante.aspirante_resumen_temp
function borraTable(){
echo "---borraTable ini: `date`"
psql -U postgres -d seleccion_personal -h localhost -p 5432 -w -c 'drop
table if exists sch_aspirante.aspirante_resumen_temp;'
echo "borraTable fin: `date`"
}

function recreaTable(){
echo "---recreaTable ini: `date`"
psql -U postgres -d seleccion_personal -h localhost -p 5432 -w -l -f
aspirante_tmp_OK/crea_aspirante_resumen_temp.sql
echo "recreaTable fin: `date`"
}

function vacuumTable(){
echo "---vacuumTable ini: `date`"
psql -U postgres -d seleccion_personal -h localhost -p 5432 -w -c
'vacuum full analyze sch_aspirante.aspirante_resumen_temp;'
echo "vacuumTable ini: `date`"
}

function insertaLog(){
psql -U postgres -d seleccion_personal -h localhost -p 5432 -w -c
"insert into sch_aspirante.log_funciones (error) values ('Se recrea tabla
sch_aspirante.aspirante_resumen_temp el: `date`');"
}

function ponerGrant(){
echo "---ponerGrant ini: `date`"
psql -U postgres -d seleccion_personal -h localhost -p 5432 -w -f
grant_aspirante_resumen_temp.sql
echo "ponerGrant fin: `date`"
}

function crearIndx(){
echo "---crearIndx ini: `date`"
psql -U postgres -d seleccion_personal -h localhost -p 5432 -w -c
'create index index_apirante ON sch_aspirante.aspirante_resumen_temp
(aspirante_id asc nulls last);'
echo "---crearIndx fin: `date`"
}

echo "INICIO recreacion tabla aspirante temp: `date`"
borraTable && recreaTable && crearIndx && ponerGrant && vacuumTable &&
insertaLog
echo "FIN recreacion tabla aspirante temp: `date`"

El problema que tengo es que cuando ejecuto el script desde la línea de
comando todo el proceso se realiza sin ningun problema y mi tabla es
recreada, esto dura mas o menos 4 minutos.

Ahora para hacer esto automático lo puse dentro de un *crontab* de linux
con el usuraio root para que se ejecute todos los días a la 1 de la mañana,
cuando se ejecuta el crontab, llama al script pero solo se borra la tabla y
no se vuelve a recrear, no tengo ningún error, pero de acuerdo a los los
que puse el proceso toma menos de 1 minuto algo que no es verdad.

La creación de la tabla lo hago con:

*create table sch_aspirante.aspirante_resumen_temp as*
select a.aspirante_id, a.aspirante_nro_documento as cedula,
(a.aspirante_apellido_paterno||' '||a.aspirante_apellido_materno||'
'||a.aspirante_primer_nombre ||' '|| a.aspirante_segundo_nombre) as nombre,
a.aspirante_email1 as email, aspirante_telefono1 as telefono,
a.srht_catalogos_ciudad_id as ciudad_id,
*
*
El crontab es así:*

0 1 * * * /aspirante_tmp_OK/recrea_aspirante_resumen_temp.sh >>
/var/log/crontab.log
*
*
*
Alguien me podria dar luces en este inconveniente.*

*
Saludos.*
*

--
Juan Ochoa
Arquitecto de Software
Savia·soft Cía. Ltda.
Telf: (593) 2 2279377 - (593) 958846526
Río Coca E5-16 e Isla Isabela.
Quito. Ecuador.

Responses

Browse ecpug by date

  From Date Subject
Next Message Jaime Casanova 2013-08-28 19:47:46 Re: Hola chicos su ayuda con un tema
Previous Message Jaime Casanova 2013-08-13 17:12:39 Re: Preparando el 3er PgDay Ecuador