Postgresql (Wersja 7.1.2)

Contents

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.

Dodaj komentarz