Мой запрос (для создания новой таблицы из существующей таблицы) занимает очень много времени. Поэтому я установил удаленную базу данных в моем офисе - там больше оперативной памяти.
Я могу подключиться к своей базе данных из дома, как обычно, с помощью PSQL.
Как я могу сказать удаленному серверу выполнить мой запрос с терминала, не дожидаясь ответа?
(postgresql-9.2, среда Linux)
Изменить: я открыт для других решений, нет необходимости использовать PSQL
источник
tmux
так: «Смогу ли я завершить работу своего локального компьютера, и запрос все еще обрабатывается на удаленном сервере»?psql
это клиентское программное обеспечение работает Thats на локальном компьютере, а затемtmux
делаетssh
подключение к удаленной машине под управлением сервера Postgres? Если это так, я, к сожалению, понял, что это не будет работать с экземпляром Redshift без запуска EC2.Вы можете попробовать отправить
psql
в фоновом режиме:Или, подключившись к локальной БД, вы можете использовать
dblink
для отправки запроса на удаленную БД:Обратите внимание, что одновременно
dblink_send_query
можно отправлять только один запрос. Итак, если вы хотите запустить несколько операторов SQL, это не ваше решение.Или вы можете запустить
pg_agent
задание на удаленном сервере, которое не требует ручного вмешательства, поэтому состояние вашего домашнего ящика не влияет на выполнение задания. То же самое может быть достигнуто путем созданияcron
(или даже лучше,at
- спасибо, Эрвин) задания по выполнению вашего сценария.Кроме того, если у вас есть длительное задание, которое вы запускаете вручную, вы можете запустить
screen
сеанс на сервере и запустить файл оттуда. В этом случае вы можете выйти из системы и вернуться домой, и скрипт продолжит работу.источник
at
команда может служить вам лучше, чем cron.