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 |
---|---|
Edytor | Zgodny procesor 1 gigaherc (GHz) lub szybszy |
Baran | 2 GB lub więcej |
Miejsca na dysku | 512 MB dysku twardego (wymagane dodatkowe miejsce na dane lub komponenty pomocnicze) |
Obsługiwane wersje | Ubuntu 24.04 (szlachetny), Ubuntu 22.04 (Jammy), Ubuntu 20.04 (centralny) |
Dodatkowe wymagania
Wymóg | Opis |
---|---|
Połączenie internetowe | Wymagane do pobrania PostgreSQL 16 i przyszłych aktualizacji. |
Konwencje terminalowe | Wszystkie polecenia terminala należy uruchamiać jako zwykły użytkownik sudo przywileje. |
Polecenia interfejsu wiersza polecenia | Do 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.