Jak zainstalować PostgreSQL 16 na Ubuntu 24.04, 22.04 lub 20.04

PostgreSQL 16 stanowi znaczącą aktualizację w świecie systemów zarządzania bazami danych. Oficjalnie wydany 14 września 2023 r. PostgreSQL 16 wprowadza wiele nowych funkcji i ulepszeń, wzmacniając swoją pozycję solidnego i wszechstronnego rozwiązania bazodanowego dla użytkowników, administratorów i programistów.

Poniżej znajdują się niektóre z najważniejszych cech PostgreSQL 16:

  • Ulepszenia równoległości: PostgreSQL 16 umożliwia równoległość złączeń mieszających FULL i wewnętrznego prawego OUTER, znacznie poprawiając wydajność zapytań.
  • Ulepszenia replikacji: Wprowadza możliwość replikacji logicznej z serwerów rezerwowych i umożliwia abonentom równoległe stosowanie dużych transakcji.
  • Możliwości monitorowania: Dodanie widoku pg_stat_io umożliwia bardziej szczegółowe monitorowanie statystyk we/wy.
  • Obsługa SQL/JSON: W tej wersji wprowadzono konstruktory SQL/JSON i funkcje tożsamości, poszerzając możliwości obsługi danych.
  • Wydajność zamrażania próżniowego: PostgreSQL 16 poprawia wydajność zamrażania próżniowego, pomagając w wydajnej konserwacji baz danych.
  • Dopasowywanie wyrażeń regularnych: Dopasowywanie wyrażeń regularnych dla nazw użytkowników i baz danych w pg_hba.conf oraz nazw użytkowników w pg_ident.conf zwiększa bezpieczeństwo i elastyczność.

Przejdźmy teraz do instrukcji technicznych i zagłębimy się w proces instalacji PostgreSQL 16.

Wymagania wstępne dotyczące instalacji PostgreSQL 16

Aby pomyślnie zainstalować PostgreSQL 16 na Ubuntu, upewnij się, że spełniasz następujące wymagania:

Zalecany sprzęt i obsługiwane wersje Ubuntu

CzęśćWymóg
EdytorZgodny procesor 1 gigaherc (GHz) lub szybszy
Baran2 GB lub więcej
Miejsca na dysku512 MB dysku twardego (wymagane dodatkowe miejsce na dane lub komponenty pomocnicze)
Obsługiwane wersjeUbuntu 24.04 (szlachetny), Ubuntu 22.04 (Jammy), Ubuntu 20.04 (centralny)

Dodatkowe wymagania

WymógOpis
Połączenie internetoweWymagane do pobrania PostgreSQL 16 i przyszłych aktualizacji.
Konwencje terminaloweWszystkie polecenia terminala należy uruchamiać jako zwykły użytkownik sudo przywileje.
Polecenia interfejsu wiersza poleceniaDo instalacji i konfiguracji użyj interfejsu wiersza poleceń (CLI).

Importuj repozytorium PostgreSQL APT

Zaktualizuj Ubuntu przed instalacją PostgreSQL 16

Zacznij od upewnienia się, że Twój system Ubuntu jest aktualny. Ten krok jest kluczowy dla utrzymania stabilności i kompatybilności systemu:

sudo apt update

Następnie zaktualizuj wszystkie nieaktualne pakiety:

sudo apt upgrade

Zainstaluj pakiety początkowe dla PostgreSQL 16

Aby pomóc w instalacji oprogramowania bazy danych, zainstaluj następujące pakiety:

sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y

Dodaj repozytorium PostgreSQL 16 APT

Najpierw zaimportuj klucz GPG PostgreSQL. Chodzi o to, aby upewnić się, że pakiety, które masz zamiar zainstalować, są oryginalne i nienaruszone:

curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null

Wybór odpowiedniego repozytorium PostgreSQL 16

Teraz czas wybrać odpowiednie repozytorium PostgreSQL 16 dla swoich potrzeb.

Stabilne repozytorium do użytku produkcyjnego/ogólnego

Stabilne repozytorium jest rozwiązaniem dla większości użytkowników, zwłaszcza w środowisku produkcyjnym. Jest regularnie aktualizowany o stabilne i bezpieczne wersje:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list

Repozytoria migawek lub testowania dla programistów

Jeśli jesteś w fazie programowania lub testowania, rozważ użycie repozytoriów migawek lub testowania. Pamiętaj jednak, że nie są one przeznaczone do użytku produkcyjnego ze względu na ich mniej stabilny charakter.

Repozytorium migawek do najnowocześniejszych testów

Pobierz najnowsze migawki tutaj:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
Przetestuj repozytorium pod kątem najnowszych funkcji

Aby przetestować najnowsze funkcje, to polecenie skonfiguruje:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list

Zainstaluj PostgreSQL 16 za pomocą poleceń terminala

Odśwież listę źródeł indeksu pakietów APT

Po dodaniu stabilnego lub testowego repozytorium PostgreSQL ważna jest aktualizacja listy źródeł repozytorium. Dzięki tej akcji Twój system rozpozna nowo dodane repozytorium PostgreSQL:

sudo apt update

Zainstaluj PostgreSQL 16 za pomocą polecenia APT

Przejdźmy teraz do instalacji PostgreSQL 16. To polecenie instaluje zarówno klienta, jak i serwer PostgreSQL:

sudo apt install postgresql-client-16 postgresql-16

Weryfikacja instalacji PostgreSQL

Po zakończeniu instalacji kluczowe znaczenie ma potwierdzenie, że PostgreSQL jest poprawnie zainstalowany i działa. To polecenie sprawdza status usługi PostgreSQL:

systemctl status postgresql

Aktywacja PostgreSQL 16

Jeśli PostgreSQL nie jest aktywny, użyj tego polecenia, aby uruchomić usługę PostgreSQL. Zapewnia to również, że PostgreSQL uruchomi się automatycznie w twoim systemie:

sudo systemctl enable postgresql --now

Zarządzanie usługą PostgreSQL 16

Zatrzymywanie serwera PostgreSQL 16

Aby tymczasowo zatrzymać usługę PostgreSQL, na przykład w celu konserwacji lub zmian w konfiguracji, użyj tego polecenia:

sudo systemctl stop postgresql

Uruchamianie serwera PostgreSQL 16

Kiedy będziesz gotowy do uruchomienia usługi PostgreSQL, zwłaszcza po zatrzymaniu lub początkowej instalacji, przydaje się to polecenie:

sudo systemctl start postgresql

Ponowne uruchamianie serwera PostgreSQL 16

W scenariuszach, w których zmieniono konfiguracje lub aktualizacje, często konieczne jest ponowne uruchomienie. To polecenie ponownie uruchamia usługę PostgreSQL, stosując wszelkie nowe zmiany:

sudo systemctl restart postgresql

Ponowne ładowanie serwera PostgreSQL 16

Aby ponownie załadować usługę PostgreSQL bez zakłócania jej działania, użyj tego polecenia. Przydaje się, gdy trzeba zastosować drobne zmiany w konfiguracji:

sudo systemctl reload postgresql

Sprawdzanie statusu PostgreSQL 16

Aby zweryfikować status operacyjny usługi PostgreSQL, w tym czy jest ona aktywna i działa bez problemów, użyj:

systemctl status postgresql

Włączanie PostgreSQL 16 podczas uruchamiania systemu

Jeśli PostgreSQL nie jest ustawiony na automatyczne uruchamianie, to polecenie włączy tę opcję, zapewniając, że będzie aktywny natychmiast i przy kolejnych uruchomieniach systemu:

sudo systemctl enable postgresql --now

Podstawowe przykładowe polecenia w PostgreSQL 16

Dostęp do konta użytkownika Postgres

W PostgreSQL użytkownik „postgres” jest domyślną rolą superużytkownika. Konto to ma kluczowe znaczenie przy wykonywaniu poleceń administracyjnych. Aby przełączyć się na to konto, użyj:

sudo -i -u postgres

Po wejściu na konto wejdź do interfejsu wiersza poleceń PostgreSQL:

psql

Podpowiedź postgres=# potwierdza Twoje połączenie ze środowiskiem PostgreSQL. Aby wyjść, po prostu wpisz exit.

Szybki dostęp do PostgreSQL bez zmiany użytkownika

Aby uzyskać szybkie operacje bez zmiany konta użytkownika, uzyskaj bezpośredni dostęp do PostgreSQL:

sudo -u postgres psql

To polecenie pozwala zaoszczędzić czas w przypadku rutynowych zadań. Aby opuścić ten interfejs, wpisz exit.

Tworzenie nowej roli użytkownika PostgreSQL

Elastyczność PostgreSQL umożliwia superużytkownikom tworzenie ról użytkowników. Aby ustalić nową rolę użytkownika, wydaj następującą komendę:

sudo su - postgres -c "createuser <username>"

Zastępować <username> z wybraną nazwą użytkownika.

Inicjowanie nowej bazy danych PostgreSQL

Aby skonfigurować nową bazę danych dla swojego użytkownika:

sudo su - postgres -c "createdb <database_name>"

Zastępować <database_name> z zamierzoną nazwą bazy danych.

Przypisywanie uprawnień użytkowników do bazy danych

Bezpiecznie przydzielaj dostęp do bazy danych:

sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;

Zastąpić <database_name> I <username> jako wymagane. Zakończ wpisując exit.

Skonfiguruj zaporę UFW dla PostgreSQL 16

Instalacja i aktywacja zapory UFW

Upewnij się, że w systemie jest zainstalowana i aktywowana UFW (nieskomplikowana zapora sieciowa). UFW upraszcza zarządzanie zaporą sieciową i jest niezbędny do zabezpieczenia ruchu sieciowego:

sudo apt install ufw
sudo ufw enable

Konfigurowanie reguł UFW dla PostgreSQL 16

PostgreSQL domyślnie komunikuje się na porcie 5432. Konieczne jest skonfigurowanie UFW tak, aby zezwalał na ruch na tym porcie, zwłaszcza podczas łączenia się z odległych lokalizacji.

Zezwalanie na dostęp do podsieci

Aby zezwolić na dostęp do zakresu adresów IP w podsieci, użyj tego polecenia:

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

Zastępować 192.168.1.0/24 z określonym zakresem podsieci.

Zezwalanie na indywidualny dostęp IP

Aby przyznać dostęp do PostgreSQL z jednego adresu IP, użyj:

sudo ufw allow proto tcp from 192.168.1.0 to any port 5432

Modyfikować 192.168.1.0 na adres IP, na który chcesz zezwolić.

To tylko podstawowe przykłady. Powinieneś rozważyć zablokowanie jakiejkolwiek publicznej bazy danych tak długo, jak to możliwe.

Skonfiguruj PostgreSQL 16

Włącz dostęp zdalny w PostgreSQL 16

Skonfigurowanie PostgreSQL do akceptowania połączeń zdalnych wymaga dostosowania adresu nasłuchiwania z domyślnego interfejsu lokalnego.

Modyfikowanie konfiguracji dostępu zdalnego

Uzyskaj dostęp do pliku konfiguracyjnego PostgreSQL:

sudo nano /etc/postgresql/16/main/postgresql.conf

W sekcji „Ustawienia połączenia” zmień listen_addresses = 'localhost' do Twoich konkretnych potrzeb:

  • Zamień „localhost” na żądany adres IP dla pojedynczego adresu IP.
  • Aby zezwolić na połączenia na wszystkich interfejsach, użyj listen_addresses = '*'.

Po dokonaniu zmian zapisz za pomocą CTRL+O i wyjdź za pomocą CTRL+X. Następnie uruchom ponownie PostgreSQL:

sudo systemctl restart postgresql

Zweryfikuj zmiany za pomocą:

ss -nlt | grep 5432

Na wyjściu powinien pojawić się aktywny port 5432.

Konfigurowanie pg_hba.conf w celu zwiększenia bezpieczeństwa

Edytuj pg_hba.conf plik do precyzyjnej kontroli dostępu:

sudo nano /etc/postgresql/16/main/pg_hba.conf

Dostosowywanie dostępu użytkowników i baz danych

W pg_hba.conf, możesz określić, którzy użytkownicy i bazy danych mogą się łączyć oraz z jakich adresów. Oto kilka typowych konfiguracji:

  • Dostęp specyficzny dla użytkownika: Zastąp „wszyscy” określoną nazwą użytkownika, aby ograniczyć dostęp tylko do tego użytkownika.
  • Dostęp specyficzny dla bazy danych: Określ konkretną bazę danych, zamiast zezwalać na dostęp do wszystkich baz danych.
  • Ograniczenia adresowe: Zdefiniuj konkretne adresy lub zakresy IP (np. 192.168.1.0/24), aby ograniczyć miejsce, z którego mogą pochodzić połączenia.

Wybór metod uwierzytelniania

PostgreSQL obsługuje różne metody uwierzytelniania:

  • MD5: Wymaga hasła i szyfruje je za pomocą MD5.
  • Hasło: Używa haseł w postaci zwykłego tekstu (mniej bezpieczne, niezalecane do zastosowań produkcyjnych).
  • Rówieśnik: Opiera się na tożsamości użytkownika na poziomie systemu operacyjnego (wspólnej dla połączeń lokalnych).
  • Ident: Podobny do słowa „peer”, zwykle używanego w przypadku połączeń sieciowych.
  • SCRAM-SHA-256: bezpieczniejsza metoda, zalecana zamiast MD5 lub hasła.

Dostrajanie wydajności w postgresql.conf

Aby zoptymalizować wydajność, rozważ te ustawienia w postgresql.conf:

  • wspólne_bufory: dostosowuje ilość pamięci używanej przez PostgreSQL dla buforów pamięci współdzielonej.
  • praca_pamięć: Ustawia pamięć używaną do wewnętrznych operacji sortowania i mieszania.
  • max_połączenia: Kontroluje maksymalną liczbę jednoczesnych połączeń z bazą danych.

Monitorowanie i diagnostyka

Włącz szczegółowe rejestrowanie, aby uzyskać wgląd w wydajność bazy danych i problemy:

  • instrukcja_loga: Ustaw na „all”, aby rejestrować każdą wykonaną instrukcję SQL.
  • log_duration: Po włączeniu rejestruje czas trwania każdej zakończonej instrukcji SQL.

Wniosek

Właśnie przeszliśmy przez obszerny przewodnik dotyczący konfigurowania PostgreSQL 16 na Ubuntu, obejmujący wszystko, od instalacji i konfiguracji zdalnego dostępu po zwiększenie bezpieczeństwa za pomocą reguł zapory ogniowej. Pamiętaj, że chociaż wspaniale jest mieć PostgreSQL działający, prawdziwy klucz leży w regularnej konserwacji i kontrolach bezpieczeństwa.

Przydatne linki

Oto kilka przydatnych linków związanych z instalacją PostgreSQL 16 w systemie Ubuntu Linux:

  • Informacje o wydaniu PostgreSQL 16: Przeczytaj uwagi do wydania PostgreSQL 16, aby poznać nowe funkcje, ulepszenia i poprawki błędów.
  • Repozytorium PostgreSQL na GitHubie: Odwiedź oficjalne repozytorium PostgreSQL GitHub, aby uzyskać dostęp do kodu źródłowego, zgłosić problemy i przyczynić się do rozwoju.
  • Dokumentacja PostgreSQL: Uzyskaj dostęp do obszernej dokumentacji PostgreSQL, aby uzyskać szczegółowe instrukcje dotyczące instalacji, konfiguracji i użytkowania.
  • Społeczność PostgreSQL: Dołącz do społeczności PostgreSQL, aby łączyć się z innymi użytkownikami, brać udział w dyskusjach i uzyskać wsparcie.
Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)

Dodaj komentarz