Potrzebowałem uruchomić klaster bazy danych postgresql w innym miejscu w systemie niż domyślna:
Kod: Zaznacz cały
/usr/lib/postgresql/8.3/main/
[INDENT]- pisząc własny skrypt dla /init.d i podpinając za pomocą update-rc.d
- zmieniając/dodając pliki konfiguracyjne postgresa[/INDENT]
Pierwsze rozwiązanie, jest trudniejsze i trochę bezsensu, mając na uwadze, że możemy to zrobić prościej. Dodatkowo, musimy pamiętać o odpięciu (update-rc.d) oryginalnego skryptu ./postgresql-8.3 gdyż jego równoległy start z naszym spowoduje, iż jeden klaster na pewno się nie uruchomi gdyż w użyciu już będzie jeden port. Jeśli chcemy mieć więcej klastrów to również nasz skrypt musi być do tego przystosowany.
Prostszym rozwiązaniem jest edycja plików konfiguracyjnych w:
Kod: Zaznacz cały
/etc/postgresql/8.x/main
Zatem, zatrzymujemy postgresa:
Kod: Zaznacz cały
/etc/init.d/postgresql-8.3 stop
Kod: Zaznacz cały
/etc/postgresql/8.x/main
Kod: Zaznacz cały
postgresql.conf
Kod: Zaznacz cały
data_directory = '/var/lib/postgresql/8.3/main/' # use data in another
#directory
# (change requires restart)
hba_file = '/var/lib/postgresql/8.3/main/pg_hba.conf' # host-based
#authentication file
# (change requires restart)
ident_file = '/var/lib/postgresql/8.3/main/pg_ident.conf' # ident
#configuration file
# (change requires restart)
Startujemy już nasz nowy klaster:
Kod: Zaznacz cały
/etc/init.d/postgresql-8.3 start
Kod: Zaznacz cały
/etc/postgresql/8.x/main/postgresql.conf
Kod: Zaznacz cały
openssl req -new -text -out server.req
openssl rsa -in privkey.pem -out server.key
rm privkey.pem
openssl req -x509 -in server.req -text -key server.key -out server.crt
chmod og-rwx server.key
Teraz baza powinna wystartować. Można również zrobić dowiązanie symboliczne plików:
Kod: Zaznacz cały
server.crt -> /etc/ssl/certs/ssl-cert-snakeoil.pem
server.key -> /etc/ssl/private/ssl-cert-snakeoil.key
W przypadku gdy chcemy mieć dwa lub więcej działających klastrów, korzystających ze skryptów startowych Debiana, należy zdublować katalog main:
Kod: Zaznacz cały
cp -r /etc/postgresql/8.x/main /etc/postgresql/8.x/klaster2
Kod: Zaznacz cały
/etc/postgresql/8.x/klaster2/postgresql.conf
Pozdrawiam.
PS. Podziękowania dla lessmiana2 za wskazówki
