Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

My query (to create a new table from existing table) takes a very long time. So I've set up a remote database in my office - more RAM there.

I can connect to my database from home as usual with psql.

How can I tell the remote server to execute my query from the terminal without having to wait for a response?

(postgresql-9.2 , linux enviroment)

Edit: I'm open to other solutions, it's not necessary to use psql

share|improve this question
add comment

2 Answers 2

up vote 3 down vote accepted

Since you state that you are open to other solutions I might suggest looking at terminal multiplexers such as screen or tmux. In my opinion tmux is a better choice due to its unique name (easier to get relevant hits in search engines).

Essentially this kind of software allows you to detach from a shell and later resume the session.

share|improve this answer
1  
Does tmux work this way: 'Will I be able to shutdown my local machine, and the query still get proccessed at the remote server' ? –  dezso Oct 16 '12 at 19:05
    
Yes, the session is running on the remote machine - a power outage or loss of internet connection is a non issue (in regard to the remote session :) ). Note that you need to start the process from within the terminal multiplexer (afaik). –  c0dem4gnetic Oct 16 '12 at 19:16
    
Good to know, thanks. –  dezso Oct 16 '12 at 19:19
add comment

You can try sending psql to the background:

psql -f your_sql_file.sql &

Or, connecting to the local DB, you can use dblink to dispatch a query to the remote DB:

SELECT dblink_connect('your_connection_name', 'your_connection_string');
SELECT dblink_send_query('your_connection_name', 'your_query');

Note that dblink_send_query can only send one query at a time. So, if you want to run multiple SQL statements, this is not your solution.

Or, you can start a pg_agent job on the remote server, which requires no manual intervention, therefore the state of your home box has no effect on running your job. The same can be achieved by setting up a cron (or even better, at - thanks, Erwin) job executing your script.

share|improve this answer
    
Will I be able to shutdown my local machine, and the query still get proccessed at the remote server using either options? –  user528025 Oct 4 '12 at 20:24
    
Please see the last paragraph I added. –  dezso Oct 4 '12 at 20:35
    
pg_agent looks promising enough. I will try it and update the results. –  user528025 Oct 4 '12 at 20:51
2  
Or, for a one-time operation, the at command might serve you better than cron. –  Erwin Brandstetter Oct 4 '12 at 21:31
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.