Dies ist der Befehl Postgres, der im kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows Online-Emulator oder MAC OS Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
postgres - PostgreSQL-Datenbankserver
ZUSAMMENFASSUNG
Postgres [ganz ohne irgendetwas tun oder drücken zu müssen....]
BESCHREIBUNG
Postgres ist der PostgreSQL-Datenbankserver. Damit eine Client-Anwendung auf eine
Datenbank verbindet es (über ein Netzwerk oder lokal) mit einem laufenden Postgres Instanz. Die
Postgres Die Instanz startet dann einen separaten Serverprozess, um die Verbindung zu handhaben.
Eins Postgres Instanz verwaltet immer die Daten genau eines Datenbankclusters. Eine Datenbank
Ein Cluster ist eine Sammlung von Datenbanken, die an einem gemeinsamen Dateisystemspeicherort gespeichert sind (der
„Datenbereich“). Mehr als ein Postgres Instanz kann auf einem System gleichzeitig ausgeführt werden, solange
Sie verwenden unterschiedliche Datenbereiche und unterschiedliche Kommunikationsports (siehe unten). Wenn Postgres
Beginnt, muss der Speicherort des Datenbereichs bekannt sein. Der Speicherort muss durch
die -D Option oder die PGDATEN Umgebungsvariable; es gibt keinen Standardwert. Normalerweise -D or
PGDATEN zeigt direkt auf das Datenbereichsverzeichnis, das von initdb(1). Andere mögliche
Dateilayouts werden in Abschnitt 18.2, „Dateispeicherorte“, in der Dokumentation erläutert.
Standardmäßig Postgres startet im Vordergrund und druckt Protokollmeldungen in die Standardfehlerdatei
Strom. In praktischen Anwendungen Postgres sollte als Hintergrundprozess gestartet werden,
möglicherweise beim Booten.
Die Postgres Der Befehl kann auch im Einzelbenutzermodus aufgerufen werden. Die Hauptverwendung für diesen Modus
ist während des Bootstrappings durch initdb(1). Manchmal wird es zum Debuggen oder für Katastrophen verwendet
Wiederherstellung; beachten Sie, dass der Betrieb eines Einzelbenutzerservers nicht wirklich zum Debuggen des
Server, da keine realistische Interprozesskommunikation und Sperrung stattfinden wird. Wenn
Im Einzelbenutzermodus von der Shell aus aufgerufen, kann der Benutzer Abfragen eingeben und die Ergebnisse
wird auf dem Bildschirm ausgegeben, aber in einer Form, die für Entwickler nützlicher ist als für Endbenutzer.
Benutzer. Im Einzelbenutzermodus wird der Sitzungsbenutzer auf den Benutzer mit der ID 1 gesetzt und
Diesem Benutzer werden implizite Superuser-Befugnisse gewährt. Dieser Benutzer muss nicht
existieren, so dass der Einzelbenutzermodus verwendet werden kann, um bestimmte Arten von
versehentliche Beschädigung der Systemkataloge.
OPTIONAL
Postgres akzeptiert die folgenden Befehlszeilenargumente. Für eine detaillierte Erläuterung der
Optionen finden Sie in Kapitel 18, Serverkonfiguration in der Dokumentation. Sie können
die meisten dieser Optionen durch Einrichten einer Konfigurationsdatei eingeben. Einige (sichere) Optionen können
kann auch vom verbindenden Client anwendungsabhängig so eingestellt werden, dass nur für
dieser Sitzung. Wenn beispielsweise die Umgebungsvariable PGOPTIONEN gesetzt ist, dann libpq-basiert
Clients übergeben diese Zeichenfolge an den Server, der sie als interpretiert Postgres
Befehlszeilenoptionen.
Allgemein Zweck
-B Puffer
Legt die Anzahl der gemeinsam genutzten Puffer für die Serverprozesse fest. Der Standardwert
Dieser Parameter wird automatisch von initdb gewählt. Die Angabe dieser Option ist
entspricht dem Festlegen des Konfigurationsparameters shared_buffers.
-c Name=Wert
Legt einen benannten Laufzeitparameter fest. Die von PostgreSQL unterstützten Konfigurationsparameter
werden in Kapitel 18, Serverkonfiguration, in der Dokumentation beschrieben. Die meisten
andere Kommandozeilenoptionen sind tatsächlich Kurzformen einer solchen Parameterzuweisung. -c
kann mehrmals erscheinen, um mehrere Parameter festzulegen.
-C Name
Gibt den Wert des angegebenen Laufzeitparameters aus und beendet das Programm. (Siehe die -c Option oben
für Details.) Dies kann auf einem laufenden Server verwendet werden und gibt Werte zurück von
postgresql.conf, modifiziert durch die in diesem Aufruf angegebenen Parameter. Es
spiegeln die Parameter wider, die beim Starten des Clusters angegeben wurden.
Diese Option ist für andere Programme gedacht, die mit einer Serverinstanz interagieren, wie beispielsweise
pg_ctl(1) zur Abfrage von Konfigurationsparameterwerten. Benutzerorientierte Anwendungen sollten
verwenden Sie stattdessen SHOW(7) oder die pg_settings-Ansicht.
-d Debug-Ebene
Legt die Debug-Stufe fest. Je höher dieser Wert eingestellt ist, desto mehr Debug-Ausgaben werden
in das Serverprotokoll geschrieben. Die Werte liegen zwischen 1 und 5. Es ist auch möglich, -d 0 zu übergeben
für eine bestimmte Sitzung, wodurch die Server-Protokollebene des übergeordneten Postgres
Prozess wird nicht auf diese Sitzung übertragen.
-D datadir
Gibt den Speicherort der Datenbankkonfigurationsdateien im Dateisystem an. Siehe Abschnitt
Weitere Informationen finden Sie in der Dokumentation unter 18.2, „Dateispeicherorte“.
-e
Legt den Standarddatumsstil auf „Europäisch“ fest, d. h. die DMY-Reihenfolge der eingegebenen Datumsfelder.
Dies führt auch dazu, dass bei bestimmten Datumsausgaben der Tag vor dem Monat gedruckt wird
Formate. Weitere Informationen finden Sie in Abschnitt 8.5, „Datums-/Zeittypen“, in der Dokumentation
Informationen.
-F
Deaktiviert fsync erfordert eine verbesserte Leistung, mit der Gefahr einer Datenbeschädigung in der
Bei einem Systemabsturz. Die Angabe dieser Option entspricht der Deaktivierung des fsync
Konfigurationsparameter. Lesen Sie vor der Verwendung die ausführliche Dokumentation!
-h hostname
Gibt den IP-Hostnamen oder die Adresse an, auf der Postgres ist das Abhören von TCP/IP
Verbindungen von Client-Anwendungen. Der Wert kann auch eine durch Kommas getrennte Liste von
Adressen oder *, um das Abhören aller verfügbaren Schnittstellen anzugeben. Ein leerer Wert
gibt an, dass keine IP-Adressen abgehört werden, in diesem Fall nur Unix-Domain-Sockets
kann verwendet werden, um eine Verbindung zum Server herzustellen. Standardmäßig wird nur auf dem lokalen Host gelauscht.
Das Angeben dieser Option entspricht dem Festlegen der Konfiguration „listen_addresses“
Parameters.
-i
Ermöglicht Remote-Clients die Verbindung über TCP/IP (Internetdomäne). Ohne
Mit dieser Option werden nur lokale Verbindungen akzeptiert. Diese Option entspricht der Einstellung
Listen_Adressen zu * in postgresql.conf oder über -h.
Diese Option ist veraltet, da sie keinen Zugriff auf die volle Funktionalität von
listen_addresses. Normalerweise ist es besser, Listen_Adressen direkt.
-k Verzeichnis
Gibt das Verzeichnis des Unix-Domain-Sockets an, auf dem Postgres ist zuzuhören
Verbindungen von Client-Anwendungen. Der Wert kann auch eine durch Kommas getrennte Liste von
Verzeichnisse. Ein leerer Wert gibt an, dass keine Unix-Domain-Sockets abgehört werden,
In diesem Fall können nur TCP/IP-Sockets für die Verbindung zum Server verwendet werden. Der Standardwert
ist normalerweise / Tmp, aber das kann zur Build-Zeit geändert werden. Die Angabe dieser Option ist
entspricht dem Festlegen des Konfigurationsparameters unix_socket_directories.
-l
Ermöglicht sichere Verbindungen über SSL. PostgreSQL muss mit Unterstützung kompiliert worden sein
für SSL, damit diese Option verfügbar ist. Weitere Informationen zur Verwendung von SSL finden Sie unter
Abschnitt 17.9, „Sichere TCP/IP-Verbindungen mit SSL“, in der Dokumentation.
-N maximale Anzahl an Verbindungen
Legt die maximale Anzahl von Client-Verbindungen fest, die dieser Server akzeptiert.
Der Standardwert dieses Parameters wird automatisch von initdb gewählt. Die Angabe dieses
Die Option entspricht der Einstellung des Konfigurationsparameters max_connections.
-o Extra-Optionen
Die in Extra-Optionen werden an alle Server weitergeleitet
Prozesse, die dadurch gestartet werden Postgres
Räume innerhalb Extra-Optionen werden als separate Argumente betrachtet, sofern sie nicht mit maskiert werden
einen Backslash (\); schreiben Sie \\, um einen wörtlichen Backslash darzustellen. Mehrere Argumente können
auch durch Mehrfachverwendung von -o.
Die Verwendung dieser Option ist veraltet; alle Kommandozeilenoptionen für Serverprozesse können
direkt auf der Postgres Befehlszeile.
-p port
Gibt den TCP/IP-Port oder die lokale Unix-Domain-Socket-Dateierweiterung an, auf der Postgres
dient zum Abhören von Verbindungen von Client-Anwendungen. Der Standardwert ist der Wert von
PGPORT Umgebungsvariable oder wenn PGPORT nicht gesetzt ist, wird standardmäßig der Wert
während der Kompilierung festgelegt (normalerweise 5432). Wenn Sie einen anderen Port als den
Standardport, dann müssen alle Client-Anwendungen denselben Port angeben, entweder
Befehlszeilenoptionen oder PGPORT.
-s
Geben Sie am Ende jedes Befehls Zeitinformationen und andere Statistiken aus. Dies ist nützlich
zum Benchmarking oder zur Optimierung der Pufferanzahl.
-S Arbeitsspeicher
Gibt die Speichermenge an, die von internen Sortierungen und Hashes verwendet werden soll, bevor
auf temporäre Dateien zurückgreifen. Siehe die Beschreibung des work_mem Konfiguration
Parameter in Abschnitt 18.4.1, „Speicher“, in der Dokumentation.
-V
--Version
Drucken Sie die Postgres-Version und beenden Sie das Programm.
--Name=Wert
Legt einen benannten Laufzeitparameter fest; eine kürzere Form von -c.
--describe-config
Diese Option gibt die internen Konfigurationsvariablen, Beschreibungen und
Standardmäßig in Tabulator-getrennten COPY Format. Es ist in erster Linie für die Verwendung durch
Verwaltungstools.
-?
--help
Hilfe zu den Befehlszeilenargumenten von Postgres anzeigen und beenden.
Halbintern Optionen
Die hier beschriebenen Optionen werden hauptsächlich für Debugging-Zwecke verwendet und in einigen Fällen auch, um
Unterstützung bei der Wiederherstellung schwer beschädigter Datenbanken. Es sollte keinen Grund geben, sie zu verwenden
in einer Produktionsdatenbank-Konfiguration. Sie sind hier nur für die Verwendung durch PostgreSQL-System aufgeführt
Entwickler. Darüber hinaus könnten sich diese Optionen in einer zukünftigen Version ändern oder entfernen
ohne vorherige Ankündigung.
-f { s | i | o | b | t | n | m | h }
Verbietet die Verwendung bestimmter Scan- und Join-Methoden: s und i deaktivieren sequentielle und
Index-Scans bzw. o, b und t deaktivieren Index-Only-Scans, Bitmap-Index-Scans und
TID-Scans bzw. n, m und h deaktivieren Nested-Loop-, Merge- und Hash-Joins
beziehungsweise.
Weder sequentielle Scans noch Nested-Loop-Joins können vollständig deaktiviert werden; die Optionen -fs und
Die Option -fn hält den Optimierer lediglich davon ab, diese Plantypen zu verwenden, wenn er welche hat
andere Alternative.
-n
Diese Option dient zum Debuggen von Problemen, die zu einem abnormalen Abbruch eines Serverprozesses führen.
Die übliche Strategie in dieser Situation besteht darin, alle anderen Serverprozesse zu benachrichtigen,
Sie müssen den gemeinsamen Speicher und die Semaphoren beenden und anschließend neu initialisieren. Dies ist
weil ein fehlerhafter Serverprozess zuvor einen gemeinsamen Status beschädigt haben könnte
beendet. Diese Option gibt an, dass Postgres wird freigegebene Daten nicht neu initialisieren
Strukturen. Ein erfahrener Systemprogrammierer kann dann einen Debugger verwenden, um zu untersuchen
gemeinsam genutzter Speicher und Semaphorstatus.
-O
Ermöglicht die Änderung der Struktur von Systemtabellen. Dies wird verwendet von initdb.
-P
Ignorieren Sie Systemindizes beim Lesen von Systemtabellen, aktualisieren Sie die Indizes jedoch weiterhin, wenn
Ändern der Tabellen. Dies ist nützlich bei der Wiederherstellung beschädigter Systemindizes.
-t Pa[rser] | Plan[anner] | Ausführer]
Drucken Sie Zeitstatistiken für jede Abfrage, die sich auf jedes der Hauptsystemmodule bezieht.
Diese Option kann nicht zusammen mit der -s .
-T
Diese Option dient zum Debuggen von Problemen, die zu einem abnormalen Abbruch eines Serverprozesses führen.
Die übliche Strategie in dieser Situation besteht darin, alle anderen Serverprozesse zu benachrichtigen,
Sie müssen den gemeinsamen Speicher und die Semaphoren beenden und anschließend neu initialisieren. Dies ist
weil ein fehlerhafter Serverprozess zuvor einen gemeinsamen Status beschädigt haben könnte
beendet. Diese Option gibt an, dass Postgres stoppt alle anderen Serverprozesse
durch das Senden des Signals SIGSTOP, führt aber nicht zur Beendigung. Dies ermöglicht
Systemprogrammierer können Core Dumps aller Serverprozesse manuell erfassen.
-v Protokoll
Gibt die Versionsnummer des Frontend/Backend-Protokolls an, das für eine
bestimmte Sitzung. Diese Option ist nur für den internen Gebrauch bestimmt.
-W Sekunden
Eine Verzögerung von so vielen Sekunden tritt auf, wenn ein neuer Serverprozess gestartet wird, nachdem er
führt das Authentifizierungsverfahren durch. Dies soll die Möglichkeit geben,
mit einem Debugger an den Serverprozess anhängen.
Optionen für Einzelnutzer Model
Die folgenden Optionen gelten nur für den Einzelbenutzermodus.
--Einzel
Wählt den Einzelbenutzermodus. Dies muss das erste Argument in der Befehlszeile sein.
Datenbank
Gibt den Namen der Datenbank an, auf die zugegriffen werden soll. Dies muss das letzte Argument sein
die Befehlszeile. Wenn es weggelassen wird, wird standardmäßig der Benutzername verwendet.
-E
Alle Befehle wiederholen.
-j
Deaktiviert die Verwendung einer neuen Zeile als Anweisungstrennzeichen.
-r Dateinamen
Senden Sie alle Serverprotokollausgaben an DateinamenDiese Option wird nur berücksichtigt, wenn sie als
Befehlszeilenoption.
PGCLIENTENCODIERUNG
Standardmäßige Zeichenkodierung, die von Clients verwendet wird. (Die Clients können diese
individuell.) Dieser Wert kann auch in der Konfigurationsdatei festgelegt werden.
PGDATEN
Standardspeicherort des Datenverzeichnisses
PGDATESTYLE
Standardwert des Laufzeitparameters DateStyle. (Die Verwendung dieser Umgebung
Variable ist veraltet.)
PGPORT
Standard-Portnummer (vorzugsweise in der Konfigurationsdatei festgelegt)
TZ
Server-Zeitzone
DIAGNOSE
Eine Fehlermeldung mit der Erwähnung von semget oder shmget weist wahrscheinlich darauf hin, dass Sie konfigurieren müssen
Ihr Kernel muss ausreichend gemeinsamen Speicher und Semaphoren bereitstellen. Weitere Informationen finden Sie unter
Abschnitt 17.4, „Verwaltung von Kernel-Ressourcen“, in der Dokumentation. Möglicherweise können Sie
Verschieben Sie die Neukonfiguration Ihres Kernels, indem Sie shared_buffers verringern, um die gemeinsam genutzten
Speicherverbrauch von PostgreSQL und/oder durch Reduzierung von max_connections, um die
Semaphorverbrauch.
Eine Fehlermeldung, die darauf hinweist, dass bereits ein anderer Server läuft, sollte überprüft werden
sorgfältig, zum Beispiel mit dem Befehl
$ ps ax | grep Postgres
or
$ ps -wenn | grep Postgres
abhängig von Ihrem System. Wenn Sie sicher sind, dass kein Konfliktserver läuft,
Sie können die in der Meldung erwähnte Sperrdatei entfernen und es erneut versuchen.
Eine Fehlermeldung, die angibt, dass keine Verbindung zu einem Port hergestellt werden kann, kann darauf hinweisen, dass dieser Port
bereits von einem Nicht-PostgreSQL-Prozess verwendet wird. Dieser Fehler kann auch auftreten, wenn Sie
kündigen Postgres und starten Sie es sofort über denselben Port neu. In diesem Fall müssen Sie
Warten Sie einfach einige Sekunden, bis das Betriebssystem den Port schließt, bevor Sie es erneut versuchen.
Schließlich kann dieser Fehler auftreten, wenn Sie eine Portnummer angeben, die Ihr Betriebssystem
als reserviert betrachtet. Beispielsweise betrachten viele Unix-Versionen Portnummern unter
1024 als „vertrauenswürdig“ zu betrachten und nur dem Unix-Superuser den Zugriff darauf zu gestatten.
ANMERKUNG
Der Utility-Befehl pg_ctl(1) dient zum Starten und Herunterfahren des Postgres Server
sicher und komfortabel.
Wenn möglich, do nicht Verwenden Sie SIGKILL, um das Hauptgerät zu töten. Postgres Server. Dadurch wird
verhindern Postgres von der Freigabe der Systemressourcen (z. B. gemeinsam genutzter Speicher und Semaphoren)
dass es hält, bevor es beendet wird. Dies könnte Probleme beim Starten eines neuen Postgres
laufen.
Zum Beenden des Postgres Server normalerweise können die Signale SIGTERM, SIGINT oder SIGQUIT
verwendet. Die erste Option wartet, bis alle Clients beendet sind, bevor sie beendet wird, die zweite
alle Clients zwangsweise trennen, und der dritte wird sofort beendet, ohne ordnungsgemäße
Herunterfahren, was zu einem Wiederherstellungslauf während des Neustarts führt.
Das SIGHUP-Signal lädt die Serverkonfigurationsdateien neu. Es ist auch möglich,
SIGHUP zu einem einzelnen Serverprozess, aber das ist normalerweise nicht sinnvoll.
Um eine laufende Abfrage abzubrechen, senden Sie das SIGINT-Signal an den Prozess, der diesen Befehl ausführt. Um
Um einen Backend-Prozess sauber zu beenden, senden Sie SIGTERM an diesen Prozess. Siehe auch
pg_cancel_backend und pg_terminate_backend in Abschnitt 9.26.2, „Server-Signalisierung
Funktionen“ in der Dokumentation zu den SQL-aufrufbaren Äquivalenten dieser beiden Aktionen.
Die Postgres Der Server verwendet SIGQUIT, um untergeordneten Serverprozessen mitzuteilen, dass sie beendet werden sollen, ohne
normale Reinigung. Dieses Signal sollte nicht von Benutzern verwendet werden. Es ist auch unklug, SIGKILL zu senden
zu einem Serverprozess – dem Hauptprozess Postgres Der Prozess interpretiert dies als Absturz und
erzwingt als Teil der Standardprozedur zur Wiederherstellung nach einem Systemabsturz das Beenden aller Geschwisterprozesse.
Verwenden Sie Postgres online mit den Diensten von onworks.net
