Mi consulta (para crear una nueva tabla a partir de una tabla existente) lleva mucho tiempo. Así que configuré una base de datos remota en mi oficina, más RAM allí.
Puedo conectarme a mi base de datos desde casa como de costumbre con psql.
¿Cómo puedo decirle al servidor remoto que ejecute mi consulta desde el terminal sin tener que esperar una respuesta?
(postgresql-9.2, entorno de linux)
Editar: estoy abierto a otras soluciones, no es necesario usar psql
fuente
tmux
esta manera: "¿Podré apagar mi máquina local y la consulta aún se procesará en el servidor remoto"?psql
¿se está ejecutando el software cliente en su máquina local y luego setmux
estássh
conectando a una máquina remota que ejecuta un servidor postgres? Si ese es el caso, lamentablemente me di cuenta de que esto no funcionará con una instancia de Redshift sin que también se ejecute un EC2.Puedes intentar enviar
psql
a segundo plano:O, conectándose a la base de datos local, puede usar
dblink
para enviar una consulta a la base de datos remota:Tenga en cuenta que
dblink_send_query
solo puede enviar una consulta a la vez. Por lo tanto, si desea ejecutar varias instrucciones SQL, esta no es su solución.O bien, puede iniciar un
pg_agent
trabajo en el servidor remoto, que no requiere intervención manual, por lo tanto, el estado de su cuadro de inicio no tiene ningún efecto en la ejecución de su trabajo. Lo mismo puede lograrse configurando un trabajocron
(o incluso mejor,at
gracias, Erwin) ejecutando su script.Además, si tiene un trabajo de larga duración que inicia manualmente, puede iniciar una
screen
sesión en el servidor y ejecutar el archivo desde allí. En este caso, puede cerrar sesión e irse a casa, y el script seguirá ejecutándose.fuente
at
comando podría servirle mejor que cron.