PostgreSQL 16 markeert een belangrijke update in de wereld van databasebeheersystemen. PostgreSQL 16, officieel uitgebracht op 14 september 2023, introduceert veel nieuwe functies en verbeteringen, waardoor zijn positie als robuuste en veelzijdige databaseoplossing voor gebruikers, beheerders en ontwikkelaars wordt versterkt.
Hieronder staan enkele van de belangrijkste kenmerken van PostgreSQL 16:
- Verbeteringen in parallellisatie: PostgreSQL 16 maakt de parallellisatie van FULL en interne rechts-OUTER-hash-joins mogelijk, waardoor de queryprestaties aanzienlijk worden verbeterd.
- Replicatieverbeteringen: Het introduceert de mogelijkheid voor logische replicatie vanaf standby-servers en stelt abonnees in staat grote transacties parallel uit te voeren.
- Bewakingsmogelijkheden: Door de weergave pg_stat_io toe te voegen, wordt een diepgaandere monitoring van I/O-statistieken mogelijk.
- SQL/JSON-ondersteuning: Deze release introduceert SQL/JSON-constructors en identiteitsfuncties, waardoor de mogelijkheden voor gegevensverwerking worden uitgebreid.
- Vacuümvriesprestaties: PostgreSQL 16 verbetert de prestaties van vacuümvriezen, wat helpt bij efficiënt databaseonderhoud.
- Reguliere expressie-matching: Het matchen van reguliere expressies voor gebruikers- en databasenamen in pg_hba.conf en gebruikersnamen in pg_ident.conf verbetert de veiligheid en flexibiliteit.
Laten we nu verder gaan met de technische how-to en ons verdiepen in het installatieproces van PostgreSQL 16.
Vereisten voor het installeren van PostgreSQL 16
Om PostgreSQL 16 succesvol op Ubuntu te installeren, moet u ervoor zorgen dat u aan de volgende vereisten voldoet:
Aanbevolen hardware en ondersteunde Ubuntu-versies
Onderdeel | Vereiste |
---|---|
Verwerker | Compatibele processor van 1 gigahertz (GHz) of sneller |
RAM | 2 GB of meer |
Schijfruimte | 512 MB HDD (extra schijfruimte vereist voor gegevens of ondersteunende componenten) |
Ondersteunde versies | Ubuntu 24.04 (Edel), Ubuntu 22.04 (Jammie), Ubuntu 20.04 (focaal) |
Aanvullende vereisten
Vereiste | Beschrijving |
---|---|
Internetverbinding | Vereist om PostgreSQL 16 en toekomstige updates te downloaden. |
Terminalconventies | Alle terminalopdrachten moeten als gewone gebruiker worden uitgevoerd sudo privileges. |
CLI-opdrachten | Gebruik de opdrachtregelinterface (CLI) voor installatie en configuratie. |
PostgreSQL APT-repository importeren
Update Ubuntu vóór installatie van PostgreSQL 16
Zorg er eerst voor dat uw Ubuntu-systeem up-to-date is. Deze stap is cruciaal voor het handhaven van de systeemstabiliteit en compatibiliteit:
sudo apt update
Upgrade vervolgens alle pakketten die verouderd zijn:
sudo apt upgrade
Installeer initiële pakketten voor PostgreSQL 16
Om u te helpen bij het installeren van de databasesoftware, installeert u de volgende pakketten:
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y
Voeg PostgreSQL 16 APT-repository toe
Importeer eerst de PostgreSQL GPG-sleutel. Dit gaat erom dat u zeker weet dat de pakketten die u gaat installeren authentiek zijn en dat er niet mee is geknoeid:
curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null
De juiste PostgreSQL 16-repository kiezen
Nu is het tijd om de juiste PostgreSQL 16-repository voor uw behoeften te selecteren.
Stabiele opslagplaats voor productie/algemeen gebruik
De stabiele repository is voor de meeste gebruikers de beste keuze, vooral in een productieomgeving. Het wordt regelmatig bijgewerkt met stabiele en veilige versies:
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
Snapshot- of testrepository's voor ontwikkelaars
Overweeg de snapshot- of testrepository's als u zich in de ontwikkelings- of testfase bevindt. Houd er echter rekening mee dat deze niet bedoeld zijn voor productiegebruik vanwege hun minder stabiele aard.
Snapshot Repository voor geavanceerde tests
Bekijk hier de nieuwste snapshots:
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
Testrepository voor de nieuwste functies
Om de nieuwste functies te testen, zal deze opdracht je instellen:
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
Installeer PostgreSQL 16 via Terminal-opdrachten
Vernieuw de lijst met APT-pakketindexbronnen
Na het toevoegen van de stabiele of testende PostgreSQL-repository, is het bijwerken van de bronnenlijst van uw repository belangrijk. Deze actie zorgt ervoor dat uw systeem de nieuw toegevoegde PostgreSQL-repository herkent:
sudo apt update
Installeer PostgreSQL 16 via APT-opdracht
Laten we nu verder gaan met de installatie van PostgreSQL 16. Met deze opdracht installeert u zowel de PostgreSQL-client als de server:
sudo apt install postgresql-client-16 postgresql-16
PostgreSQL-installatie verifiëren
Zodra de installatie is voltooid, is het van cruciaal belang om te bevestigen dat PostgreSQL correct is geïnstalleerd en actief is. Met deze opdracht wordt de status van de PostgreSQL-service gecontroleerd:
systemctl status postgresql
PostgreSQL 16 activeren
Als PostgreSQL niet actief is, gebruikt u deze opdracht om de PostgreSQL-service te starten. Dit zorgt er ook voor dat PostgreSQL automatisch start met uw systeem:
sudo systemctl enable postgresql --now
Beheer van de PostgreSQL 16-service
De PostgreSQL 16-server stoppen
Gebruik deze opdracht om de PostgreSQL-service tijdelijk te stoppen, bijvoorbeeld voor onderhoud of configuratiewijzigingen:
sudo systemctl stop postgresql
De PostgreSQL 16-server starten
Wanneer u klaar bent om de PostgreSQL-service te starten, vooral na een stop of initiële installatie, komt deze opdracht van pas:
sudo systemctl start postgresql
De PostgreSQL 16-server opnieuw opstarten
In scenario's waarin u configuraties of updates hebt gewijzigd, is een herstart vaak noodzakelijk. Met deze opdracht wordt de PostgreSQL-service opnieuw gestart en worden eventuele nieuwe wijzigingen toegepast:
sudo systemctl restart postgresql
De PostgreSQL 16-server opnieuw laden
Gebruik deze opdracht om de PostgreSQL-service opnieuw te laden zonder de werking ervan te onderbreken. Dit is handig als u kleine configuratiewijzigingen moet aanbrengen:
sudo systemctl reload postgresql
PostgreSQL 16-status controleren
Om de operationele status van de PostgreSQL-service te verifiëren, inclusief of deze actief is en zonder problemen draait, gebruikt u:
systemctl status postgresql
PostgreSQL 16 inschakelen bij het opstarten van het systeem
Als PostgreSQL niet is ingesteld om automatisch te starten, wordt dit met deze opdracht ingeschakeld, zodat het onmiddellijk actief is en ook bij daaropvolgende systeemstarts:
sudo systemctl enable postgresql --now
Basisvoorbeeldopdrachten met PostgreSQL 16
Toegang tot het Postgres-gebruikersaccount
In PostgreSQL is de 'postgres'-gebruiker een standaard superuser-rol. Dit account is cruciaal voor het uitvoeren van administratieve opdrachten. Om naar dit account over te schakelen, gebruikt u:
sudo -i -u postgres
Eenmaal in het account voert u de PostgreSQL-opdrachtregelinterface in:
psql
De prompt postgres=#
bevestigt uw verbinding met de PostgreSQL-omgeving. Om af te sluiten typt u gewoon exit
.
Snelle toegang tot PostgreSQL zonder gebruikerswisseling
Voor snelle bewerkingen zonder het gebruikersaccount te wijzigen, gaat u rechtstreeks naar PostgreSQL:
sudo -u postgres psql
Deze opdracht bespaart tijd bij routinetaken. Om deze interface te verlaten, typt u exit
.
Een nieuwe PostgreSQL-gebruikersrol maken
Dankzij de flexibiliteit van PostgreSQL kunnen superusers gebruikersrollen creëren. Om een nieuwe gebruikersrol vast te stellen, geeft u deze opdracht:
sudo su - postgres -c "createuser <username>"
Vervangen <username>
met uw gewenste gebruikersnaam.
Een nieuwe PostgreSQL-database initiëren
Om een nieuwe database voor uw gebruiker in te stellen:
sudo su - postgres -c "createdb <database_name>"
Vervangen <database_name>
met de beoogde naam voor uw database.
Gebruikersrechten toewijzen aan een database
Wijs veilig databasetoegang toe:
sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;
Vervanging <database_name>
En <username>
zoals gevraagd. Sluit af door te typen exit
.
Configureer UFW Firewall voor PostgreSQL 16
Installeren en activeren van de UFW Firewall
Zorg ervoor dat de UFW (Uncomplicated Firewall) op uw systeem is geïnstalleerd en geactiveerd. UFW vereenvoudigt het firewallbeheer en is essentieel voor het beveiligen van netwerkverkeer:
sudo apt install ufw
sudo ufw enable
UFW-regels instellen voor PostgreSQL 16
PostgreSQL communiceert standaard op poort 5432. Het is noodzakelijk om UFW te configureren om verkeer op deze poort toe te staan, vooral wanneer u verbinding maakt vanaf externe locaties.
Subnettoegang toestaan
Gebruik deze opdracht om toegang tot een reeks IP-adressen binnen een subnet toe te staan:
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432
Vervangen 192.168.1.0/24
met uw specifieke subnetbereik.
Individuele IP-toegang toestaan
Om toegang tot PostgreSQL te verlenen vanaf één enkel IP-adres, gebruikt u:
sudo ufw allow proto tcp from 192.168.1.0 to any port 5432
Bewerken 192.168.1.0
naar het IP-adres dat u wilt toestaan.
Dit zijn slechts basisvoorbeelden. U kunt overwegen om openbare databases voor de lange termijn zoveel mogelijk af te sluiten.
Configureer PostgreSQL 16
Schakel externe toegang in PostgreSQL 16 in
Als u PostgreSQL configureert om externe verbindingen te accepteren, moet u het luisteradres aanpassen vanuit de standaard lokale interface.
De configuratie voor externe toegang wijzigen
Toegang tot het PostgreSQL-configuratiebestand:
sudo nano /etc/postgresql/16/main/postgresql.conf
Wijzig dit in het gedeelte 'Verbindingsinstellingen' listen_addresses = 'localhost'
op uw specifieke behoeften:
- Vervang 'localhost' door het gewenste IP-adres voor een enkel IP-adres.
- Om verbindingen op alle interfaces toe te staan, gebruikt u
listen_addresses = '*'
.
Nadat u de wijzigingen heeft aangebracht, slaat u deze op met CTRL+O en sluit u af met CTRL+X. Start vervolgens PostgreSQL opnieuw:
sudo systemctl restart postgresql
Controleer de wijzigingen met:
ss -nlt | grep 5432
In de uitvoer zou poort 5432 actief moeten zijn.
Configureren van pg_hba.conf voor verbeterde beveiliging
Bewerk de pg_hba.conf
bestand voor verfijnde toegangscontrole:
sudo nano /etc/postgresql/16/main/pg_hba.conf
Gebruikers- en databasetoegang aanpassen
In pg_hba.conf
, kunt u opgeven welke gebruikers en databases verbinding kunnen maken, en vanaf welke adressen. Hier zijn enkele veelvoorkomende configuraties:
- Gebruikerspecifieke toegang: Vervang 'all' door een specifieke gebruikersnaam om de toegang tot alleen die gebruiker te beperken.
- Databasespecifieke toegang: Geef een bepaalde database op in plaats van toegang tot alle databases toe te staan.
- Adresbeperkingen: definieer specifieke IP-adressen of -bereiken (bijv.
192.168.1.0/24
) om te beperken waar verbindingen kunnen ontstaan.
Authenticatiemethoden kiezen
PostgreSQL ondersteunt verschillende authenticatiemethoden:
- MD5: Vereist een wachtwoord en codeert dit met MD5.
- Wachtwoord: Gebruikt wachtwoorden in platte tekst (minder veilig, niet aanbevolen voor productie).
- Gelijke: Is afhankelijk van de gebruikersidentiteit op besturingssysteemniveau (gebruikelijk voor lokale verbindingen).
- Identificeer: vergelijkbaar met 'peer', meestal gebruikt voor netwerkverbindingen.
- SCRAM-SHA-256: Een veiligere methode, aanbevolen via MD5 of wachtwoord.
Prestaties afstemmen postgresql.conf
Voor prestatie-optimalisatie kunt u deze instellingen in overweging nemen postgresql.conf
:
- gedeelde_buffers: Past de hoeveelheid geheugen aan die PostgreSQL gebruikt voor gedeelde geheugenbuffers.
- werk_mem: Stelt het geheugen in dat wordt gebruikt voor interne sorteer- en hashbewerkingen.
- max_verbindingen: Beheert het maximale aantal gelijktijdige verbindingen met de database.
Monitoring en diagnostiek
Schakel gedetailleerde logboekregistratie in voor inzicht in databaseprestaties en problemen:
- log_statement: Instellen op 'all' om elke uitgevoerde SQL-instructie te loggen.
- log_duur: Indien ingeschakeld, wordt de duur van elke voltooide SQL-instructie geregistreerd.
Conclusie
We hebben zojuist een uitgebreide handleiding doorgenomen voor het instellen van PostgreSQL 16 op Ubuntu, waarin alles wordt behandeld, van de installatie en het configureren van externe toegang tot het aanscherpen van de beveiliging met firewallregels. Bedenk dat het weliswaar geweldig is om PostgreSQL actief te hebben, maar dat de echte sleutel ligt in regelmatig onderhoud en veiligheidscontroles.
handige links
Hier zijn enkele nuttige links met betrekking tot het installeren van PostgreSQL 16 op Ubuntu Linux:
- Releaseopmerkingen voor PostgreSQL 16: Lees de release-opmerkingen voor PostgreSQL 16 voor meer informatie over nieuwe functies, verbeteringen en bugfixes.
- PostgreSQL GitHub-opslagplaats: Bezoek de officiële PostgreSQL GitHub-repository om toegang te krijgen tot de broncode, problemen te melden en bij te dragen aan de ontwikkeling.
- PostgreSQL-documentatie: Toegang tot de uitgebreide PostgreSQL-documentatie voor gedetailleerde installatie-, configuratie- en gebruikshandleidingen.
- PostgreSQL-gemeenschap: Sluit u aan bij de PostgreSQL-gemeenschap om in contact te komen met andere gebruikers, deel te nemen aan discussies en ondersteuning te krijgen.