Wenn Sie einen Linux-Server der RedHat-Familie (einschließlich CentOS und Fedora) haben, werden Sie vielleicht die Art und Weise beneiden, wie Debian/Ubuntu-Distributionen mit der Verwaltung von PostgreSQL-Clustern umgehen.
Obwohl es nicht einfach ist, mithilfe von RPMs verschiedene PostgreSQL-Versionen auf demselben RedHat Linux-Server zu installieren, ist es viel einfacher, mehrere Instanzen von PostgreSQL (Servern) zu installieren und gleichzeitig die Dienste-Infrastruktur zu nutzen.
Nachdem Sie die RPM-Installation eingerichtet haben, indem Sie den Anweisungen folgen, die Sie im PostgreSQL YUM-Repository finden, werden Sie feststellen, dass der Prozess unter anderem zwei Dateien erstellt:
/etc/init.d/postgresql
:Init-Skript für den PostgreSQL-Server/etc/sysconfig/pgsql/postgresql
:Systemkonfiguration für den postgresql-Dienst
Standardmäßig wird das PostgreSQL-Datenverzeichnis (PGDATA
) zeigt auf /var/lib/pgsql/data
Verzeichnis. Es ist möglich, es zu ändern, indem Sie /etc/sysconfig/pgsql/postgresql
ändern Datei.
Nehmen wir an, wir möchten zwei PostgreSQL-Server auf demselben RedHat Linux installieren, indem wir einen zweiten Server zum Standardserver hinzufügen, der für Entwicklungszwecke verwendet wird. Wir nennen dies postgresql-devel
. Es wird im Verzeichnis /var/lib/pgsql/data-devel
installiert Verzeichnis und wird auf dem Port 5433 ausgeführt.
Wir erstellen einen symbolischen Link zum Haupt-postgresql
init-Skript und nennen Sie es postgresql-devel
:
cd /etc/init.d/
ln -s postgresql postgresql-devel
Dann beginnen wir mit dem Füllen des postgresql-devel
Konfigurationsdatei in /etc/sysconfig/pgsql
Verzeichnis. Es ist wichtig zu beachten, dass das Init-Skript und die Systemkonfigurationsdatei denselben Namen haben .
cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF
Sobald dies erledigt ist, können Sie das Datenverzeichnis initialisieren, indem Sie Folgendes ausführen:/etc/init.d/postgresql-devel initdb
oder einfach service postgresql-devel initdb
.
Ebenso können Sie den Start und das Herunterfahren des Dienstes steuern, indem Sie – bzw.:
ausführenservice postgresql-devel start
service postgresql-devel stop
Sie können das Skript zum Starten und Herunterfahren des Systems hinzufügen/entfernen, indem Sie chkconfig
verwenden genauso wie bei anderen Diensten.
Das PostgreSQL-Wiki enthält eine ausführliche Seite zu diesem Thema, und ich schlage vor, dass Sie sie zusammen mit dieser lesen. Dieser einfache Artikel zeigt Ihnen jedoch, wie Sie problemlos mehrere PostgreSQL-Instanzen auf demselben Linux-Server integrieren und sie mithilfe der standardmäßigen RedHat-Dienstinfrastruktur verwalten können (dank der großartigen Arbeit von Devrim Gunduz).