Zamknij menu
    Nowe
    Bizneswoman siedzi przy biurku, pokazując tablet na tle spadających niebieskich niewyraźnych liter

    Jak zainstalować i skonfigurować Nextcloud na własnym serwerze Linux

    2026-03-10
    Digital Representation of CO2 and Energy Icons on Computer Screen

    Jak zainstalować i skonfigurować PostgreSQL na serwerze Ubuntu

    2026-03-04
    Kobieta używa telefonu do internetowego przelewu płatności bankowych na laptopie Aplikacja biznesowa Zakupy online

    Jak zainstalować i skonfigurować Nginx jako serwer WWW i reverse proxy na Ubuntu

    2026-02-26
    Facebook X (Twitter) Instagram
    Linuksowo
    • Główna
    • Dystrybucje
    • Tematy
      • Administracja
      • Bezpieczeństwo
      • Instalacja
      • Oprogramowanie
      • Podstawy
      • Wybór systemu
      • Rozszerzenia plików
    • Pozostałe
    Linuksowo
    Główna»Administracja»Jak zainstalować i skonfigurować PostgreSQL na serwerze Ubuntu
    Administracja

    Jak zainstalować i skonfigurować PostgreSQL na serwerze Ubuntu

    Norbert BarwickiNorbert BarwickiBrak komentarzy7 min. czyt.
    Digital Representation of CO2 and Energy Icons on Computer Screen
    Udostępnij
    Facebook Twitter LinkedIn Pinterest E-mail

    PostgreSQL to jedno z najpotężniejszych i najczęściej wykorzystywanych otwartoźródłowych systemów zarządzania relacyjnymi bazami danych, oferujące zaawansowane funkcje integralności danych, optymalizacji wydajności i skalowalności.

    Ten kompleksowy przewodnik prowadzi krok po kroku przez instalację, konfigurację, zabezpieczanie i podstawową administrację PostgreSQL na serwerach Ubuntu – od przygotowania systemu po logowanie, kopie zapasowe i replikację.

    Spis treści pokaż
    1 Wymagania systemowe i wstępne kroki instalacji PostgreSQL
    2 Metody instalacji PostgreSQL w Ubuntu
    2.1 Instalacja z domyślnego repozytorium Ubuntu
    2.2 Instalacja z oficjalnego repozytorium PostgreSQL (PGDG)
    2.3 Weryfikacja instalacji
    3 Zarządzanie usługą PostgreSQL i wstępna konfiguracja
    4 Zarządzanie użytkownikami i rolami w PostgreSQL
    4.1 Tworzenie nowych użytkowników bazy
    4.2 Zrozumienie ról i uprawnień PostgreSQL
    5 Tworzenie baz danych i wstępna konfiguracja
    6 Plik pg_hba.conf i uwierzytelnianie klientów
    7 Konfiguracja sieci i połączenia zdalne
    7.1 Konfiguracja zapory dla dostępu zdalnego
    8 Konfiguracja parametrów i strojenie PostgreSQL
    9 Konfiguracja logowania w PostgreSQL
    10 Kopie zapasowe i odtwarzanie
    11 Konserwacja bazy i działanie autovacuum
    12 Replikacja i wysoka dostępność
    13 Zaawansowane zagadnienia konfiguracyjne

    Wymagania systemowe i wstępne kroki instalacji PostgreSQL

    Aby zapewnić stabilną pracę PostgreSQL, zweryfikuj minimalne wymagania i przygotuj środowisko:

    • ubuntu 22.04 lub nowsze,
    • co najmniej 1 GB pamięci RAM (więcej zalecane w produkcji),
    • wystarczająca przestrzeń dyskowa na binaria i katalog danych,
    • działające połączenie sieciowe,
    • dostęp roota lub konto z uprawnieniami sudo.

    Przed rozpoczęciem instalacji zaktualizuj pakiety i doinstaluj niezbędne narzędzia:

    sudo apt update && sudo apt -y upgrade
    sudo apt -y install curl wget ca-certificates gnupg lsb-release

    W bardziej złożonych środowiskach możesz też przygotować strukturę katalogów i użytkownika systemowego, a w razie braku DNS – dodać wpisy hostów do pliku /etc/hosts.

    Metody instalacji PostgreSQL w Ubuntu

    Wybierz metodę instalacji zależnie od potrzeb dotyczących wersji i integracji systemowej:

    Metoda Wersje Prostota Aktualizacje Kiedy wybrać
    Repozytorium Ubuntu stabilne, nie zawsze najnowsze wysoka zintegrowane z systemem gdy liczy się zgodność i bezproblemowe utrzymanie
    Oficjalne repozytorium PostgreSQL (PGDG) wiele gałęzi, często najnowsze średnia częste wydania i łatwa kontrola wersji gdy potrzebujesz konkretnej lub najnowszej wersji

    Instalacja z domyślnego repozytorium Ubuntu

    Wykonaj poniższe polecenia, aby zainstalować serwer i uruchomić usługę:

    sudo apt update
    sudo apt -y install postgresql postgresql-contrib
    sudo systemctl status postgresql

    Po instalacji usługa PostgreSQL startuje automatycznie i jest włączona przy rozruchu systemu. Tworzony jest też użytkownik systemowy postgres.

    Instalacja z oficjalnego repozytorium PostgreSQL (PGDG)

    Dodaj repozytorium PGDG i zainstaluj wybraną wersję (przykład dla Ubuntu 22.04):

    sudo install -d /usr/share/postgresql-common/pgdg
    sudo wget -q -O /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt $(. /etc/os-release && echo $VERSION_CODENAME)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
    sudo apt update
    sudo apt -y install postgresql-16

    Oficjalne repozytorium zapewnia większą swobodę w zarządzaniu wersjami i ułatwia etapowe aktualizacje między gałęziami.

    Weryfikacja instalacji

    Sprawdź działanie serwera i nawiąż połączenie do domyślnej bazy:

    psql --version
    sudo -u postgres psql -c "SELECT version();"
    sudo -u postgres psql
    \l
    \q

    Uzyskanie zachęty psql potwierdza, że serwer działa i przyjmuje połączenia.

    Zarządzanie usługą PostgreSQL i wstępna konfiguracja

    Najważniejsze polecenia systemd do obsługi usługi postgresql wyglądają następująco:

    sudo systemctl status postgresql
    sudo systemctl start postgresql
    sudo systemctl enable postgresql
    sudo systemctl restart postgresql
    sudo systemctl reload postgresql
    sudo journalctl -u postgresql -f

    Katalog danych klastra (PGDATA) oraz pliki konfiguracyjne zależą od pakietów Ubuntu. Przy standardowej instalacji znajdują się w typowych lokalizacjach:

    • katalog danych: /var/lib/postgresql/WERSJA/main,
    • konfiguracja: /etc/postgresql/WERSJA/main/ (postgresql.conf, pg_hba.conf),
    • logi: systemowy journald lub /var/log/postgresql/ po włączeniu logging_collector.

    Zarządzanie użytkownikami i rolami w PostgreSQL

    PostgreSQL stosuje elastyczny model ról, w którym role mogą działać jako użytkownicy (z logowaniem) lub grupy (bez logowania). Nie używaj superużytkownika postgres do pracy aplikacji – stosuj zasadę minimalnych uprawnień.

    Tworzenie nowych użytkowników bazy

    Utwórz użytkownika interaktywnie lub za pomocą SQL:

    sudo -u postgres createuser --pwprompt --login --no-superuser --no-createdb --no-createrole app_user
    sudo -u postgres createdb --owner=app_user app_db

    sudo -u postgres psql
    CREATE USER app_user WITH LOGIN PASSWORD 'silne_hasło';
    CREATE DATABASE app_db OWNER app_user;
    GRANT CONNECT ON DATABASE app_db TO app_user;
    \q

    Zmiana hasła i polityki haseł:

    ALTER USER app_user WITH PASSWORD 'jeszcze_silniejsze_hasło';

    Preferuj SCRAM-SHA-256 jako metodę hashowania haseł zamiast przestarzałego MD5.

    Zrozumienie ról i uprawnień PostgreSQL

    Poniżej podsumowanie kluczowych ról i przywilejów:

    • LOGIN – prawo logowania do serwera;
    • SUPERUSER – pełny dostęp administracyjny (unikaj dla kont aplikacyjnych);
    • CREATEDB – możliwość tworzenia baz danych;
    • CREATEROLE – możliwość tworzenia i zarządzania rolami;
    • REPLICATION – uprawnienie do połączeń replikacyjnych;
    • GRANT/REVOKE – nadawanie i odbieranie uprawnień do obiektów (schematy, tabele, funkcje).

    Tworzenie baz danych i wstępna konfiguracja

    Tworzenie bazy i inicjalne uprawnienia wykonasz szybko poleceniami:

    sudo -u postgres createdb --owner=app_user app_db
    sudo -u postgres psql -d app_db -c "CREATE SCHEMA IF NOT EXISTS app AUTHORIZATION app_user;"

    Skrypty SQL ułatwiają spójną inicjalizację schematów i obiektów aplikacyjnych w wielu środowiskach.

    Plik pg_hba.conf i uwierzytelnianie klientów

    pg_hba.conf decyduje, którzy użytkownicy mogą łączyć się z jakich hostów, do jakich baz i jaką metodą. Reguły są oceniane sekwencyjnie – pierwsze dopasowanie wygrywa.

    Przykładowe, bezpieczne wpisy dla połączeń lokalnych i z konkretnej podsieci:

    # Lokalne połączenia przez gniazda Unix
    local all all peer
    # Połączenia z localhost
    host all all 127.0.0.1/32 scram-sha-256
    host all all ::1/128 scram-sha-256
    # Połączenia z zaufanej podsieci
    host app_db app_user 10.0.0.0/24 scram-sha-256

    Po zmianie reguł przeładuj konfigurację bez restartu usługi:

    sudo -u postgres psql -c "SELECT pg_reload_conf();"

    Konfiguracja sieci i połączenia zdalne

    Włącz nasłuch na interfejsach sieciowych, dostosowując parametr listen_addresses w postgresql.conf, a następnie zrestartuj usługę:

    # postgresql.conf
    listen_addresses = '*'
    port = 5432

    sudo systemctl restart postgresql

    Konfiguracja zapory dla dostępu zdalnego

    Otwórz wyłącznie niezbędny port TCP dla zaufanych adresów i włącz UFW:

    sudo ufw allow proto tcp from 10.0.0.0/24 to any port 5432
    sudo ufw enable
    sudo ufw status numbered

    Dostęp zdalny musi być jednocześnie ograniczony przez pg_hba.conf i zaporę.

    Konfiguracja parametrów i strojenie PostgreSQL

    Poprawna konfiguracja ma kluczowe znaczenie dla wydajności i niezawodności. Najpierw sprawdź bieżące wartości w widoku pg_settings, a zmiany wprowadzaj w postgresql.conf lub przez ALTER SYSTEM.

    Podstawowe parametry warte dostrojenia na start:

    • listen_addresses – interfejsy nasłuchu serwera,
    • max_connections – limit równoczesnych połączeń (planuj z buforem),
    • shared_buffers – pamięć buforów współdzielonych (~15–25% RAM w wielu przypadkach),
    • work_mem – pamięć na sortowania i hashowania per operacja/zapytanie,
    • maintenance_work_mem – pamięć dla VACUUM/CREATE INDEX,
    • effective_cache_size – szacowana przestrzeń buforowania systemu plików.

    Oddzielenie zmian w postgresql.auto.conf (ALTER SYSTEM) ułatwia audyt konfiguracji i diagnostykę konfliktów.

    Konfiguracja logowania w PostgreSQL

    Włącz kolektor logów i ustaw przydatne parametry diagnostyczne:

    logging_collector = on
    log_directory = 'log'
    log_filename = 'postgresql-%Y-%m-%d.log'
    log_rotation_age = '1d'
    log_min_duration_statement = 100ms
    log_connections = on
    log_disconnections = on
    log_line_prefix = '%m [%p] %u@%d %h '

    logging_collector wymaga restartu usługi, natomiast większość pozostałych zmian można wprowadzić przez przeładowanie konfiguracji:

    sudo -u postgres psql -c "SELECT pg_reload_conf();"

    Kopie zapasowe i odtwarzanie

    Wybierz metodę kopii w zależności od RTO/RPO i wielkości danych:

    Metoda Poziom Zalety Ograniczenia Typowe zastosowania
    pg_dump pojedyncza baza elastyczny format, selektywne przywracanie obiektów wolniejsze przywracanie dużych baz mniejsze bazy, migracje między wersjami
    pg_dumpall cały klaster (logicznie) zawiera role/globalne obiekty jak wyżej + dłuższy czas spójny eksport konfiguracji i małych środowisk
    pg_basebackup + WAL/PITR binarny (plikowy) szybkie odtwarzanie, możliwość PITR wymaga archiwizacji WAL i większej dyscypliny operacyjnej duże/krytyczne bazy, niskie RTO

    Przykładowe polecenia kopii i konfiguracji:

    # Kopia logiczna bazy
    pg_dump -h 127.0.0.1 -U app_user -d app_db -Fc -f app_db_$(date +%F).dump

    # Kopia binarna klastra
    pg_basebackup -h 127.0.0.1 -U replicator -D /backups/base_$(date +%F) -X stream -C -S slot_standby -R
    # postgresql.conf – archiwizacja WAL do PITR
    archive_mode = on
    archive_command = 'test ! -f /wal_archive/%f && cp %p /wal_archive/%f'

    Strategia backupu powinna wynikać bezpośrednio z założeń RTO/RPO – łącz metody logiczne i binarne tam, gdzie to uzasadnione.

    Konserwacja bazy i działanie autovacuum

    Regularna konserwacja (VACUUM/ANALYZE) poprawia wydajność i stabilność, usuwając martwe wiersze i aktualizując statystyki optymalizatora.

    Praktyczne wskazówki strojenia autovacuum:

    • autovacuum – pozostaw włączone w produkcji i monitoruj opóźnienia,
    • autovacuum_vacuum_scale_factor i autovacuum_analyze_scale_factor – obniż dla tabel intensywnie modyfikowanych,
    • autovacuum_work_mem – zwiększ dla dużych tabel,
    • autovacuum_freeze_max_age – kontroluj, by zapobiec zawinięciu XID,
    • rozważ prógi per tabela (ALTER TABLE … SET).

    Replikacja i wysoka dostępność

    Fizyczna replikacja strumieniowa zapewnia niemal rzeczywistą kopię danych na serwerach standby, które można awansować do roli primary w razie awarii.

    1. utwórz użytkownika z przywilejem REPLICATION i dodaj reguły w pg_hba.conf dla hostów standby;
    2. ustaw wal_level = replica, opcjonalnie hot_standby = on, a następnie zrestartuj serwer primary;
    3. wykonaj wstępną kopię danych na standby, np. pg_basebackup z opcją tworzenia standby.signal (-R);
    4. uruchom serwer standby i zweryfikuj stan replikacji w widokach pg_stat_wal_receiver/pg_stat_replication;
    5. skonfiguruj monitoring opóźnień (write/replay lag) i politykę failover.

    WAL sender/receiver odpowiadają za transmisję dzienników WAL, a proces startup na standby odtwarza zmiany, utrzymując synchronizację.

    Zaawansowane zagadnienia konfiguracyjne

    Warto rozważyć dodatkowe możliwości platformy, które zwiększają wydajność i funkcjonalność:

    • rozszerzenia – np. PostGIS (GIS), uuid-ossp (UUID), pg_trgm (podobieństwa znakowe);
    • pule połączeń – PgBouncer, Pgpool-II dla efektywnej obsługi wielu sesji i ograniczenia kosztów połączeń;
    • partycjonowanie – lepsze zarządzanie oraz wydajność operacji na bardzo dużych tabelach.
    Norbert Barwicki
    • WWW

    Norbert Barwicki pracuje z systemami Linux od 2007 roku, kiedy to zainstalował swoją pierwszą dystrybucję Ubuntu 7.04. Przez lata eksperymentował z ponad 15 różnymi dystrybucjami, w tym Fedora, Debian, Arch Linux i Gentoo, a od 2015 roku specjalizuje się w administracji serwerami opartymi na CentOS i Red Hat Enterprise Linux. Jako certyfikowany administrator Linux (RHCSA od 2018 roku) dzieli się swoją wiedzą na Linuksowo.pl, gdzie opublikował już ponad 100 artykułów pomagających użytkownikom w przejściu na świat open source.

    Pozostałe poradniki

    Bizneswoman siedzi przy biurku, pokazując tablet na tle spadających niebieskich niewyraźnych liter

    Jak zainstalować i skonfigurować Nextcloud na własnym serwerze Linux

    10 min. czyt.
    Koncepcja protokołu sieci prywatnej wirtualnej (VPN) Ręka człowieka używająca tabletu cyfrowego z ikoną vpn na ekranie VR

    Jak skonfigurować zaporę sieciową UFW w Ubuntu – reguły, porty i zabezpieczenia

    8 min. czyt.

    vsftpd – bezpieczny serwer FTP. Instalacja, konfiguracja

    15 min. czyt.

    Jak zainstalować i skonfigurować serwer WWW w systemie Linux?

    4 min. czyt.

    Jak zainstalować system CMS Concrete5 na serwerze Debian 9?

    3 min. czyt.

    Jak restartować usługi systemowe z linii poleceń Ubuntu?

    3 min. czyt.
    Dodaj komentarz
    Odpowiedz Anuluj


    Poradniki
    Bizneswoman siedzi przy biurku, pokazując tablet na tle spadających niebieskich niewyraźnych liter

    Jak zainstalować i skonfigurować Nextcloud na własnym serwerze Linux

    2026-03-10
    Digital Representation of CO2 and Energy Icons on Computer Screen

    Jak zainstalować i skonfigurować PostgreSQL na serwerze Ubuntu

    2026-03-04
    Kobieta używa telefonu do internetowego przelewu płatności bankowych na laptopie Aplikacja biznesowa Zakupy online

    Jak zainstalować i skonfigurować Nginx jako serwer WWW i reverse proxy na Ubuntu

    2026-02-26
    Kobiece dłonie z manicure na klawiaturze laptopa i ostrzeżeniem na ekranie komputera zhakowane Zdjęcie wysokiej jakości

    Jak zainstalować i skonfigurować Fail2Ban do ochrony serwera Linux przed atakami

    2026-02-23
    Artykuły
    Koncepcja protokołu sieci prywatnej wirtualnej (VPN) Ręka człowieka używająca tabletu cyfrowego z ikoną vpn na ekranie VR

    Jak skonfigurować zaporę sieciową UFW w Ubuntu – reguły, porty i zabezpieczenia

    2026-02-19

    apt-get update – aktualizacja list pakietów w systemach opartych na Debianie

    2026-02-13

    Grep – Jak efektywnie korzystać z polecenia w systemach uniksopodobnych?

    2026-02-12
    O Linuksowo

    Linuksowo.pl to kompendium wiedzy dla wszystkich zainteresowanych systemami operacyjnymi opartymi na jądrze Linux. Oferujemy eksperckie artykuły obejmujące dystrybucje, instalację, bezpieczeństwo oraz oprogramowanie open source. Naszym celem jest dostarczanie praktycznych porad zarówno dla początkujących, jak i zaawansowanych użytkowników.

    © 2026 Linuksowo – Wszelkie prawa zastrzeżone.
    • Strona główna
    • O Linuksowo
    • Polityka prywatności i cookies
    • RSS
    • Kontakt

    Type above and press Enter to search. Press Esc to cancel.