Instalacja
Instalacji możesz dokonać z źródeł lub z pakietu. Najprostsza jest oczywiście instalacja z pakietu ale pamiętaj iż program ma wtedy ustawione pewne parametry już podczas kompilacji, które mogą Ci przeszkadzać.
W dystrybucjach używających systemu pakietów rpm instalacje wykonasz wykorzystując polecenie:
rpm -i postgresql
Instalacje w Debianie dokonasz wydając polecenie:
apt-get install postgresql
W przypadku instalacji ze źródeł należy przeczytać dokumentację dostarczoną razem z programem albo zajrzeć do podręcznika on-line opisującego procedurę instalacji http://www.postgresql.org/docs/7.4/interactive/installation.html
Uruchomienie, restart i zatrzymanie serwera
Serwer uruchamiamy (w trybie konsoli) w dystrybucjach wykorzystujących schemat V System (czyli np. Red Hat, Debian, Mandrake ale nie Slackware) przy pomocy polecenia:
/etc/init.d/postgresql start
Serwer restartujemy poleceniem:
/etc/init.d/postgresql restart
Zatrzymania serwera dokonamy przy pomocy polecenia:
/etc/init.d/postgresql stop
Konfiguracja
Pliki konfiguracyjne z domyślnej instalacji z pakietu znalazłem w /var/lib/pgsql/data. Znajdują się tam katalogi /data /global /pg_xlog oraz pliki: PG_VERSION (zawierający numer wersji np. 7.4), pg_hba_conf (host access control table, tabela kontroli dostępu serwerów do bazy danych), pg_ident.conf (plik kontroli dostępu według sposobu ident-based, podtypu kontroli opartej na identyfikacji po hoscie), postgresql.conf (główny plik konfiguracyjny Postgresa) postmaster.opts (opcje dla postmaster-a, głównego procesu serwera) postmaster.pid (plik zawierający PID oraz inne ważne dla działania programu dane), pg_hba_conf
Postgres uznaje czy rodzaje połączeń do bazy danych: lokalne (przez gniazdko UNIXowe), normalne sieciowe (przez interfejs sieciowy, tak naprawdę obsługuje ono szyfrowane i nieszyfrowane połączenia) oraz _wyłącznie_ szyfrowane przez interfejs sieciowy (jeżeli serwer skompilowano z opcją do obsługi SSLa, należy zauważyć iż normalne połączenie przez sieć także może obsługiwać SSLa).
Postgres uznaje następujące rodzaje autoryzacji:
- trust (postgres wierzy iż ten za kogo się podaje jest dokładnie tą osobą i ma ona prawo używać nazwę tego w bazie danych której chce używać),
- password (identyfikacja następuje przez jawne podanie hasła użytkownika)
- crypt (identyfikacja następuje przez podanie zaszyfrowanego hasła użytkownika, czyli podobnie jak w password tylko że hasło jest zakodowane),
- ident (identyfikacja przy wykorzystaniu zdalnego demona ident),
- krb4 (kerberos4 jest wykorzystywany do autoryzacji),
- krb5 (kerberos5 jest wykorzystywany do autoryzacji),
- reject (połączenie jest odrzucane)
Administracja bazami danych
Nową bazę danych tworzy się przy pomocy polecenia createdb nazwa_bazy. Bazę usuwa się poleceniem dropdb nazwa_bazy.
Tworzenie kopii zapasowych baz danych
Kopie zapasowe baz danych można podzielić na dwie kategorie: kopie całościowe oraz kopie konkretnych baz danych. Pierwsze przydają się głównie przy odzyskiwaniu danych całego serwera, drugie w wszystkich pozostałych przypadkach.
Kopia całościowa
W przypadku wykonywania polecenia z linii poleceń (tzw. z palca) należy przelogować się na użytkownika postgres (w standardowych instalacjach on jest zarządcą baz danych) a następnie wykonać polecenie pg_dumpall. Polecenie to wysyła wyniki do standardowego wyjścia (konsola) należy więc je przekierować do pliku.
su - postgres /usr/local/pgsql742/bin/pg_dumpall -o > /tmp/postgres_calosc.sql
Jeżeli stworzymy skrypt robiący backup, to najlepiej wykorzystać komendę su z parametrem -c (pozwalający wykonać komendę jako inny użytkownik) i od razu spakować plik:
{ su postgres -c \"/usr/local/pgsql472/bin/pg_dumpall -o\" | gzip > /tmp/postgres_calosc } 2>GOLF_pgsql_raport
Pomoc do nauki obsługi postgresa
W plikach źródłowych w katalogu src/tutorial znajdują się przygotowane do nauki pliki z przykładowymi kwerendami.
Mandrake 8.1 postgresql 7.1.2
Po przeinstalowaniu miałem problem z ID użytkowników, należy tutaj zauważyć iż skrypty instalacyjne wszystkie błędy wysyłają do /dev/null czyli ich nie widać.
Błędem skryptów instalacyjnych i startowych jest katalog $PGDATA/template1 którego istnienie jest wymagane przez skrypt startujący postgresa, jeżeli go nie ma baza danych jest tworzona na nowo.