Meine Abfrage (um eine neue Tabelle aus einer vorhandenen Tabelle zu erstellen) dauert sehr lange. Also habe ich in meinem Büro eine entfernte Datenbank eingerichtet - dort mehr RAM.
Ich kann wie gewohnt von zu Hause aus mit psql eine Verbindung zu meiner Datenbank herstellen.
Wie kann ich den Remote-Server anweisen, meine Abfrage vom Terminal aus auszuführen, ohne auf eine Antwort warten zu müssen?
(postgresql-9.2, Linux-Umgebung)
Bearbeiten: Ich bin offen für andere Lösungen, es ist nicht notwendig, psql zu verwenden
quelle
tmux
dies folgendermaßen: " Kann ich meinen lokalen Computer herunterfahren und die Abfrage wird weiterhin auf dem Remote-Server verarbeitet?"psql
Wird Client-Software auf Ihrem lokalen Computer ausgeführt und stellt danntmux
einessh
Verbindung zu einem Remote-Computer her, auf dem ein Postgres-Server ausgeführt wird? Wenn dies der Fall ist, habe ich leider festgestellt, dass dies mit einer Redshift-Instanz nicht funktioniert, ohne dass auch ein EC2 ausgeführt wird.Sie können versuchen,
psql
in den Hintergrund zu senden :Wenn Sie eine Verbindung zur lokalen
dblink
Datenbank herstellen , können Sie eine Abfrage an die entfernte Datenbank senden:Beachten Sie, dass jeweils
dblink_send_query
nur eine Abfrage gesendet werden kann. Wenn Sie also mehrere SQL-Anweisungen ausführen möchten, ist dies nicht Ihre Lösung.Sie können auch einen
pg_agent
Job auf dem Remote-Server starten , für den keine manuellen Eingriffe erforderlich sind. Daher hat der Status Ihrer Home-Box keine Auswirkungen auf die Ausführung Ihres Jobs. Das gleiche kann erreicht werden, indem Sie einencron
(oder noch besser,at
- danke, Erwin) Job einrichten, der Ihr Skript ausführt.Wenn Sie einen Job mit langer Laufzeit haben, den Sie manuell starten, können Sie außerdem eine
screen
Sitzung auf dem Server starten und die Datei von dort aus ausführen. In diesem Fall können Sie sich abmelden und nach Hause gehen, und das Skript wird weiter ausgeführt.quelle
at
Befehl Ihnen besser dienen als cron.