Dies ist der Befehl pg_createcluster, der im kostenlosen OnWorks-Hosting-Provider 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
pg_createcluster - einen neuen PostgreSQL-Cluster erstellen
ZUSAMMENFASSUNG
pg_createcluster [Optionen] Version Name [-- initdb Optionen]
BESCHREIBUNG
pg_createcluster erstellt einen neuen PostgreSQL-Server-Cluster (dh eine Sammlung von Datenbanken
serviert von a Postmeister(1) Instanz) und integriert sie in den Multi-Version/Multi-Cluster
Architektur der postgresql-gemeinsam Paket.
Jeder Cluster wird durch seine Version und seinen Namen eindeutig identifiziert. Der Name kann beliebig sein.
Der Standardcluster, der bei der Installation eines Serverpakets erstellt wird, ist main. Jedoch,
Vielleicht möchten Sie andere Cluster zum Testen erstellen, mit anderen Superusern, einen Cluster für
jeder Benutzer auf einem gemeinsam genutzten Server usw. pg_createcluster bricht mit einem Fehler ab, wenn Sie es versuchen
Erstellen Sie einen Cluster mit einem Namen, der bereits für diese Version vorhanden ist.
Für Kompatibilität mit systemd Serviceeinheiten, der Clustername sollte keine enthalten
Striche (-). pg_ctlcluster wird vor dem Problem warnen, aber mit der Operation erfolgreich sein.
Angesichts eines großen PostgreSQL Version (wie "8.2" oder "8.3") und ein Cluster Name, es schafft die
notwendige Konfigurationsdateien in /etc/postgresql/Version/Name/; insbesondere sind dies
postgresql.conf, pg_ident.conf, pg_hba.conf, eine für Postgresql übliche spezifische Konfiguration
Datei start.conf (siehe STARTUP STEUERN unten), pg_ctl.conf und ein symbolisches Linkprotokoll, das
zeigt auf die Protokolldatei (standardmäßig /var/log/postgresql/postgresql-Version-Name.Protokoll).
postgresql.conf wird automatisch angepasst, um den nächsten verfügbaren Port zu verwenden, dh den ersten
Port (ab 5432), der noch nicht von einem bereits bestehenden Cluster verwendet wird.
Falls das Datenverzeichnis noch nicht existiert, wird PostgreSQLs initdb(1) Befehl wird verwendet, um
eine neue Clusterstruktur generieren. Falls das Datenverzeichnis bereits existiert, wird es eingebunden
in die postgresql-gemeinsam Struktur durch Verschieben der Konfigurationsdatei und Setzen der
data_directory-Option. Bitte beachten Sie, dass dies einzige funktioniert für Datenverzeichnisse, die
direkt erstellt mit initdb, also alle Konfigurationsdateien (postgresql.conf etc.)
muss im Datenverzeichnis vorhanden sein.
Wenn ein benutzerdefiniertes Socket-Verzeichnis angegeben wird und es nicht existiert, wird es erstellt.
Wenn die Protokolldatei nicht existiert, wird sie erstellt. In jedem Fall werden die Berechtigungen angepasst an
Erlauben Sie dem Clusterbesitzer Schreibzugriff. Bitte beachten Sie, dass postgresql.conf sein kann
angepasst, um log_directory und/oder log_filename anzugeben; wenn mindestens eine dieser Optionen
vorhanden ist, wird das Symbolic Link Log im Cluster-Konfigurationsverzeichnis ignoriert.
Wenn das Standard-Snakeoil-SSL-Zertifikat vorhanden ist (/etc/ssl/certs/ssl-cert-snakeoil.pem und
/etc/ssl/private/ssl-cert-snakeoil.key) und der postgres-Benutzer befindet sich im ssl-cert Unix
Gruppe, pg_createcluster konfiguriert den Cluster für die Verwendung dieses Zertifikats und aktiviert SSL.
Daher verwenden alle Cluster standardmäßig dasselbe SSL-Zertifikat. Für Versionen bis
9.1 werden Symlinks im Datenverzeichnis erstellt (server.crt und server.key); für 9.2
und später werden die entsprechenden postgresql.conf-Optionen gesetzt (ssl_cert_file und
ssl_key_file). Natürlich können Sie dies durch ein clusterspezifisches Zertifikat ersetzen.
Ähnlich für /etc/postgresql-common/root.crt und /etc/postgresql-common/root.crl sind diese
Dateien werden als Client-Zertifikat-CA und Sperrliste, falls vorhanden, konfiguriert.
(root.crt ist zunächst ein Platzhalter, der nur verwendet wird, wenn echte Zertifikate hinzugefügt werden
zur Datei.)
OPTIONAL
-u Benutzer, --user=Benutzer
Setzen Sie den Benutzer, der den Cluster besitzt und der Datenbank-Superuser wird, auf den angegebenen Namen
oder uid. Standardmäßig ist dies der Benutzer Postgres. Ein Cluster darf nicht im Besitz von Root sein.
-g Gruppe, --Gruppe=Gruppe
Ändern Sie die Gruppe der Cluster-bezogenen Datendateien. Standardmäßig ist dies der
primäre Gruppe des Datenbankbesitzers.
-d dir, --datadir=dir
Legen Sie explizit den Datenverzeichnispfad fest, der zum Speichern aller aktuellen
Datenbanken und Tabellen. Dies wird ziemlich groß (leicht in der Größenordnung des Fünffachen)
die Menge der im Cluster gespeicherten tatsächlichen Daten). Standardmäßig auf
/var/lib/postgresql/Version/Gruppe.
-s dir, --socketdir=dir
Legen Sie explizit das Verzeichnis fest, in dem die Postmeister(1) Server speichert den Unix-Socket für
lokale Verbindungen. Standardmäßig /var/run/postgresql/ für Cluster im Besitz des Benutzers
Postgres und / Tmp für Cluster, die anderen Benutzern gehören. Bitte beachten Sie, dass / Tmp ist ein
unsicheres Verzeichnis, da jeder dort einen Socket erstellen und sich als den ausgeben kann
Datenbankserver. Existiert das angegebene Verzeichnis nicht, wird es mit entsprechendem . erstellt
Berechtigungen.
-l Weg, --logfile=Weg
Legen Sie explizit den Pfad für die . fest Postmeister(1) Serverprotokolldatei. Standardmäßig auf
/var/log/postgresql/postgresql-Version-Gruppe.Protokoll.
--Gebietsschema=lokal
Legen Sie das Standardgebietsschema für den Datenbankcluster fest. Wenn diese Option nicht angegeben ist, wird die
locale wird von der Umgebung geerbt, die pg_createcluster läuft ein.
--lc-collate=lokal
--lc-ctype=lokal
--lc-messages=lokal
--lc-monetary=lokal
--lc-numeric=lokal
--lc-time=lokal
Like - Gebietsschema, legt aber nur das Gebietsschema in der angegebenen Kategorie fest.
-e Codierung, --encoding=Codierung
Wählen Sie die Kodierung der Vorlagendatenbank aus. Dies wird auch die Standardcodierung sein
einer Datenbank, die Sie später erstellen, es sei denn, Sie überschreiben sie dort. Die Vorgabe ist abgeleitet
aus dem Gebietsschema oder SQL_ASCII, wenn das nicht funktioniert. Die von . unterstützten Zeichensätze
der PostgreSQL-Server sind in der Dokumentation beschrieben.
Hinweis: Es wird nicht empfohlen, diese Option direkt zu setzen! Legen Sie stattdessen das Gebietsschema fest.
-p port , --port=port
Wählen Sie den Port aus, auf dem der neue Cluster lauscht (für den Unix-Socket und den TCP-Port);
dies muss eine Zahl zwischen 1024 und 65535 sein, da PostgreSQL nicht als Root ausgeführt wird
und benötigt daher eine unprivilegierte Portnummer. Standardmäßig startet der nächste freie Port
ab 5432 ist belegt.
--Anfang
Starten Sie sofort einen Server für den Cluster, nachdem Sie ihn erstellt haben (dh rufen Sie pg_ctlcluster auf
Version Gruppe damit anfangen). Standardmäßig wird der Cluster nicht gestartet.
--start-conf=auto|manuell|behindert
Legen Sie den Anfangswert in der Konfigurationsdatei start.conf fest. Sehen STARTUP STEUERN unten mit.
Standardmäßig Auto verwendet wird, was bedeutet, dass der Cluster von
/etc/init.d/postgresql, dh startet und stoppt automatisch beim Systemstart.
-o Leistung=Wert, --pgoption Leistung=Wert
Konfigurationsoption zum Festlegen in der neuen Datei postgresql.conf.
--createclusterconf=Datei
Alternative createcluster.conf Datei zu verwenden. Standard ist
/etc/postgresql-common/createcluster.conf (oder $PGSYSCONFDIR/createcluster.conf).
--Umgebung=Datei
Alternativer Standard -Umgebung Datei zu verwenden. Standard ist
/etc/postgresql-common/environment (oder $PGSYSCONFDIR/environment). Wenn die Datei
fehlt, wird eine Platzhalterzeichenfolge verwendet. %v und %c werden ersetzt; siehe STANDARDWERTE
unten mit.
-- initdb Optionen
Optionen direkt an . übergeben initdb(1).
Standardmäßig pg_createcluster aktualisiert die von initdb generierte Datei pg_hba.conf auf
Peer-Authentifizierung bei lokalen (Unix)-Verbindungen und md5 bei TCP (Host) verwenden
Verbindungen. Wenn die explizite Authentifizierungskonfiguration hier enthalten ist (-A, --auth,
--auth-host, --auth-local), bleibt die Datei pg_hba.conf unberührt.
STARTUP STEUERN
Die Datei start.conf im Cluster-Konfigurationsverzeichnis steuert den Start/Stopp
Verhalten des Postmaster-Prozesses dieses Clusters. Die Datei kann Kommentarzeilen enthalten (gestartet
mit '#'), Leerzeilen und muss genau eine Zeile mit einem der folgenden Schlüsselwörter enthalten:
Auto
Der Postmaster-Prozess wird im Init-Skript automatisch gestartet/gestoppt. Das ist
auch die Standardeinstellung, wenn die Datei fehlt.
manuell
Der Postmaster-Prozess wird nicht vom Init-Skript abgewickelt, sondern manuell gesteuert
Cluster mit pg_ctlcluster(1) ist zulässig.
behindert
Weder das Init-Skript noch pg_ctlcluster(1) dürfen den Cluster starten/stoppen.
Beachten Sie, dass dies den Clusterbesitzer nicht daran hindert, eine niedrigere Ebene anzurufen
Tools zur Steuerung des Postmaster-Prozesses; diese Option soll nur verhindern
Unfälle bei der Wartung, mehr nicht.
Die Datei pg_ctl.conf im Cluster-Konfigurationsverzeichnis kann zusätzliche Optionen enthalten
an pg_ctl dieses Clusters übergeben.
DEFAULT WERTE
Einige Standardwerte verwendet von pg_createcluster kann geändert werden in
/etc/postgresql-common/createcluster.conf. Vorkommen von %v werden durch den Major ersetzt
Versionsnummer und %c nach dem Clusternamen. Verwenden %% für ein wörtliches %.
create_main_cluster (Standard: was immer dies auch sein sollte.)
Erstellen Sie Haupt- Cluster, wenn ein neues Postgresql-xy-Serverpaket installiert wird.
start_conf (Standard: Auto)
Zu verwendender Standardwert für start.conf.
Datenverzeichnis (Standard: /var/lib/postgresql/%v/%c)
Standarddatenverzeichnis.
xlogdir (Standard: nicht gesetzt)
Standardverzeichnis für Transaktionsprotokolle. Wenn benutzt, initdb erstellt einen Symlink von
pg_xlog im Datenverzeichnis an diesen Ort. Standardmäßig deaktiviert, dh pg_xlog ist
bleibt im Datenverzeichnis.
initdb_options (Standard: nicht gesetzt)
Andere Optionen zum Weitergeben an initdb.
Andere Optionen
Alle anderen aufgelisteten Optionen werden in die postgresql.conf des neuen Clusters kopiert, zB:
listen_addresses = '*'
log_line_prefix = '%%t '
Einige Optionen von postgresql.conf werden speziell behandelt:
ssl Wird nur zu postgresql.conf hinzugefügt, wenn die Standard-Snakeoil-Zertifikate existieren und sind
für den Clusterbesitzer lesbar, wie oben beschrieben.
stats_temp_directory
Wird nur zu postgresql.conf hinzugefügt, falls vorhanden und für den Clusterbesitzer beschreibbar, oder
Sonst, wenn das übergeordnete Verzeichnis beschreibbar ist.
Verwenden Sie pg_createcluster online mit den onworks.net-Diensten
