Minha consulta (para criar uma nova tabela a partir da tabela existente) leva muito tempo. Então, eu configurei um banco de dados remoto no meu escritório - mais RAM lá.
Posso conectar-me ao meu banco de dados em casa, como de costume, com o psql.
Como posso dizer ao servidor remoto para executar minha consulta no terminal sem ter que esperar por uma resposta?
(postgresql-9.2, ambiente linux)
Edit: Estou aberto a outras soluções, não é necessário usar o psql
fonte
tmux
seguinte maneira: 'Conseguirei desligar minha máquina local e a consulta ainda será processada no servidor remoto'?psql
é o software cliente que está sendo executado em sua máquina local etmux
está fazendo assh
conexão com uma máquina remota executando um servidor postgres? Se for esse o caso, eu infelizmente percebi que isso não funcionará com uma instância do Redshift sem o EC2 sendo executado também.Você pode tentar enviar
psql
para o plano de fundo:Ou, conectando-se ao banco de dados local, você pode usar
dblink
para enviar uma consulta ao banco de dados remoto:Observe que
dblink_send_query
só é possível enviar uma consulta por vez. Portanto, se você deseja executar várias instruções SQL, essa não é a sua solução.Ou, você pode iniciar um
pg_agent
trabalho no servidor remoto, o que não requer intervenção manual; portanto, o estado da sua caixa inicial não afeta a execução do seu trabalho. O mesmo pode ser alcançado configurando um trabalhocron
(ou melhor ainda,at
- obrigado, Erwin) executando seu script.Além disso, se você tiver um trabalho de longa execução iniciado manualmente, poderá iniciar uma
screen
sessão no servidor e executar o arquivo a partir daí. Nesse caso, você pode fazer logoff e voltar para casa, e o script continuará sendo executado.fonte
at
comando pode atendê-lo melhor que o cron.