Neue Instanz erstellen?

servitor84

Neuer Benutzer
Beiträge
3
Hallo,

ich möchte fragen, wie ich anhand pgadmin eine neue Instanz in postgres erstellen kann.
Muss ich zuerst etwas installieren?

Danke im Voraus

Gruß
Servitor84
 
Werbung:
Was genau meinst Du, eine neue Instanz? Also einen neuen PG-Cluster, der dann auf einem anderen Port und mit einem anderen Datenverzeichniss läuft?
Was für ein OS?

Typischerweise macht man ja sowas, um z.B. verschiedene Versionen zu haben, in Debian-Systemen oder auch RH-basierten geht das relativ einfach, und ja, muß man halt installieren.
 
Ja genau! Also ich möchte einen PG-Cluster erstellen, weil ich was testen möchten.
Mein OS ist Windows 7.
Könntest du mir bitte sagen, wie ich vorgehen muss. Danke!
 
Werbung:
Das geht eigentlich genauso wie unter allen andere Betriebssystemen auch.

initdb aufrufen um das Datenverzeichnis (=Cluster/Instanz) zu erstellen, dabei sicherstellen dass ein anderer TCP Port verwendet wird.
Wenn die Instanz automatisch gestartet werden soll, dann noch einen Windows Service erstellen.

Mit dem folgenden Befehl wird ein neues Datenverzeichnis unter c:\Daten\Postgres\inst2 erstellt und als Authentifizierungsmethode "MD5" gewählt:
Code:
"c:\Program Files\PostgreSQL\10\bin\initdb.exe" -U postgres -D c:\Daten\Postgres\inst2 -E UTF8 -A md5

initdb fragt dann nach dem Passwort des superusers "postgres". Das musst Du dann manuell eingeben (und merken!)

Am sichersten ist es wenn Du dann c:\Daten\Postgres\inst2\postgresql.conf editierst und den TCP Port auf etwas anderes als 5432 änderst. Z.B. 5433

Wenn Du die Instanz immer manuell starten und stoppen willst, brauchst Du nichts weiter tun.

Starten geht dann mit:
Code:
"c:\Program Files\PostgreSQL\10\bin\pg_ctl.exe" start -D c:\Daten\Postgres\inst2

Stoppen mit:
Code:
"c:\Program Files\PostgreSQL\10\bin\pg_ctl.exe" stop -D c:\Daten\Postgres\inst2


Der Windows Service wird auch über pg_ctl eingerichtet:
Code:
"c:\Program Files\PostgreSQL\10\bin\pg_ctl.exe" register -D c:\Daten\Postgres\inst2 -N PostgresInstanz2
Das geht natürlich nur wenn Du vorher die Kommandozeile als Administrator gestartet hast (alle anderen Befehle solltest Du nicht als Administrator ausführen!)

Falls der Service nicht startet, musst Du die Berechtigungen auf dem Datenverzeichnis überprüfen. In 90% der Fälle ist das der Grund warum eine derart installierte Instanz nicht startet.

Details zu initdb und pg_ctl findest Du im Handbuch:
 
Zurück
Oben