Jeśli masz serwer Linux z rodziny RedHat (w tym CentOS i Fedora), możesz pozazdrościć sposobu, w jaki dystrybucje Debiana/Ubuntu radzą sobie z zarządzaniem klastrami PostgreSQL.
Chociaż nie jest łatwo zainstalować różne wersje PostgreSQL na tym samym serwerze RedHat Linux przy użyciu RPM, znacznie łatwiej jest zainstalować kilka instancji PostgreSQL (serwerów) i jednocześnie korzystać z infrastruktury usług.
Po skonfigurowaniu instalacji RPM, postępując zgodnie z instrukcjami, które znajdziesz w repozytorium PostgreSQL YUM, zauważysz, że proces utworzy między innymi dwa pliki:
/etc/init.d/postgresql
:skrypt startowy dla serwera PostgreSQL/etc/sysconfig/pgsql/postgresql
:konfiguracja systemu dla usługi postgresql
Domyślnie katalog danych PostgreSQL (PGDATA
) wskazuje na /var/lib/pgsql/data
informator. Można to zmienić, modyfikując /etc/sysconfig/pgsql/postgresql
plik.
Załóżmy, że chcemy zainstalować dwa serwery PostgreSQL na tym samym RedHat Linux, dodając drugi serwer do domyślnego, który będzie używany do celów programistycznych. Nazwiemy to postgresql-devel
. Zostanie zainstalowany w /var/lib/pgsql/data-devel
katalogu i będzie działać na porcie 5433.
Tworzymy dowiązanie symboliczne do głównego postgresql
skrypt init i nazwij go postgresql-devel
:
cd /etc/init.d/
ln -s postgresql postgresql-devel
Następnie zaczynamy wypełniać postgresql-devel
plik konfiguracyjny w /etc/sysconfig/pgsql
informator. Ważne jest, aby pamiętać, że skrypt startowy i plik konfiguracyjny systemu mają tę samą nazwę .
cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF
Gdy to zrobisz, możesz zainicjować katalog danych, uruchamiając:/etc/init.d/postgresql-devel initdb
lub po prostu service postgresql-devel initdb
.
Podobnie możesz kontrolować uruchamianie i zamykanie usługi, uruchamiając – odpowiednio:
service postgresql-devel start
service postgresql-devel stop
Możesz dodać/usunąć skrypt podczas uruchamiania i zamykania systemu za pomocą chkconfig
tak samo jak w przypadku innych usług.
Wiki PostgreSQL zawiera szczegółową stronę na ten temat i sugeruję, abyś przeczytał ją razem z tą. Jednak ten prosty artykuł pokazuje, jak łatwo zintegrować wiele instancji PostgreSQL na tym samym serwerze Linux i zarządzać nimi przy użyciu standardowej infrastruktury usług RedHat (dzięki świetnej pracy wykonanej przez Devrima Gunduza).